Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Introduction:

This video shows the vFW use case being instantiated on Casablanca.

What's new:

We can see from the demo that now we don't need to perform SDNC Preloading to instantiate the service. The VNF naming and IP addressing will be auto assigned.


Video Demo of the vFW instantiation:

View file
namevfw_cds_casablanca_25-04-2019.mp4
height250

Summary of the video demo:

We start by distributing the vFW service model using the robot script.

Then, we can use a Postman collection that has 3 Rest Calls and some code to automate the instantiation of the vFW use case:

  • 1st Rest call will give us the service model details like UUID, Invariant UUID, and Service Model Name.
  • 2nd Rest call will give us the VNF and VF Module details.
  • 3rd Rest call will pull the details from the 1st and 2nd calls, and build the SO Service Assignment and Activation request.
  • I added a 4th Rest call in the collection that will pull the request id from the 3rd call coming from SO, and will show us the status of the requets, so we can track the progress, and see if it completes successfully.



Environment preparation for the Postman Collection:

In order to run the Postman collection correctly, we need to create 3 environment variables in Postman:

  • cds-service-mode: This is the name of the service model distributed by the robot script, you can find it by running CDS #1 call once and looking for the VNF that has today's date and time.
  • cds-instance-name: This is the name of the service instance we will instantiate.
  • k8s: This is our ONAP Load Balancer IP Address.

Also, we need to update our IaaS Openstack parameters in the body of the SO Service Instantiation Rest call CDS#3:

  • lcpCloudRegionId : the cloud-region name 
  • tenantId : the tenant id
  • public_net_id : the public network id in Openstack
  • onap_private_net_id : the private network id in Openstack, we need this as this is not created by the auto assignment service
  • onap_private_subnet_id : and the private subnet id
  • pub_key : the public key to be put on the VMs
  • image_name : Ubuntu 14 image name
  • flavor_name : flavor
  • sec_group : security group that will be applied to the VMs



Results of the Postman Rest calls:

You can find below the output of the calls shown in the video:

Code Block
titleOutput of the robot script to distribute the vFW service model
collapsetrue
root@olc-rancher:~/oom/kubernetes/robot# ./demo-k8s.sh onap distributeVFWNG
Number of parameters:
2
KEY:
distributeVFWNG
++ kubectl --namespace onap get pods
++ sed 's/ .*//'
++ grep robot
+ POD=onap-robot-robot-5b5cbb95fc-8t4lv
+ ETEHOME=/var/opt/OpenECOMP_ETE
++ kubectl --namespace onap exec onap-robot-robot-5b5cbb95fc-8t4lv -- bash -c 'ls -1q /share/logs/ | wc -l'
+ export GLOBAL_BUILD_NUMBER=14
+ GLOBAL_BUILD_NUMBER=14
++ printf %04d 14
+ OUTPUT_FOLDER=0014_demo_distributeVFWNG
+ DISPLAY_NUM=104
+ VARIABLEFILES='-V /share/config/vm_properties.py -V /share/config/integration_robot_properties.py -V /share/config/integration_preload_parameters.py'
+ kubectl --namespace onap exec onap-robot-robot-5b5cbb95fc-8t4lv -- /var/opt/OpenECOMP_ETE/runTags.sh -V /share/config/vm_properties.py -V /share/config/integration_robot_properties.py -V /share/config/integration_preload_parameters.py -d /share/logs/0014_demo_distributeVFWNG -i distributeVFWNG --display 104
Starting Xvfb on display :104 with res 1280x1024x24
Executing robot tests at log level TRACE
==============================================================================
Testsuites                                                                    
==============================================================================
Testsuites.Demo :: Executes the VNF Orchestration Test cases including setu...
==============================================================================
Distribute vFWNG CDS Model :: Distribute vFWNG for CDS                resp=[{u'getInputValues': None, u'parentUniqueId': u'2cdcf5d2-e6e5-4a4d-a701-b15424093632', u'instanceUniqueId': None, u'schemaProperty': {u'getInputValues': None, u'parentUniqueId': None, u'instanceUniqueId': None, u'schemaProperty': None, u'schemaType': None, u'propertyId': None, u'defaultValue': None, u'label': None, u'version': None, u'uniqueId': None, u'hidden': False, u'type': None, u'annotations': None, u'empty': False, u'schema': None, u'status': None, u'description': None, u'inputId': None, u'inputPath': None, u'password': False, u'definition': True, u'name': None, u'required': False, u'value': None, u'immutable': False, u'getInputProperty': False, u'ownerId': None}, u'schemaType': None, u'propertyId': None, u'componentInstanceId': None, u'defaultValue': None, u'label': None, u'componentInstanceName': None, u'version': None, u'uniqueId': u'2cdcf5d2-e6e5-4a4d-a701-b15424093632.nfc_function', u'hidden': False, u'type': u'string', u'annotations': None, u'empty': False, u'schema': {u'derivedFrom': None, u'version': None, u'ownerId': None, u'property': {u'getInputValues': None, u'parentUniqueId': None, u'instanceUniqueId': None, u'schemaProperty': None, u'schemaType': None, u'propertyId': None, u'defaultValue': None, u'label': None, u'version': None, u'uniqueId': None, u'hidden': False, u'type': None, u'annotations': None, u'empty': False, u'schema': None, u'status': None, u'description': None, u'inputId': None, u'inputPath': None, u'password': False, u'definition': True, u'name': None, u'required': False, u'value': None, u'immutable': False, u'getInputProperty': False, u'ownerId': None}, u'type': None, u'properties': None, u'empty': False, u'constraints': None}, u'status': None, u'inputs': None, u'description': None, u'rules': None, u'valueUniqueUid': None, u'inputId': None, u'inputPath': None, u'path': None, u'password': False, u'properties': None, u'definition': False, u'name': u'nfc_function', u'required': False, u'value': u'vpg', u'immutable': False, u'getInputProperty': False, u'ownerId': u'2cdcf5d2-e6e5-4a4d-a701-b15424093632', u'constraints': None}, {u'getInputValues': None, u'parentUniqueId': u'2cdcf5d2-e6e5-4a4d-a701-b15424093632', u'instanceUniqueId': None, u'schemaProperty': {u'getInputValues': None, u'parentUniqueId': None, u'instanceUniqueId': None, u'schemaProperty': None, u'schemaType': None, u'propertyId': None, u'defaultValue': None, u'label': None, u'version': None, u'uniqueId': None, u'hidden': False, u'type': None, u'annotations': None, u'empty': False, u'schema': None, u'status': None, u'description': None, u'inputId': None, u'inputPath': None, u'password': False, u'definition': True, u'name': None, u'required': False, u'value': None, u'immutable': False, u'getInputProperty': False, u'ownerId': None}, u'schemaType': None, u'propertyId': None, u'componentInstanceId': None, u'defaultValue': None, u'label': None, u'componentInstanceName': None, u'version': None, u'uniqueId': u'2cdcf5d2-e6e5-4a4d-a701-b15424093632.nfc_naming', u'hidden': False, u'type': u'org.openecomp.datatypes.Naming', u'annotations': None, u'empty': False, u'schema': {u'derivedFrom': None, u'version': None, u'ownerId': None, u'property': {u'getInputValues': None, u'parentUniqueId': None, u'instanceUniqueId': None, u'schemaProperty': None, u'schemaType': None, u'propertyId': None, u'defaultValue': None, u'label': None, u'version': None, u'uniqueId': None, u'hidden': False, u'type': None, u'annotations': None, u'empty': False, u'schema': None, u'status': None, u'description': None, u'inputId': None, u'inputPath': None, u'password': False, u'definition': True, u'name': None, u'required': False, u'value': None, u'immutable': False, u'getInputProperty': False, u'ownerId': None}, u'type': None, u'properties': None, u'empty': False, u'constraints': None}, u'status': None, u'inputs': None, u'description': u'vfc naming', u'rules': None, u'valueUniqueUid': None, u'inputId': None, u'inputPath': None, u'path': None, u'password': False, u'properties': None, u'definition': False, u'name': u'nfc_naming', u'required': False, u'value': u'{"ecomp_generated_naming":true,"naming_policy":"SDNC_Policy.ONAP_VPG_NAMING_TIMESTAMP"}', u'immutable': False, u'getInputProperty': False, u'ownerId': u'2cdcf5d2-e6e5-4a4d-a701-b15424093632', u'constraints': None}]
resp=[{u'getInputValues': None, u'parentUniqueId': u'2cdcf5d2-e6e5-4a4d-a701-b15424093632', u'instanceUniqueId': None, u'schemaProperty': {u'getInputValues': None, u'parentUniqueId': None, u'instanceUniqueId': None, u'schemaProperty': None, u'schemaType': None, u'propertyId': None, u'defaultValue': None, u'label': None, u'version': None, u'uniqueId': None, u'hidden': False, u'type': None, u'annotations': None, u'empty': False, u'schema': None, u'status': None, u'description': None, u'inputId': None, u'inputPath': None, u'password': False, u'definition': True, u'name': None, u'required': False, u'value': None, u'immutable': False, u'getInputProperty': False, u'ownerId': None}, u'schemaType': None, u'propertyId': None, u'componentInstanceId': None, u'defaultValue': None, u'label': None, u'componentInstanceName': None, u'version': None, u'uniqueId': u'2cdcf5d2-e6e5-4a4d-a701-b15424093632.nfc_function', u'hidden': False, u'type': u'string', u'annotations': None, u'empty': False, u'schema': {u'derivedFrom': None, u'version': None, u'ownerId': None, u'property': {u'getInputValues': None, u'parentUniqueId': None, u'instanceUniqueId': None, u'schemaProperty': None, u'schemaType': None, u'propertyId': None, u'defaultValue': None, u'label': None, u'version': None, u'uniqueId': None, u'hidden': False, u'type': None, u'annotations': None, u'empty': False, u'schema': None, u'status': None, u'description': None, u'inputId': None, u'inputPath': None, u'password': False, u'definition': True, u'name': None, u'required': False, u'value': None, u'immutable': False, u'getInputProperty': False, u'ownerId': None}, u'type': None, u'properties': None, u'empty': False, u'constraints': None}, u'status': None, u'inputs': None, u'description': None, u'rules': None, u'valueUniqueUid': None, u'inputId': None, u'inputPath': None, u'path': None, u'password': False, u'properties': None, u'definition': False, u'name': u'nfc_function', u'required': False, u'value': u'vsn', u'immutable': False, u'getInputProperty': False, u'ownerId': u'2cdcf5d2-e6e5-4a4d-a701-b15424093632', u'constraints': None}, {u'getInputValues': None, u'parentUniqueId': u'2cdcf5d2-e6e5-4a4d-a701-b15424093632', u'instanceUniqueId': None, u'schemaProperty': {u'getInputValues': None, u'parentUniqueId': None, u'instanceUniqueId': None, u'schemaProperty': None, u'schemaType': None, u'propertyId': None, u'defaultValue': None, u'label': None, u'version': None, u'uniqueId': None, u'hidden': False, u'type': None, u'annotations': None, u'empty': False, u'schema': None, u'status': None, u'description': None, u'inputId': None, u'inputPath': None, u'password': False, u'definition': True, u'name': None, u'required': False, u'value': None, u'immutable': False, u'getInputProperty': False, u'ownerId': None}, u'schemaType': None, u'propertyId': None, u'componentInstanceId': None, u'defaultValue': None, u'label': None, u'componentInstanceName': None, u'version': None, u'uniqueId': u'2cdcf5d2-e6e5-4a4d-a701-b15424093632.nfc_naming', u'hidden': False, u'type': u'org.openecomp.datatypes.Naming', u'annotations': None, u'empty': False, u'schema': {u'derivedFrom': None, u'version': None, u'ownerId': None, u'property': {u'getInputValues': None, u'parentUniqueId': None, u'instanceUniqueId': None, u'schemaProperty': None, u'schemaType': None, u'propertyId': None, u'defaultValue': None, u'label': None, u'version': None, u'uniqueId': None, u'hidden': False, u'type': None, u'annotations': None, u'empty': False, u'schema': None, u'status': None, u'description': None, u'inputId': None, u'inputPath': None, u'password': False, u'definition': True, u'name': None, u'required': False, u'value': None, u'immutable': False, u'getInputProperty': False, u'ownerId': None}, u'type': None, u'properties': None, u'empty': False, u'constraints': None}, u'status': None, u'inputs': None, u'description': u'vfc naming', u'rules': None, u'valueUniqueUid': None, u'inputId': None, u'inputPath': None, u'path': None, u'password': False, u'properties': None, u'definition': False, u'name': u'nfc_naming', u'required': False, u'value': u'{"ecomp_generated_naming":true,"naming_policy":"SDNC_Policy.ONAP_VSN_NAMING_TIMESTAMP"}', u'immutable': False, u'getInputProperty': False, u'ownerId': u'2cdcf5d2-e6e5-4a4d-a701-b15424093632', u'constraints': None}]
resp=[{u'getInputValues': None, u'parentUniqueId': u'2cdcf5d2-e6e5-4a4d-a701-b15424093632', u'instanceUniqueId': None, u'schemaProperty': {u'getInputValues': None, u'parentUniqueId': None, u'instanceUniqueId': None, u'schemaProperty': None, u'schemaType': None, u'propertyId': None, u'defaultValue': None, u'label': None, u'version': None, u'uniqueId': None, u'hidden': False, u'type': None, u'annotations': None, u'empty': False, u'schema': None, u'status': None, u'description': None, u'inputId': None, u'inputPath': None, u'password': False, u'definition': True, u'name': None, u'required': False, u'value': None, u'immutable': False, u'getInputProperty': False, u'ownerId': None}, u'schemaType': None, u'propertyId': None, u'componentInstanceId': None, u'defaultValue': None, u'label': None, u'componentInstanceName': None, u'version': None, u'uniqueId': u'2cdcf5d2-e6e5-4a4d-a701-b15424093632.nfc_function', u'hidden': False, u'type': u'string', u'annotations': None, u'empty': False, u'schema': {u'derivedFrom': None, u'version': None, u'ownerId': None, u'property': {u'getInputValues': None, u'parentUniqueId': None, u'instanceUniqueId': None, u'schemaProperty': None, u'schemaType': None, u'propertyId': None, u'defaultValue': None, u'label': None, u'version': None, u'uniqueId': None, u'hidden': False, u'type': None, u'annotations': None, u'empty': False, u'schema': None, u'status': None, u'description': None, u'inputId': None, u'inputPath': None, u'password': False, u'definition': True, u'name': None, u'required': False, u'value': None, u'immutable': False, u'getInputProperty': False, u'ownerId': None}, u'type': None, u'properties': None, u'empty': False, u'constraints': None}, u'status': None, u'inputs': None, u'description': None, u'rules': None, u'valueUniqueUid': None, u'inputId': None, u'inputPath': None, u'path': None, u'password': False, u'properties': None, u'definition': False, u'name': u'nfc_function', u'required': False, u'value': u'vfw', u'immutable': False, u'getInputProperty': False, u'ownerId': u'2cdcf5d2-e6e5-4a4d-a701-b15424093632', u'constraints': None}, {u'getInputValues': None, u'parentUniqueId': u'2cdcf5d2-e6e5-4a4d-a701-b15424093632', u'instanceUniqueId': None, u'schemaProperty': {u'getInputValues': None, u'parentUniqueId': None, u'instanceUniqueId': None, u'schemaProperty': None, u'schemaType': None, u'propertyId': None, u'defaultValue': None, u'label': None, u'version': None, u'uniqueId': None, u'hidden': False, u'type': None, u'annotations': None, u'empty': False, u'schema': None, u'status': None, u'description': None, u'inputId': None, u'inputPath': None, u'password': False, u'definition': True, u'name': None, u'required': False, u'value': None, u'immutable': False, u'getInputProperty': False, u'ownerId': None}, u'schemaType': None, u'propertyId': None, u'componentInstanceId': None, u'defaultValue': None, u'label': None, u'componentInstanceName': None, u'version': None, u'uniqueId': u'2cdcf5d2-e6e5-4a4d-a701-b15424093632.nfc_naming', u'hidden': False, u'type': u'org.openecomp.datatypes.Naming', u'annotations': None, u'empty': False, u'schema': {u'derivedFrom': None, u'version': None, u'ownerId': None, u'property': {u'getInputValues': None, u'parentUniqueId': None, u'instanceUniqueId': None, u'schemaProperty': None, u'schemaType': None, u'propertyId': None, u'defaultValue': None, u'label': None, u'version': None, u'uniqueId': None, u'hidden': False, u'type': None, u'annotations': None, u'empty': False, u'schema': None, u'status': None, u'description': None, u'inputId': None, u'inputPath': None, u'password': False, u'definition': True, u'name': None, u'required': False, u'value': None, u'immutable': False, u'getInputProperty': False, u'ownerId': None}, u'type': None, u'properties': None, u'empty': False, u'constraints': None}, u'status': None, u'inputs': None, u'description': u'vfc naming', u'rules': None, u'valueUniqueUid': None, u'inputId': None, u'inputPath': None, u'path': None, u'password': False, u'properties': None, u'definition': False, u'name': u'nfc_naming', u'required': False, u'value': u'{"ecomp_generated_naming":true,"naming_policy":"SDNC_Policy.ONAP_VFW_NAMING_TIMESTAMP"}', u'immutable': False, u'getInputProperty': False, u'ownerId': u'2cdcf5d2-e6e5-4a4d-a701-b15424093632', u'constraints': None}]
Downloaded:service-Vfwng201904252122-csar.csar
| PASS |
------------------------------------------------------------------------------
Testsuites.Demo :: Executes the VNF Orchestration Test cases inclu... | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed
==============================================================================
Testsuites                                                            | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed
==============================================================================
Output:  /share/logs/0014_demo_distributeVFWNG/output.xml
Log:     /share/logs/0014_demo_distributeVFWNG/log.html
Report:  /share/logs/0014_demo_distributeVFWNG/report.html
root@olc-rancher:~/oom/kubernetes/robot# 


Code Block
titleOutput of CDS #1 - SDC Service Catalog
collapsetrue
GET /sdc/v1/catalog/services HTTP/1.1

RESPONSE:
    {
        "uuid": "fe0c7a4f-739f-4cdb-bdfe-2fb06eddf15c",
        "invariantUUID": "3b8ac8f1-7792-49fd-9d3e-45811a594d17",
        "name": "vFWNG 2019-04-25 21:22:",
        "version": "1.0",
        "toscaModelURL": "/sdc/v1/catalog/services/fe0c7a4f-739f-4cdb-bdfe-2fb06eddf15c/toscaModel",
        "category": "Network L1-3",
        "lifecycleState": "CERTIFIED",
        "lastUpdaterUserId": "jm0007",
        "distributionStatus": "DISTRIBUTED"
    }


Code Block
titleOutput of CDS #2 - SO Service VNFs
collapsetrue
GET /ecomp/mso/catalog/v2/serviceVnfs?serviceModelName=vFWNG 2019-04-25 21:22: HTTP/1.1

RESPONSE:
{
    "serviceVnfs": [
        {
            "modelInfo": {
                "modelName": "40d322e4-c53d-4aa4-a6a2",
                "modelUuid": "1525769d-e709-4d19-9bff-3e481a79e658",
                "modelInvariantUuid": "55054e28-b7fc-43d8-bcc9-d5aa9a2c1800",
                "modelVersion": "1.0",
                "modelCustomizationUuid": "72c6b040-7132-49c7-99f6-4e9b85f19695",
                "modelInstanceName": "40d322e4-c53d-4aa4-a6a2 0"
            },
            "toscaNodeType": "org.openecomp.resource.vf.40d322e4C53d4aa4A6a2",
            "nfFunction": "ONAP-FIREWALL",
            "nfType": "FIREWALL",
            "nfRole": "vFW",
            "nfNamingCode": "vfw",
            "multiStageDesign": "false",
            "resourceInput": "{\"vf_module_id\":\"vFirewallCL\",\"nf_function\":\"ONAP-FIREWALL\",\"vfw_private_ip_1\":\"192.168.20.100\",\"public_net_id\":\"PUT THE PUBLIC NETWORK ID HERE\",\"unprotected_private_subnet_id\":\"zdfw1fwl01_unprotected_sub\",\"vfw_private_ip_0\":\"192.168.10.100\",\"onap_private_subnet_id\":\"PUT THE ONAP PRIVATE NETWORK NAME HERE\",\"vfw_private_ip_2\":\"10.0.100.1\",\"sec_group\":\"PUT THE ONAP SECURITY GROUP HERE\",\"nf_type\":\"FIREWALL\",\"vfw_name_0\":\"zdfw1fwl01fwl01\",\"nexus_artifact_repo\":\"https://nexus.onap.org\",\"onap_private_net_cidr\":\"10.0.0.0/16\",\"image_name\":\"PUT THE VM IMAGE NAME HERE (UBUNTU 1404)\",\"flavor_name\":\"PUT THE VM FLAVOR NAME HERE (m1.medium suggested)\",\"dcae_collector_ip\":\"10.0.4.1\",\"vnf_id\":\"vSink_demo_app\",\"dcae_collector_port\":\"8081\",\"protected_private_subnet_id\":\"zdfw1fwl01_protected_sub\",\"vpg_name_0\":\"zdfw1fwl01pgn01\",\"vpg_private_ip_1\":\"10.0.100.2\",\"vsn_private_ip_0\":\"192.168.20.250\",\"vsn_private_ip_1\":\"10.0.100.3\",\"vpg_private_ip_0\":\"192.168.10.200\",\"protected_private_net_cidr\":\"192.168.20.0/24\",\"unprotected_private_net_cidr\":\"192.168.10.0/24\",\"nf_naming\":\"true\",\"vsn_name_0\":\"zdfw1fwl01snk01\",\"multi_stage_design\":\"false\",\"onap_private_net_id\":\"PUT THE ONAP PRIVATE NETWORK NAME HERE\",\"nf_naming_code\":\"vfw\",\"unprotected_private_net_id\":\"zdfw1fwl01_unprotected\",\"availability_zone_max_count\":\"1\",\"sdnc_artifact_name\":\"vFW_vNF_Artifact\",\"demo_artifacts_version\":\"1.3.0-SNAPSHOT\",\"pub_key\":\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQXYJYYi3/OUZXUiCYWdtc7K0m5C0dJKVxPG0eI8EWZrEHYdfYe6WoTSDJCww+1qlBSpA5ac/Ba4Wn9vh+lR1vtUKkyIC/nrYb90ReUd385Glkgzrfh5HdR5y5S2cL/Frh86lAn9r6b3iWTJD8wBwXFyoe1S2nMTOIuG4RPNvfmyCTYVh8XTCCE8HPvh3xv2r4egawG1P4Q4UDwk+hDBXThY2KS8M5/8EMyxHV0ImpLbpYCTBA6KYDIRtqmgS6iKyy8v2D1aSY5mc9J0T5t9S2Gv+VZQNWQDDKNFnxqYaAo1uEoq/i1q63XC5AD3ckXb2VT6dp23BQMdDfbHyUWfJN\",\"key_name\":\"vfw_key\",\"sdnc_model_version\":\"1.0.0\",\"nf_role\":\"vFW\",\"install_script_version\":\"1.3.0-SNAPSHOT\",\"protected_private_net_id\":\"zdfw1fwl01_protected\",\"sdnc_model_name\":\"vFW_spinup\",\"cloud_env\":\"openstack\"}",
            "vfModules": [
                {
                    "modelInfo": {
                        "modelName": "40d322e4C53d4aa4A6a2..vpg..module-2",
                        "modelUuid": "755a7ebd-a776-4e2c-a5c6-7e979e9e5861",
                        "modelInvariantUuid": "02a5571e-1150-48d7-be90-810e00760da9",
                        "modelVersion": "1",
                        "modelCustomizationUuid": "4ada321d-647e-4754-a820-41d69494259a"
                    },
                    "isBase": false,
                    "vfModuleLabel": "vpg",
                    "initialCount": 0,
                    "hasVolumeGroup": false
                },
                {
                    "modelInfo": {
                        "modelName": "40d322e4C53d4aa4A6a2..vsn..module-1",
                        "modelUuid": "746aeb94-1e10-4b15-87e0-f74318a29e17",
                        "modelInvariantUuid": "48e8b4bb-e852-415e-894f-c4fdbbc6f98c",
                        "modelVersion": "1",
                        "modelCustomizationUuid": "8547725d-4b3b-4411-a1b4-ed9591e291d6"
                    },
                    "isBase": false,
                    "vfModuleLabel": "vsn",
                    "initialCount": 0,
                    "hasVolumeGroup": false
                },
                {
                    "modelInfo": {
                        "modelName": "40d322e4C53d4aa4A6a2..vfw..module-3",
                        "modelUuid": "a1a1692a-10ba-4122-8340-ac9fe85adfa7",
                        "modelInvariantUuid": "601dded4-2943-4dc9-b508-82469e5863d9",
                        "modelVersion": "1",
                        "modelCustomizationUuid": "a42bc6e5-2705-4138-9e7f-01612988df6e"
                    },
                    "isBase": false,
                    "vfModuleLabel": "vfw",
                    "initialCount": 0,
                    "hasVolumeGroup": false
                },
                {
                    "modelInfo": {
                        "modelName": "40d322e4C53d4aa4A6a2..base_template..module-0",
                        "modelUuid": "1e9b4714-c243-4fef-a1b0-c6cfe608056e",
                        "modelInvariantUuid": "90b61d87-6ffd-47a1-bf61-a2c7a8efa422",
                        "modelVersion": "1",
                        "modelCustomizationUuid": "db04f50d-6957-4d8f-9c78-586aec9462aa"
                    },
                    "isBase": true,
                    "vfModuleLabel": "base_template",
                    "initialCount": 1,
                    "hasVolumeGroup": false
                }
            ]
        }
    ]
}


Note
titleSTEP CDS2: Expose SO Catalog API


  • SO Catalog DB is NOT exposed by default, you will need something like the command below to be able to send the CDS #2 rest call to SO Catalog and get back the service VNF model details.
Code Block
kubectl -n onap expose pod onap-so-so-catalog-db-adapter-56d9cc554b-9fszd --type=LoadBalancer



Code Block
titleOutput of CDS #3 - SO Service Assign & Activate
collapsetrue
POST /onap/so/infra/serviceInstantiation/v7/serviceInstances HTTP/1.1

RESPONSE:
{
    "requestReferences": {
        "requestId": "fa31259b-8f50-4b8b-b15d-be0eb36ba358",
        "instanceId": "70d003f2-8378-43f5-b8cd-eede99cbae5d"
    }
}


Code Block
titleOutput of CDS #4 - SO Active Infra Requests
collapsetrue
GET /infraActiveRequests/fa31259b-8f50-4b8b-b15d-be0eb36ba358

RESPONSE:
{
    "clientRequestId": null,
    "action": "createInstance",
    "requestStatus": "COMPLETE",
    "statusMessage": "Macro-Service-createInstance request was executed correctly.",
    "progress": 100,
    "startTime": "2019-04-25T21:30:34.000+0000",
    "endTime": "2019-04-25T21:41:32.000+0000",
    "source": "VID",
    "vnfId": "2ed048f4-9d1f-46da-8d25-1ce8e1a7a2dd",
    "vnfName": null,
    "vnfType": null,
    "serviceType": null,
    "aicNodeClli": null,
    "tenantId": "6270eaa820934710960682c506115453",
    "provStatus": null,
    "vnfParams": null,
    "vnfOutputs": null,
    "requestBody": "{\r\n  \"requestDetails\": {\r\n    \"subscriberInfo\": {\r\n      \"globalSubscriberId\": \"Demonstration\"\r\n    },\r\n    \"requestInfo\": {\r\n      \"suppressRollback\": false,\r\n      \"productFamilyId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\",\r\n      \"requestorId\": \"adt\",\r\n      \"instanceName\": \"vFWNG_CDS_13\",\r\n      \"source\": \"VID\"\r\n    },\r\n    \"cloudConfiguration\": {\r\n      \"lcpCloudRegionId\": \"fr1\",\r\n      \"tenantId\": \"6270eaa820934710960682c506115453\"\r\n    },\r\n    \"requestParameters\": {\r\n      \"subscriptionServiceType\": \"vFW\",\r\n      \"userParams\": [\r\n        {\r\n          \"Homing_Solution\": \"none\"\r\n        },\r\n        {\r\n          \"service\": {\r\n            \"instanceParams\": [\r\n               \r\n            ],\r\n            \"instanceName\": \"vFWNG_CDS_13\",\r\n            \"resources\": {\r\n              \"vnfs\": [\r\n                {\r\n                  \"modelInfo\": {\r\n                \"modelName\": \"40d322e4-c53d-4aa4-a6a2\",\r\n                \"modelVersionId\": \"1525769d-e709-4d19-9bff-3e481a79e658\",\r\n                \"modelInvariantUuid\": \"55054e28-b7fc-43d8-bcc9-d5aa9a2c1800\",\r\n                \"modelVersion\": \"1.0\",\r\n                \"modelCustomizationId\": \"72c6b040-7132-49c7-99f6-4e9b85f19695\",\r\n                \"modelInstanceName\": \"40d322e4-c53d-4aa4-a6a2 0\"\r\n                  },\r\n                  \"cloudConfiguration\": {\r\n                    \"lcpCloudRegionId\": \"fr1\",\r\n                    \"tenantId\": \"6270eaa820934710960682c506115453\"\r\n                  },\r\n                  \"platform\": {\r\n                    \"platformName\": \"test\"\r\n                  },\r\n                  \"lineOfBusiness\": {\r\n                    \"lineOfBusinessName\": \"someValue\"\r\n                  },\r\n                  \"productFamilyId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\",\r\n                  \"instanceName\": \"40d322e4-c53d-4aa4-a6a2 0\",\r\n                  \"instanceParams\": [\r\n                    {\r\n                      \"onap_private_net_id\": \"olc-private\",\r\n                      \"onap_private_subnet_id\": \"olc-private\",\r\n                      \"pub_key\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCwj7uJMyKiP1ogEsZv5kKDFw9mFNhxI+woR3Tuv8vjfNnqdB1GfSnvTFyNbdpyNdR8BlljkiZ1SlwJLEkvPk0HpOoSVVek/QmBeGC7mxyRcpMB2cNQwjXGfsVrforddXOnOkj+zx1aNdVGMc52Js3pex8B/L00H68kOcwP26BI1o77Uh+AxjOkIEGs+wlWNUmXabLDCH8l8IJk9mCTruKEN9KNj4NRZcaNC+XOz42SyHV9RT3N6efp31FqKzo8Ko63QirvKEEBSOAf9VlJ7mFMrGIGH37AP3JJfFYEHDdOA3N64ZpJLa39y25EWwGZNlWpO/GW5bNjTME04dl4eRyd\",\r\n                      \"image_name\": \"Ubuntu 14.04\",\r\n                      \"flavor_name\":\"s1.cw.small-1\"\r\n                    }\r\n                  ],\r\n                  \"vfModules\": [\r\n                    {\r\n                      \"modelInfo\": {\r\n                        \"modelName\": \"40d322e4C53d4aa4A6a2..vpg..module-2\",\r\n                        \"modelVersionId\": \"755a7ebd-a776-4e2c-a5c6-7e979e9e5861\",\r\n                        \"modelInvariantUuid\": \"02a5571e-1150-48d7-be90-810e00760da9\",\r\n                        \"modelVersion\": \"1\",\r\n                        \"modelCustomizationId\": \"4ada321d-647e-4754-a820-41d69494259a\"\r\n                       },\r\n                      \"instanceName\": \"40d322e4C53d4aa4A6a2..vpg..module-2\",\r\n                      \"instanceParams\": [\r\n                                                 {\r\n                          \"sec_group\": \"olc-open\",\r\n                          \"public_net_id\": \"olc-net\"\r\n                        }\r\n                      ]\r\n                    },\r\n                    {\r\n                      \"modelInfo\": {\r\n                        \"modelName\": \"40d322e4C53d4aa4A6a2..vsn..module-1\",\r\n                        \"modelVersionId\": \"746aeb94-1e10-4b15-87e0-f74318a29e17\",\r\n                        \"modelInvariantUuid\": \"48e8b4bb-e852-415e-894f-c4fdbbc6f98c\",\r\n                        \"modelVersion\": \"1\",\r\n                        \"modelCustomizationId\": \"8547725d-4b3b-4411-a1b4-ed9591e291d6\"\r\n                       },\r\n                      \"instanceName\": \"40d322e4C53d4aa4A6a2..vsn..module-1\",\r\n                      \"instanceParams\": [\r\n                        {\r\n                          \"sec_group\": \"olc-open\",\r\n                          \"public_net_id\": \"olc-net\"\r\n                        }\r\n                      ]\r\n                    },\r\n                    {\r\n                      \"modelInfo\": {\r\n                        \"modelName\": \"40d322e4C53d4aa4A6a2..vfw..module-3\",\r\n                        \"modelVersionId\": \"a1a1692a-10ba-4122-8340-ac9fe85adfa7\",\r\n                        \"modelInvariantUuid\": \"601dded4-2943-4dc9-b508-82469e5863d9\",\r\n                        \"modelVersion\": \"1\",\r\n                        \"modelCustomizationId\": \"a42bc6e5-2705-4138-9e7f-01612988df6e\"\r\n                       },\r\n                      \"instanceName\": \"40d322e4C53d4aa4A6a2..vfw..module-3\",\r\n                      \"instanceParams\": [\r\n                        {\r\n                          \"sec_group\": \"olc-open\",\r\n                          \"public_net_id\": \"olc-net\"\r\n                        }\r\n                      ]\r\n                    },\r\n                    {\r\n                      \"modelInfo\": {\r\n                        \"modelName\": \"40d322e4C53d4aa4A6a2..base_template..module-0\",\r\n                        \"modelVersionId\": \"1e9b4714-c243-4fef-a1b0-c6cfe608056e\",\r\n                        \"modelInvariantUuid\": \"90b61d87-6ffd-47a1-bf61-a2c7a8efa422\",\r\n                        \"modelVersion\": \"1\",\r\n                        \"modelCustomizationId\": \"db04f50d-6957-4d8f-9c78-586aec9462aa\"\r\n                      },\r\n                      \"instanceName\": \"40d322e4C53d4aa4A6a2..base_template..module-0\",\r\n                      \"instanceParams\": [\r\n                        {\r\n                          \"sec_group\": \"olc-open\",\r\n                          \"public_net_id\": \"olc-net\"\r\n                        }\r\n                      ]\r\n                    }\r\n                  ]\r\n                }\r\n              ]\r\n            },\r\n            \"modelInfo\": {\r\n              \"modelVersion\": \"1.0\",\r\n        \"modelVersionId\": \"fe0c7a4f-739f-4cdb-bdfe-2fb06eddf15c\",\r\n        \"modelInvariantId\": \"3b8ac8f1-7792-49fd-9d3e-45811a594d17\",\r\n        \"modelName\": \"vFWNG 2019-04-25 21:22:\",\r\n              \"modelType\": \"service\"\r\n            }\r\n          }\r\n        }\r\n      ],\r\n      \"aLaCarte\": false\r\n    },\r\n    \"project\": {\r\n      \"projectName\": \"Project-Demonstration\"\r\n    },\r\n    \"owningEntity\": {\r\n      \"owningEntityId\": \"24ef5425-bec4-4fa3-ab03-c0ecf4eaac96\",\r\n      \"owningEntityName\": \"OE-Demonstration\"\r\n    },\r\n    \"modelInfo\": {\r\n      \"modelVersion\": \"1.0\",\r\n        \"modelVersionId\": \"fe0c7a4f-739f-4cdb-bdfe-2fb06eddf15c\",\r\n        \"modelInvariantId\": \"3b8ac8f1-7792-49fd-9d3e-45811a594d17\",\r\n        \"modelName\": \"vFWNG 2019-04-25 21:22:\",\r\n     \"modelType\": \"service\"\r\n    }\r\n  }\r\n}",
    "responseBody": null,
    "lastModifiedBy": "WorkflowActionBB",
    "modifyTime": "2019-04-25T21:41:32.000+0000",
    "requestType": null,
    "volumeGroupId": null,
    "volumeGroupName": null,
    "vfModuleId": null,
    "vfModuleName": null,
    "vfModuleModelName": null,
    "aaiServiceId": null,
    "aicCloudRegion": "fr1",
    "callBackUrl": null,
    "correlator": null,
    "serviceInstanceId": "70d003f2-8378-43f5-b8cd-eede99cbae5d",
    "serviceInstanceName": "vFWNG_CDS_13",
    "requestScope": "service",
    "requestAction": "createInstance",
    "networkId": null,
    "networkName": null,
    "networkType": null,
    "requestorId": "adt",
    "configurationId": null,
    "configurationName": null,
    "operationalEnvId": null,
    "operationalEnvName": null,
    "requestURI": "fa31259b-8f50-4b8b-b15d-be0eb36ba358",
    "_links": {
        "self": {
            "href": "http://84.39.35.230:30086/infraActiveRequests/fa31259b-8f50-4b8b-b15d-be0eb36ba358"
        },
        "infraActiveRequests": {
            "href": "http://84.39.35.230:30086/infraActiveRequests/fa31259b-8f50-4b8b-b15d-be0eb36ba358"
        }
    }
}


Postman Collection:

View file
nameCDS Builder.postman_collection.json
height150

Notes:

  • If the robot script for service model distribution fails, it might be due to a problem in the database, check the JIRA
    Jira Legacy
    serverSystem Jira
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    keySO-1400
     for solution, basically we need to increase the size of the database field.
Code Block
Log into the SO mariadb container.

use catalogdb;

ALTER TABLE vnf_resource_customization
MODIFY IF EXISTS RESOURCE_INPUT varchar(20000);

ALTER TABLE network_resource_customization
MODIFY IF EXISTS RESOURCE_INPUT varchar(20000);

ALTER TABLE allotted_resource_customization
MODIFY IF EXISTS RESOURCE_INPUT varchar(20000);

in so mariadb pod (username/password root/password).


  • If instantiation fails, and complains about the naming service not available, check that the SDNC Naming policies are active. You can check by policy API or go to POLICY from PORTAL and check the 3 Naming policies shown in the screenshot below exist.

image2019-4-30_16-37-59.png