/
UCA-20 OSS JAX-RS 2 Client

UCA-20 OSS JAX-RS 2 Client

Warning: Draft Content

This wiki is under construction - this is an evolving POC

UCA-20 - Getting issue details... STATUS

Purpose: prototype a REST client on top of ONAP - specifically for VF-Module orchestration.

Analysis

vFirewall Demo Sequence of Events

All the events during a VF creation so we can understand all the orchestration steps at a granular REST level.

Passwords in /testsuite/properties/integration_robot_properties.py


Status (current/future) Flow

BeforeAfter (REST extraction)

in demo.sh init (customer create, service model create)

in vid deploy service model

in vid create service instance

in vid add vnf to service instance

in demo.sh preload

in vid vf-module creation

in demo.sh appc

2 AAI rest calls

unchanged vid

unchanged vid

unchanged vid

SDNC rest call

MSO rest call

unchanged robot

Variables

IAD region

keynamevalue

servicec54316d8-464e-4967-bece-8c2b2f458b66

VNF6229cdee-10f6-4ec4-a5e0-0593154e6d83

VfModule5a08199b-4161-4181-9b2d-da29f6df1410


Prerequisites 

SeqNameSourceTargetActorREST writeREST read

License Model



http://{{sdc_ip}}:8080/onboarding-api/v1.0/vendor-license-models

FD0FBEDB1AB64D1CA1A4E266862CAEE7


Licence Key Group



where id is from LM above

http://{{sdc_ip}}:8080/onboarding-api/v1.0/vendor-license-models/FD0FBEDB1AB64D1CA1A4E266862CAEE7/license-key-groups


Entitlement Pool



where id is from LM above

http://{{sdc_ip}}:8080/onboarding-api/v1.0/vendor-license-models/FD0FBEDB1AB64D1CA1A4E266862CAEE7/entitlement-pools


Feature Group



where id is from LM above

http://{{sdc_ip}}:8080/onboarding-api/v1.0/vendor-license-models/FD0FBEDB1AB64D1CA1A4E266862CAEE7/feature-groups


License Aggreement



where id is from LM above

http://{{sdc_ip}}:8080/onboarding-api/v1.0/vendor-license-models/FD0FBEDB1AB64D1CA1A4E266862CAEE7/license-agreements


VSP



http://{{sdc_ip}}:8080/onboarding-api/v1.0/vendor-software-products

get index by LM id "vendorId": "FD0FBEDB1AB64D1CA1A4E266862CAEE7"

Config

SeqNameSourceTargetActorrobotREST writeREST read

create customerrobotaai./demo.sh init

Executing robot tests at log level TRACE

==============================================================================

OpenECOMP ETE                                                                 

==============================================================================

OpenECOMP ETE.Robot                                                           

==============================================================================

OpenECOMP ETE.Robot.Testsuites                                                

==============================================================================

OpenECOMP ETE.Robot.Testsuites.Demo :: Executes the VNF Orchestration Test ...

==============================================================================

Initialize Customer And Models                                        | PASS |

------------------------------------------------------------------------------

OpenECOMP ETE.Robot.Testsuites.Demo :: Executes the VNF Orchestrat... | PASS |

1 critical test, 1 passed, 0 failed

1 test total, 1 passed, 0 failed

==============================================================================

OpenECOMP ETE.Robot.Testsuites                                        | PASS |

1 critical test, 1 passed, 0 failed

1 test total, 1 passed, 0 failed

==============================================================================

OpenECOMP ETE.Robot                                                   | PASS |

1 critical test, 1 passed, 0 failed

1 test total, 1 passed, 0 failed

==============================================================================

OpenECOMP ETE                                                         | PASS |

1 critical test, 1 passed, 0 failed

1 test total, 1 passed, 0 failed

==============================================================================

Output:  /share/logs/demo/InitDemo/output.xml

Log:     /share/logs/demo/InitDemo/log.html

Report:  /share/logs/demo/InitDemo/report.html



PUT

https://{{aai_ip}}:8443/aai/v8/business/customers/customer/ONAP-User

{ "global-customer-id": "ONAP-User",
"service-subscriptions": {
"service-subscription": [{
"relationship-list": {
"relationship": [{
"related-to": "tenant",
"relationship-data": [{
"relationship-key": "cloud-region.cloud-owner",
"relationship-value": "Rackspace"
}, {
"relationship-key": "cloud-region.cloud-region-id",
"relationship-value": "DFW"
}, {
"relationship-key": "tenant.tenant-id",
"relationship-value": "{{tenant_id}}"
}] }]},
"service-type": "vFW"
}] },
"subscriber-name": "ONAP-User",
"subscriber-type": "INFRA"}


however on a clean system - where the tenant target node in the graph db does not exist yet - we fail

{
"requestError": {
"serviceException": {
"messageId": "SVC3003",
"text": "Failed to make edge to missing target node of type %3 with keys %4 performing %1 on %2 (msg=%5) (ec=%6)",
"variables": [
"PUT",
"business/customers/customer/ONAP-User3",
"tenant",
"/cloud-infrastructure/cloud-regions/cloud-region/Rackspace/DFW/tenants/tenant/1035021",
"Error making edge to target node:Node of type tenant. Could not find object at: /cloud-infrastructure/cloud-regions/cloud-region/Rackspace/DFW/tenants/tenant/1035021",
"ERR.5.4.6129"
]} }}

https://{{aai_ip}}:8443/aai/v8/business/customers/customer

{ "global-customer-id": "Demonstration","subscriber-name": "Demonstration",


create service modelrobotaai./demo.sh init
PUT aai/v8/service-design-and-creation/services
{   "service-id": "${UUID}",
"service-description": "${service_type}"}

https://{{aai_ip}}:8443/aai/v8/service-design-and-creation/models

"model-name-version-id": "dcb40136-9cec-45be-b080-2a36b31c2f06",
"model-type": "service", "model-name": "vfservice",
"model-id": "43d59b70-8829-4a50-a3f7-d261b220ceef"


Service Deployment

SeqNameSourceTargetActorREST writeREST readREST delete

deploy service modelvidaaidemo user

9023f592-5c64-4a5b-9333-3287fdc9d304

create service instancevidaaidemo user

Input:

InstanceName=DemoInstance
Subscriber=Demonstration
ServiceType=vFW

Output:
SIID=c54316d8-464e-4967-bece-8c2b2f458b66



07/27/17 12:10:39 HTTP Status: OK (200)
{
  "request": {
    "requestId": "96dcaa23-88cb-41ac-bf8c-e1e5bb423232",
    "startTime": "Wed, 26 Jul 2017 16:10:26 GMT",
    "requestScope": "service",
    "requestType": "createInstance",
    "requestDetails": {
      "modelInfo": {
        "modelCustomizationName": null,
        "modelInvariantId": "43d59b70-8829-4a50-a3f7-d261b220ceef",
        "modelType": "service",
        "modelNameVersionId": "dcb40136-9cec-45be-b080-2a36b31c2f06",
        "modelName": "vfservice",
        "modelVersion": "1.0"
      },
      "requestInfo": {
        "billingAccountNumber": null,
        "callbackUrl": null,
        "correlator": null,
        "orderNumber": null,
        "productFamilyId": null,
        "orderVersion": null,
        "source": "VID",
        "instanceName": "DemoInstance",
        "suppressRollback": false
      },
      "relatedInstanceList": null,
      "subscriberInfo": {
        "globalSubscriberId": "Demonstration",
        "subscriberName": null
      },
      "cloudConfiguration": null,
      "requestParameters": {
        "subscriptionServiceType": "vFW",
        "userParams": []
      }
    },
    "instanceReferences": {
      "serviceInstanceId": "cd2eb659-2463-461b-9c3b-3bf03619c167",
      "serviceInstanceName": "DemoInstance",
      "vnfInstanceId": null,
      "vnfInstanceName": null,
      "vfModuleInstanceId": null,
      "vfModuleInstanceName": null,
      "volumeGroupInstanceId": null,
      "volumeGroupInstanceName": null,
      "networkInstanceId": null,
      "networkInstanceName": null
    },
    "requestStatus": {
      "requestState": "COMPLETE",
      "statusMessage": "Service Instance has been created successfully.",
      "percentProgress": 100,
      "finishTime": "Wed, 26 Jul 2017 16:10:31 GMT"
    }
  }
}

07/27/17 12:10:28 HTTP Status: Accepted (202)
{
  "requestReferences": {
    "instanceId": "cd2eb659-2463-461b-9c3b-3bf03619c167",
    "requestId": "96dcaa23-88cb-41ac-bf8c-e1e5bb423232"
  }
}


https://{{aai_ip}}:8443/aai/v8/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFW

https://{{aai_ip}}:8443/aai/v8/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFW/service-instances/

{ "service-instance": [{
"service-instance-id": "c54316d8-464e-4967-bece-8c2b2f458b66",
"service-instance-name": "DemoInstance",
"persona-model-id": "2a01ef12-9bb1-4205-9941-a506cbae99c9",

http://{{mso_ip}}:8080/ecomp/mso/infra/serviceInstances/v2/cd2eb659-2463-461b-9c3b-3bf03619c167


{
"requestReferences": {
"instanceId": "cd2eb659-2463-461b-9c3b-3bf03619c167",
"requestId": "1764e091-7d43-4eb0-92d6-b449a85926d2"
}
}


VNF Creation

SeqNameSourceTargetActorREST writeREST readREST delete

Add VNF to

Service Instance

vidsdc

demo user



07/27/17 12:15:13 HTTP Status: OK (200)
{
  "request": {
    "requestId": "e867be64-e725-4e29-8448-c9eceb51ce3c",
    "startTime": "Wed, 26 Jul 2017 16:15:02 GMT",
    "requestScope": "vnf",
    "requestType": "createInstance",
    "requestDetails": {
      "modelInfo": {
        "modelCustomizationName": "vsp 1",
        "modelInvariantId": "27036887-1053-48e8-a55e-3d2a7264a658",
        "modelType": "vnf",
        "modelNameVersionId": "b63a0b42-a151-460a-9bb2-ba469948622b",
        "modelName": "vsp",
        "modelVersion": "1.0"
      },
      "requestInfo": {
        "billingAccountNumber": null,
        "callbackUrl": null,
        "correlator": null,
        "orderNumber": null,
        "productFamilyId": "03606d31-c2f3-483e-9882-6d050ab3610f",
        "orderVersion": null,
        "source": "VID",
        "instanceName": "DemoVNF",
        "suppressRollback": false
      },
      "relatedInstanceList": [
        {
          "relatedInstance": {
            "instanceName": null,
            "instanceId": "cd2eb659-2463-461b-9c3b-3bf03619c167",
            "modelInfo": {
              "modelCustomizationName": null,
              "modelInvariantId": "43d59b70-8829-4a50-a3f7-d261b220ceef",
              "modelType": "service",
              "modelNameVersionId": "dcb40136-9cec-45be-b080-2a36b31c2f06",
              "modelName": "vfservice",
              "modelVersion": "1.0"
            }
          }
        }
      ],
      "subscriberInfo": null,
      "cloudConfiguration": {
        "aicNodeClli": null,
        "tenantId": "your_tenant_id",
        "lcpCloudRegionId": "DFW"
      },
      "requestParameters": {
        "subscriptionServiceType": null,
        "userParams": []
      }
    },
    "instanceReferences": {
      "serviceInstanceId": "cd2eb659-2463-461b-9c3b-3bf03619c167",
      "serviceInstanceName": null,
      "vnfInstanceId": "110f0e9c-52f9-4b12-8bd8-fa2980e48454",
      "vnfInstanceName": "DemoVNF",
      "vfModuleInstanceId": null,
      "vfModuleInstanceName": null,
      "volumeGroupInstanceId": null,
      "volumeGroupInstanceName": null,
      "networkInstanceId": null,
      "networkInstanceName": null
    },
    "requestStatus": {
      "requestState": "COMPLETE",
      "statusMessage": "Vnf has been created successfully.",
      "percentProgress": 100,
      "finishTime": "Wed, 26 Jul 2017 16:15:03 GMT"
    }
  }
}

07/27/17 12:15:02 HTTP Status: Accepted (202)
{
  "requestReferences": {
    "instanceId": "110f0e9c-52f9-4b12-8bd8-fa2980e48454",
    "requestId": "e867be64-e725-4e29-8448-c9eceb51ce3c"
  }
}

get VSPs

http://{{sdc_ip}}:8080/onboarding-api/v1.0/vendor-software-products

"name": "vsp",
"description": "vsp",
"category": "resourceNewCategory.application l4+",


https://{{aai_ip}}:8443/aai/v8/network/generic-vnfs/generic-vnf/6229cdee-10f6-4ec4-a5e0-0593154e6d83

DEL

http://{{mso_ip}}:8080/ecomp/mso/infra/serviceInstances/v2/cd2eb659-2463-461b-9c3b-3bf03619c167/vnfs/42aa89af-cd4e-43d1-8b58-73e8f6b33097









VfModule Preload

SeqNameSourceTargetActorrobotREST writeREST read

preload vnfrobot

./demo.sh preload <DemoVNF> <DemoModule>

or

http://sdnc:8843/signup

http://sdnc:8843/login
Add VNF Profile

Starting Xvfb on display :89 with res 1280x1024x24

Executing robot tests at log level TRACE

==============================================================================

OpenECOMP ETE                                                                 

==============================================================================

OpenECOMP ETE.Robot                                                           

==============================================================================

OpenECOMP ETE.Robot.Testsuites                                                

==============================================================================

OpenECOMP ETE.Robot.Testsuites.Demo :: Executes the VNF Orchestration Test ...

==============================================================================

Preload VNF                                                           | PASS |

------------------------------------------------------------------------------

OpenECOMP ETE.Robot.Testsuites.Demo :: Executes the VNF Orchestrat... | PASS |

1 critical test, 1 passed, 0 failed

1 test total, 1 passed, 0 failed

==============================================================================

OpenECOMP ETE.Robot.Testsuites                                        | PASS |

1 critical test, 1 passed, 0 failed

1 test total, 1 passed, 0 failed

==============================================================================

OpenECOMP ETE.Robot                                                   | PASS |

1 critical test, 1 passed, 0 failed

1 test total, 1 passed, 0 failed

==============================================================================

OpenECOMP ETE                                                         | PASS |

1 critical test, 1 passed, 0 failed

1 test total, 1 passed, 0 failed

==============================================================================

Output:  /share/logs/demo/PreloadDemo/output.xml

Log:     /share/logs/demo/PreloadDemo/log.html

Report:  /share/logs/demo/PreloadDemo/report.html

http://{{sdnc_ip}}:8282/restconf/operations/VNF-API:preload-vnf-topology-operation

where "service-type" = the root service instance id at top of vid page

(do a get on - https://{{aai_ip}}:8443/aai/v8/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFW/service-instances/

Accept:application/json

Content-Type:application/json

X-TransactionId:0a3f6713-ba96-4971-a6f8-c2da85a3176e

X-FromAppId:API client

Authorization:Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==

{    "input": {

        "request-information": {

            "notification-url": "openecomp.org",

            "order-number": "1",

            "order-version": "1",

            "request-action": "PreloadVNFRequest",

            "request-id": "test"

        },

        "sdnc-request-header": {

            "svc-action": "reserve",

            "svc-notification-url": "http:\/\/openecomp.org:8080\/adapters\/rest\/SDNCNotify",

            "svc-request-id": "test"

        },

        "vnf-topology-information": {

            "vnf-assignments": {

                "availability-zones": [],

                "vnf-networks": [],

                "vnf-vms": []

            },

            "vnf-parameters": [{

                            "vnf-parameter-name": "vfw_private_ip_0",

                            "vnf-parameter-value": "192.168.110.100"

                        },                        {

                            "vnf-parameter-name": "vfw_private_ip_1",

                            "vnf-parameter-value": "192.168.120.100"

                        },                        {

                            "vnf-parameter-name": "vfw_private_ip_2",

                            "vnf-parameter-value": "10.1.0.11"

                        },                        {

                            "vnf-parameter-name": "vpg_name_0",

                            "vnf-parameter-value": "demofwl01pgn"

                        },                        {

                            "vnf-parameter-name": "demo_artifacts_version",

                            "vnf-parameter-value": "1.0.0"

                        },                        {

                            "vnf-parameter-name": "ecomp_private_net_cidr",

                            "vnf-parameter-value": "10.0.0.0/8"

                        },                        {

                            "vnf-parameter-name": "key_name",

                            "vnf-parameter-value": "vfw_keydemo"

                        },                        {

                            "vnf-parameter-name": "repo_url_artifacts",

                            "vnf-parameter-value": "https://nexus.onap.org/content/groups/staging"

                        },                        {

                            "vnf-parameter-name": "protected_private_net_id",

                            "vnf-parameter-value": "demofwl_protected"

                        },                        {

                            "vnf-parameter-name": "vpg_private_ip_0",

                            "vnf-parameter-value": "192.168.110.200"

                        },                        {

                            "vnf-parameter-name": "vpg_private_ip_1",

                            "vnf-parameter-value": "10.1.0.12"

                        },                        {

                            "vnf-parameter-name": "unprotected_private_net_cidr",

                            "vnf-parameter-value": "192.168.110.0/24"

                        },                        {

                            "vnf-parameter-name": "dcae_collector_ip",

                            "vnf-parameter-value": "10.0.4.102"

                        },                        {

                            "vnf-parameter-name": "repo_url_blob",

                            "vnf-parameter-value": "https://nexus.onap.org/content/repositories/raw"

                        },                        {

                            "vnf-parameter-name": "vsn_private_ip_0",

                            "vnf-parameter-value": "192.168.120.250"

                        },                        {

                            "vnf-parameter-name": "vsn_private_ip_1",

                            "vnf-parameter-value": "10.1.0.13"

                        },                        {

                            "vnf-parameter-name": "vsn_name_0",

                            "vnf-parameter-value": "demofwl01snk"

                        },                        {

                            "vnf-parameter-name": "vfw_name_0",

                            "vnf-parameter-value": "demofwl01fwl"

                        },                        {

                            "vnf-parameter-name": "pub_key",

                            "vnf-parameter-value": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAqqnA9BAiMLtjOPSYBfhzLu4CiBolWoskDg4KVwhTJVTTeB6CqrQNcadlGXxOHhCYuNCKkUmIVF4WTOisVOJ75Z1c4OMoZLL85xVPKSIeH63kgVugwgPYQu55NbbWX+rsbUha3LnElDhNviMM3iTPbD5nnhKixNERAJMTLKXvZZZGqxW94bREknYPQTT2qrk3YRqwldncopp6Nkgv3AnSJz2gc9tjxnWF0poTQnQm/3D6hiJICrzKfAV0EaPN0KdtYjPhKrYoy6Qb/tKOVaaqsvwfKBJGrT9LfcA7D7M/yj292RT1XN63hI84WC383LsaPJ6eWdDTE6zUP1eGTWCoOw== rsa-key-20161026"

                        },                        {

                            "vnf-parameter-name": "ecomp_private_net_id",

                            "vnf-parameter-value": "oam_ecomp_LbMf" // wrong network oam_ecomp_QbZ1 will fail vfModule creation later (get it from an openstack server call)

                        },                        {

                            "vnf-parameter-name": "dcae_collector_port",

                            "vnf-parameter-value": "8080"

                        },                        {

                            "vnf-parameter-name": "unprotected_private_net_id",

                            "vnf-parameter-value": "demofwl_unprotected"

                        },                        {

                            "vnf-parameter-name": "ecomp_private_subnet_id",

                            "vnf-parameter-value": "oam_ecomp_LbMf"

                        },                        {

                            "vnf-parameter-name": "protected_private_net_cidr",

                            "vnf-parameter-value": "192.168.120.0/24"

                        }            ],

            "vnf-topology-identifier": {

                "generic-vnf-name": "DemoVNF",

                "generic-vnf-type": "service/vsp 1",

                "service-type": "c54316d8-464e-4967-bece-8c2b2f458b66",

                "vnf-name": "DemoModule",

                "vnf-type": "Vsp..base_vfw..module-0"

            }        }    }}


output

{ "output": {
"response-code": "200",
"ack-final-indicator": "Y",
"svc-request-id": "test"
}}

see also

Tutorial: Creating a Service Instance from a Design Model#PreloadFlow

http://{{sdnc_ip}}:8282/restconf/config/VNF-API:preload-vnfs

{ "preload-vnfs": {
"vnf-preload-list": [
{ "vnf-name": "DemoModule",
"vnf-type": "Vsp..base_vfw..module-0",

http://{{sdnc_ip}}:8282/restconf/config/VNF-API:preload-vnfs/vnf-preload-list/DemoModule/Vsp..base_vfw..module-0

{"vnf-preload-list": [{
"vnf-name": "DemoModule",
"vnf-type": "Vsp..base_vfw..module-0",









VfModule Creation

SeqNameSourceTargetActorREST writeREST readREST delete

create Vf module <DemoModule>vid
demo user

Success without running VID! - workaround for VID-19 - Getting issue details... STATUS

Output:

VfModuleID=5a08199b-4161-4181-9b2d-da29f6df1410
HeatStackID=DemoModule/55bd16d6-6bac-4638-9e87-9063df6d03c3

via OpenStack

openstack server list

4be336b3-a31c-4be0-9261-0cb1cb51227d | demofwl01fwl  | ACTIVE | oam_ecomp_LbMf=10.1.0.11; demofwl_unprotected=192.168.110.100; public=104.239.230.93, | ||  | |  | 2001:4802:7803:104:be76:4eff:fe20:377b; demofwl_protected=192.168.120.100 

post call

http://{{mso_ip}}:8080/ecomp/mso/infra/serviceInstances/v2/<id>/vnfs/<id>/vfModules

inputs:

serviceInstance id = c543... from relatedInstance:type=service

vnf id = 6229.. from relatedInstance:type=vnf

using

https://{{aai_ip}}:8443/aai/v8/network/generic-vnfs

get: "relatedInstance": { "instanceId": "6229cdee-10f6-4ec4-a5e0-0593154e6d83",

from: {"generic-vnf": [{"vnf-id": "6229cdee-10f6-4ec4-a5e0-0593154e6d83"

get: modelInvariantId": "7425ba97-e159-4c0f-87dd-3af3b439148b"

from: "persona-model-id": "7425ba97-e159-4c0f-87dd-3af3b439148b"


using

https://{{aai_ip}}:8443/aai/v8/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFW/service-instances/

get: "instanceReferences": { "serviceInstanceId": "c54316d8-464e-4967-bece-8c2b2f458b66"

from: { "service-instance": [{"service-instance-id": "c54316d8-464e-4967-bece-8c2b2f458b66",


body :

{ "requestDetails": {
"requestInfo": {
"instanceName": "DemoModule",
"source": "VID",
"suppressRollback": false
},
"modelInfo": {
"modelType": "vfModule",
"modelInvariantId": "1051e887-365f-4e90-b4cc-3f5c6f588188",
"modelNameVersionId": "02b1cf61-2dc9-4be9-869c-354395670faf",
"modelName": "Vsp..base_vfw..module-0",
"modelVersion": "1.0"
},
"requestParameters": {
"userParams": []
},
"relatedInstanceList": [
{"relatedInstance": {
"instanceId": "cd2eb659-2463-461b-9c3b-3bf03619c167", // from "service-instance-id" of https://{{aai_ip}}:8443/aai/v8/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFW/service-instances/
"modelInfo": {
"modelType":"service",
"modelName":"vfservice", // from vnf-type of https://{{aai_ip}}:8443/aai/v8/network/generic-vnfs
"modelInvariantId":"43d59b70-8829-4a50-a3f7-d261b220ceef", // from "persona-model-id" of https://{{aai_ip}}:8443/aai/v8/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFW/service-instances/
"modelVersion":"1.0",
"modelNameVersionId":"831ed809-345e-4ed0-b216-6308c0f0d8e4"
} } },
{"relatedInstance": {
"instanceId": "110f0e9c-52f9-4b12-8bd8-fa2980e48454", // from "vnf-id" of https://{{aai_ip}}:8443/aai/v8/network/generic-vnfs
"modelInfo": {
"modelType":"vnf",
"modelName":"vsp",
"modelInvariantId":"27036887-1053-48e8-a55e-3d2a7264a658", // from "persona-model-id" of https://{{aai_ip}}:8443/aai/v8/network/generic-vnfs
"modelVersion":"1.0",
"modelNameVersionId":"9c265d0b-e606-4242-9ace-98962a1b93e7",
"modelCustomizationName":"vsp 1"
} } }],
"cloudConfiguration": {
"lcpCloudRegionId": "DFW",
"tenantId": "{{tenant_id}}"
} }}

however there is more to this than just a rest call - no heat stack means no vf instances yet

http://{{mso_ip}}:8080/ecomp/mso/infra/serviceInstances/v2/cd2eb659-2463-461b-9c3b-3bf03619c167/vnfs/110f0e9c-52f9-4b12-8bd8-fa2980e48454/vfModules

{
"requestReferences": {
"instanceId": "52d939c6-e603-4782-92e8-962387ae5de8",
"requestId": "8869bc00-f07e-48d2-a55b-c725cfca44f4"
}
}

however a call to the following - shows we need to get the right network name in the preload

http://{{mso_ip}}:8080/ecomp/mso/infra/orchestrationRequests/v2/?filter=vnfInstanceId%3AEQUALS%3A110f0e9c-52f9-4b12-8bd8-fa2980e48454

"requestStatus": {
"requestState": "FAILED",
"statusMessage": "Received vfModuleException from VnfAdapter: category='INTERNAL' message='Exception during create VF 400 Bad Request: The server could not comply with the request since it is either malformed or otherwise incorrect., error.type=StackValidationFailed, error.message=Property error: : resources.vfw_private_2_port.properties.fixed_ips[0].subnet: : Error validating value 'oam_ecomp_LbMf': Unable to find subnet with name or id 'oam_ecomp_LbMf'' rolledBack='true'",

retry after redoing preload with proper subnet name oam_ecomp_QbZ1

200 OK

{ "requestReferences": {
"instanceId": "d5508965-35c6-4720-a7f0-4b0e17f25c9d",
"requestId": "9a3510d2-9aa7-486a-8b39-fab543c718ec"
}}

http://{{mso_ip}}:8080/ecomp/mso/infra/orchestrationRequests/v2/?filter=vfModuleInstanceId%3AEQUALS%3A5a08199b-4161-4181-9b2d-da29f6df1410

http://{{mso_ip}}:8080/ecomp/mso/infra/orchestrationRequests/v2/?filter=vnfInstanceId%3AEQUALS%3A110f0e9c-52f9-4b12-8bd8-fa2980e48454


http://{{mso_ip}}:8080/ecomp/mso/infra/orchestrationRequests/v2/?filter=vfModuleInstanceId%3AEQUALS%3Ad5508965-35c6-4720-a7f0-4b0e17f25c9d

{ "requestList": [{

"request": {
"requestId": "9a3510d2-9aa7-486a-8b39-fab543c718ec",
"startTime": "Wed, 26 Jul 2017 21:10:37 GMT",
"requestScope": "vfModule",
"requestType": "createInstance",
"requestDetails": {
"modelInfo": {
"modelCustomizationName": null,
"modelInvariantId": "1051e887-365f-4e90-b4cc-3f5c6f588188",
"modelType": "vfModule",
"modelNameVersionId": "02b1cf61-2dc9-4be9-869c-354395670faf",
"modelName": "Vsp..base_vfw..module-0",
"modelVersion": "1.0"
}, "requestInfo": {
"billingAccountNumber": null,
"callbackUrl": null,
"correlator": null,
"orderNumber": null,
"productFamilyId": null,
"orderVersion": null,
"source": "VID",
"instanceName": "DemoModule",
"suppressRollback": false
}, "relatedInstanceList": [
{ "relatedInstance": {
"instanceName": null,
"instanceId": "cd2eb659-2463-461b-9c3b-3bf03619c167",
"modelInfo": {
"modelCustomizationName": null,
"modelInvariantId": "43d59b70-8829-4a50-a3f7-d261b220ceef",
"modelType": "service",
"modelNameVersionId": "15eb2af8-766c-4e53-9038-a4a95e79f105",
"modelName": "vfservice",
"modelVersion": "1.0"
} } }, {
"relatedInstance": {
"instanceName": null,
"instanceId": "110f0e9c-52f9-4b12-8bd8-fa2980e48454",
"modelInfo": {
"modelCustomizationName": "vsp 1",
"modelInvariantId": "27036887-1053-48e8-a55e-3d2a7264a658",
"modelType": "vnf",
"modelNameVersionId": "2e5273f3-a6a4-4c50-9b0a-bc9b25749ca3",
"modelName": "vsp",
"modelVersion": "1.0"
} } } ],
"subscriberInfo": null,
"cloudConfiguration": {
"aicNodeClli": null,
"tenantId": "your_tenant_id",
"lcpCloudRegionId": "DFW"
},
"requestParameters": {
"subscriptionServiceType": null,
"userParams": []
} },
"instanceReferences": {
"serviceInstanceId": "cd2eb659-2463-461b-9c3b-3bf03619c167",
"serviceInstanceName": null,
"vnfInstanceId": "110f0e9c-52f9-4b12-8bd8-fa2980e48454",
"vnfInstanceName": null,
"vfModuleInstanceId": "d5508965-35c6-4720-a7f0-4b0e17f25c9d",
"vfModuleInstanceName": "DemoModule",
"volumeGroupInstanceId": null,
"volumeGroupInstanceName": null,
"networkInstanceId": null,
"networkInstanceName": null
}, "requestStatus": {
"requestState": "COMPLETE",
"statusMessage": "Vf Module has been created successfully.",
"percentProgress": 100,
"finishTime": "Wed, 26 Jul 2017 21:14:26 GMT"
} } } ]}


get ID via

http://{{mso_ip}}:8080/ecomp/mso/infra/orchestrationRequests/v2/?filter=vfModuleInstanceId%3AEQUALS%3Ad5508965-35c6-4720-a7f0-4b0e17f25c9d

{ ...
} }, "instanceReferences": {
"serviceInstanceId": "cd2eb659-2463-461b-9c3b-3bf03619c167",
"serviceInstanceName": null,
"vnfInstanceId": "110f0e9c-52f9-4b12-8bd8-fa2980e48454",
"vnfInstanceName": null,
"vfModuleInstanceId": "d5508965-35c6-4720-a7f0-4b0e17f25c9d",
"vfModuleInstanceName": "DemoModule",
"volumeGroupInstanceId": null,
"volumeGroupInstanceName": null,
"networkInstanceId": null,
"networkInstanceName": null
},
"requestStatus": {
"requestState": "COMPLETE",
"statusMessage": "Vf Module has been created successfully.",
"percentProgress": 100,
"finishTime": "Wed, 26 Jul 2017 21:14:26 GMT"
} } } ]}


DEL to

http://{{mso_ip}}:8080/ecomp/mso/infra/serviceInstances/v2/cd2eb659-2463-461b-9c3b-3bf03619c167/vnfs/110f0e9c-52f9-4b12-8bd8-fa2980e48454/vfModules/d5508965-35c6-4720-a7f0-4b0e17f25c9d

fails - referencing an older preload

{
"serviceException": {
"messageId": "SVC0002",
"text": "Error parsing request. No valid serviceInstanceId matching the serviceInstanceId in request URI is specified"
}
}









Closed Loop

SeqNameSourceTargetActorRobotREST writeREST read

appcrobot
./demo.sh appc <DemoModule>

Starting Xvfb on display :89 with res 1280x1024x24

Executing robot tests at log level TRACE

==============================================================================

OpenECOMP ETE                                                                 

==============================================================================

OpenECOMP ETE.Robot                                                           

==============================================================================

OpenECOMP ETE.Robot.Testsuites                                                

==============================================================================

OpenECOMP ETE.Robot.Testsuites.Demo :: Executes the VNF Orchestration Test ...

==============================================================================

Create APPC Mount Point                                               | PASS |

------------------------------------------------------------------------------

OpenECOMP ETE.Robot.Testsuites.Demo :: Executes the VNF Orchestrat... | PASS |

1 critical test, 1 passed, 0 failed

1 test total, 1 passed, 0 failed

==============================================================================

OpenECOMP ETE.Robot.Testsuites                                        | PASS |

1 critical test, 1 passed, 0 failed

1 test total, 1 passed, 0 failed

=========================================