Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 16 Next »

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:

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:

Output of the robot script to distribute the vFW service model
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# 


Output of CDS #1 - SDC Service Catalog
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"
    }


Output of CDS #2 - SO Service VNFs
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
                }
            ]
        }
    ]
}


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.
kubectl -n onap expose pod onap-so-so-catalog-db-adapter-56d9cc554b-9fszd --type=LoadBalancer



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

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


Output of CDS #4 - SO Active Infra Requests
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:

Notes:

  • If the robot script for service model distribution fails, it might be due to a problem in the database, check the JIRA SO-1400 - Getting issue details... STATUS  for solution, basically we need to increase the size of the database field.
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

  • No labels