Warning: Draft Content

This wiki is under construction - this is an evolving POC

https://lf-onap.atlassian.net/browse/UCA-20

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

Before

After (REST extraction)

Before

After (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

key

name

value

key

name

value

 

service

c54316d8-464e-4967-bece-8c2b2f458b66

 

VNF

6229cdee-10f6-4ec4-a5e0-0593154e6d83

 

VfModule

5a08199b-4161-4181-9b2d-da29f6df1410

 

Prerequisites 

Seq

Name

Source

Target

Actor

REST write

REST read

Seq

Name

Source

Target

Actor

REST write

REST 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

Seq

Name

Source

Target

Actor

robot

REST write

REST read

Seq

Name

Source

Target

Actor

robot

REST write

REST read

 

create customer

robot

aai

./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 model

robot

aai

./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

Seq

Name

Source

Target

Actor

REST write

REST read

REST delete

Seq

Name

Source

Target

Actor

REST write

REST read

REST delete

 

deploy service model

vid

aai

demo user

 

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

 

 

create service instance

vid

aai

demo 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

Seq

Name

Source

Target

Actor

REST write

REST read

REST delete

Seq

Name

Source

Target

Actor

REST write

REST read

REST delete

 

Add VNF to

Service Instance

vid

sdc

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

Seq

Name

Source

Target

Actor

robot

REST write

REST read

Seq

Name

Source

Target

Actor

robot

REST write

REST read

 

preload vnf

robot

 

./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"

                        },                        {