Introduction

The purpose of this page is to describe the vLB use case instantiation using the Controller Design Studio in ONAP Dublin Release.

What's new in El Alto:

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.

Also, we can see that a configuration is generated and save in CDS DB via the new ConfigAssignBB.

And later during the instantiation process, the configuration is deployed on the VF module by CDS via the new ConfigDeployBB.

In El Alto, we have a new Robot script that can automate the E2E instantiation of the service.


    The user can run the whole E2E instantitation using automation by Robot Script.

    In order to use this feature, we can follow the steps below:

    E2E Instantiation using Robot
    root@olc-rancher:~# cd oom/kubernetes/robot/
    root@olc-rancher:~/oom/kubernetes/robot# ./demo-k8s.sh onap instantiateVLB_CDS
    Number of parameters:
    2
    KEY:
    instantiateVLB_CDS
    ++ kubectl --namespace onap get pods
    ++ sed 's/ .*//'
    ++ grep robot
    + POD=onap-robot-robot-6998b9988c-cthb7
    ++ dirname ./demo-k8s.sh
    + DIR=.
    + SCRIPTDIR=scripts/demoscript
    + ETEHOME=/var/opt/ONAP
    + '[' ']'
    ++ kubectl --namespace onap exec onap-robot-robot-6998b9988c-cthb7 -- bash -c 'ls -1q /share/logs/ | wc -l'
    + export GLOBAL_BUILD_NUMBER=17
    + GLOBAL_BUILD_NUMBER=17
    ++ printf %04d 17
    + OUTPUT_FOLDER=0017_demo_instantiateVLB_CDS
    + DISPLAY_NUM=107
    + VARIABLEFILES='-V /share/config/robot_properties.py'
    + kubectl --namespace onap exec onap-robot-robot-6998b9988c-cthb7 -- /var/opt/ONAP/runTags.sh -V /share/config/robot_properties.py -v GLOBAL_BUILD_NUMBER:31780 -d /share/logs/0017_demo_instantiateVLB_CDS -i instantiateVLB_CDS --display 107
    Starting Xvfb on display :107 with res 1280x1024x24
    Executing robot tests at log level TRACE
    ==============================================================================
    Testsuites                                                                    
    ==============================================================================
    Testsuites.Demo :: Executes the VNF Orchestration Test cases including setu...
    ==============================================================================
    Instantiate VLB_CDS                                                   | 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/0017_demo_instantiateVLB_CDS/output.xml
    Log:     /share/logs/0017_demo_instantiateVLB_CDS/log.html
    Report:  /share/logs/0017_demo_instantiateVLB_CDS/report.html
    root@olc-rancher:~/oom/kubernetes/robot# 

    After running Robot, we should find the stacks created in Openstack

    Also, we can find the vLB configuration was updated as per the ConfigDeploy step:

    vLB configuration after Robot PASS
    root@fr1-onap-nf-20191016t111136259z-vlb-001:/opt# curl http://localhost:8183/restconf/config/vlb-business-vnf-onap-plugin:vlb-business-vnf-onap-plugin/vdns-instances -H "Authorization: Basic YWRtaW46YWRtaW4="
    
    {"vdns-instances":{"vdns-instance":[{"ip-addr":"192.168.10.47","oam-ip-addr":"10.0.0.176","enabled":false}]}}
    
    root@fr1-onap-nf-20191016t111136259z-vlb-001:/opt# 


    Video demo of the vLB instantiation

    vdns-cds-dublin-7-6-2019.mp4

    Summary of the video demo

    Before running the instantitation, we need to distribute the vLB service model in ONAP.

    Then, we can use a Postman collection as shown in the video that has 3 Rest Calls and some code to automate the instantiation of the vLB 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.

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

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

    Stack creation in Openstack

    We can see the final stack created in Openstack, and the final network topology below.

    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-model: 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 16 image name
    • flavor_name : flavor
    • sec_group : security group that will be applied to the VMs

    SO Workflow BBs

    After the Service Instantiation Rest Call to SO, we can see that SO decomposes the service into 1 VNF + 4 VF Modules, and SO created 18 Building Blocks that will be executed to instantiate the use case.

    In the video above we can see the BBs as they progressing, until the full workflow is completed, and in the video shows the stack as it comes up in Openstack.

    SO BPMN Logs
    2019-06-07T03:15:10.440Z|f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3| o.o.s.b.i.workflow.tasks.WorkflowAction - Found Service - 1    Vnf - 1    VfModule - 4    VolumeGroup - 0    Network - 0    VirtualLink - 0    NetworkCollection - 0    Configuration - 0    InstanceGroup - 0    
    ...
    2019-06-07T03:15:10.519Z|f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3| o.o.s.b.i.workflow.tasks.WorkflowAction - List of BuildingBlocks to execute:
    2019-06-07T03:15:10.520Z|f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3| o.o.s.b.i.workflow.tasks.WorkflowAction - AssignServiceInstanceBB
    2019-06-07T03:15:10.520Z|f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3| o.o.s.b.i.workflow.tasks.WorkflowAction - AssignVnfBB
    2019-06-07T03:15:10.521Z|f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3| o.o.s.b.i.workflow.tasks.WorkflowAction - AssignVfModuleBB
    2019-06-07T03:15:10.521Z|f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3| o.o.s.b.i.workflow.tasks.WorkflowAction - AssignVfModuleBB
    2019-06-07T03:15:10.522Z|f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3| o.o.s.b.i.workflow.tasks.WorkflowAction - AssignVfModuleBB
    2019-06-07T03:15:10.522Z|f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3| o.o.s.b.i.workflow.tasks.WorkflowAction - AssignVfModuleBB
    2019-06-07T03:15:10.523Z|f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3| o.o.s.b.i.workflow.tasks.WorkflowAction - ConfigAssignVnfBB
    2019-06-07T03:15:10.523Z|f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3| o.o.s.b.i.workflow.tasks.WorkflowAction - CreateVfModuleBB
    2019-06-07T03:15:10.524Z|f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3| o.o.s.b.i.workflow.tasks.WorkflowAction - CreateVfModuleBB
    2019-06-07T03:15:10.524Z|f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3| o.o.s.b.i.workflow.tasks.WorkflowAction - CreateVfModuleBB
    2019-06-07T03:15:10.525Z|f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3| o.o.s.b.i.workflow.tasks.WorkflowAction - CreateVfModuleBB
    2019-06-07T03:15:10.525Z|f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3| o.o.s.b.i.workflow.tasks.WorkflowAction - ActivateVfModuleBB
    2019-06-07T03:15:10.526Z|f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3| o.o.s.b.i.workflow.tasks.WorkflowAction - ActivateVfModuleBB
    2019-06-07T03:15:10.526Z|f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3| o.o.s.b.i.workflow.tasks.WorkflowAction - ActivateVfModuleBB
    2019-06-07T03:15:10.527Z|f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3| o.o.s.b.i.workflow.tasks.WorkflowAction - ActivateVfModuleBB
    2019-06-07T03:15:10.527Z|f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3| o.o.s.b.i.workflow.tasks.WorkflowAction - ConfigDeployVnfBB
    2019-06-07T03:15:10.528Z|f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3| o.o.s.b.i.workflow.tasks.WorkflowAction - ActivateVnfBB
    2019-06-07T03:15:10.528Z|f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3| o.o.s.b.i.workflow.tasks.WorkflowAction - ActivateServiceInstanceBB


    SO ConfigAssignBB

    In this BB, a configlet is generated and saved in CDS DB.

    The snapshot below shows the table, we can see we have 2 configs, one called baseconfig, and another called incremental config.


    Below the logs generated by the CDS Blueprint Processor showing the ConfigAssign:

    ConfigAssign Logs from Blueprint Processor
    2019-06-07 03:16:02,643|||grpc-default-executor-2||||INFO||||||| processing request id f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3
    2019-06-07 03:16:02,644|||grpc-default-executor-2||||INFO||||||| cba file name(test), version(1.0.0) already present(/opt/app/onap/blueprints/deploy/test/1.0.0)
    2019-06-07 03:16:02,644|||grpc-default-executor-2||||INFO||||||| blueprint base path /opt/app/onap/blueprints/deploy/test/1.0.0
    2019-06-07 03:16:02,653|||grpc-default-executor-2||||INFO||||||| Reading blueprint path(/opt/app/onap/blueprints/deploy/test/1.0.0) and entry definition file (Definitions/vDNS-CDS.json)
    2019-06-07 03:16:02,667|||grpc-default-executor-2||||INFO||||||| assign workflow config-assign input value ({"resolution-key":"fr2_ONAP-NF_20190607T031522008Z","config-assign-properties":{"service-instance-id":"1a0fbd43-0ab6-4d67-99f4-14a890505a8d","vnf-id":"1bed94d9-9a12-458a-b891-7c04796b5af4","vnf-name":"fr2_ONAP-NF_20190607T031522008Z","service-model-uuid":"ad40aa27-b3fe-4fc3-8755-ebb1494f5913","vnf-customization-uuid":"6409e9d9-a469-4546-a7b4-e508ecc1e77f","service":"{instanceParams=[], instanceName=cds-test, resources={vnfs=[{modelInfo={modelName=cds-vnf-99, modelVersionId=a44d59b8-91b4-4692-8c29-e0088c901cc6, modelInvariantUuid=fd41f747-122d-45b9-87fd-2a6d7d434728, modelVersion=1.0, modelCustomizationId=6409e9d9-a469-4546-a7b4-e508ecc1e77f, modelInstanceName=cds-vnf-99 0}, cloudConfiguration={lcpCloudRegionId=fr2, tenantId=6270eaa820934710960682c506115453}, platform={platformName=test}, lineOfBusiness={lineOfBusinessName=LOB-Demonstration}, productFamilyId=a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb, instanceName=cds-vnf-99 0, instanceParams=[{onap_private_net_id=olc-private, onap_private_subnet_id=olc-private, pub_key=ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCs84Cy8+qi/jvucay0BwFtOq3ian0ulTXFGxkZcZCR0N48j88pbHJaEqb9e25MAsrfH+7Etb9Kd5nbBThEL/i0AyHXnDsc80Oq0sqlLcfLo3SGSurkrNoRofHboJ5Hn+N9SlWN5FCQGbTx1w3rjqR4LasAI6XxH9xpXSFyyge6ysVXH0cYaZ8sg98nFZa1fPJR9L8COjZvF+EYudub2RC5HVyV/sx7bliNFo9JwQh6du1abG4G7ZDjTIcYwYp21iq52UzWU28RVcAyY6AQZJu2lHLdsr8fPvyeWZpC5EqGsxI1G609m9G/dURRKwYfez/f2ATzpn5QjEX7LrLWBM8r Generated-by-Nova, image_name=Ubuntu 16.04, flavor_name=n2.cw.standard-2, sec_group=olc-open, install_script_version=1.4.0-SNAPSHOT, demo_artifacts_version=1.4.0-SNAPSHOT, cloud_env=openstack, public_net_id=olc-public, aic-cloud-region=fr2}], vfModules=[{modelInfo={modelName=CdsVnf99..base_template..module-0, modelVersionId=dd43a4cb-2123-4213-a76a-38638507eb7f, modelInvariantUuid=a22c3514-028e-4ed9-9bd8-9dda79d35278, modelVersion=1, modelCustomizationId=b0421854-bebb-455b-a96f-33db5640b60a}, instanceName=CdsVnf99..base_template..module-0, instanceParams=[{sec_group=olc-open, public_net_id=olc-net}]}, {modelInfo={modelName=CdsVnf99..vpkg..module-1, modelVersionId=b4283579-8e0f-4de4-8eed-8640a24f3625, modelInvariantUuid=dbad0645-3c57-4f2e-8a47-887c125b7ae0, modelVersion=1, modelCustomizationId=1339d96b-0347-4c53-a1f2-923482aa71ec}, instanceName=CdsVnf99..vpkg..module-1, instanceParams=[{sec_group=olc-open, public_net_id=olc-net}]}, {modelInfo={modelName=CdsVnf99..vlb..module-2, modelVersionId=d8ed100e-9c1d-4b37-a17f-0a300e5096c7, modelInvariantUuid=3174d161-c832-4b58-ac46-1fc30f40030c, modelVersion=1, modelCustomizationId=3df8956d-601f-4312-a5f1-f186f7ad98d4}, instanceName=CdsVnf99..vlb..module-2, instanceParams=[{sec_group=olc-open, public_net_id=olc-net}]}, {modelInfo={modelName=CdsVnf99..vdns..module-3, modelVersionId=776f80d3-3e18-40c5-adc9-36061fcb452c, modelInvariantUuid=80cbf0f3-a80a-4b9b-a9ec-63006c0be349, modelVersion=1, modelCustomizationId=3c2235ff-cbe5-4037-9470-614c069aa334}, instanceName=CdsVnf99..vdns..module-3, instanceParams=[{sec_group=olc-open, public_net_id=olc-net}]}]}]}, modelInfo={modelVersion=1.0, modelVersionId=ad40aa27-b3fe-4fc3-8755-ebb1494f5913, modelInvariantId=fa3a6aa5-c77d-4b94-b300-9b7a2eb21627, modelName=cds-svc-99, modelType=service}}","Homing_Solution":"none"}})
    2019-06-07 03:16:02,668|||grpc-default-executor-2||||INFO||||||| Executing workflow(config-assign) NodeTemplate(config-assign), derived from(tosca.nodes.Component)
    2019-06-07 03:16:02,668|||grpc-default-executor-2||||INFO||||||| executing node template(config-assign) component(component-resource-resolution) interface(ResourceResolutionComponent) operation(process)
    2019-06-07 03:16:02,668|||grpc-default-executor-2||||INFO||||||| preparing request id(f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3) for workflow(config-assign) step(config-assign)
    2019-06-07 03:16:02,668|||grpc-default-executor-2||||INFO||||||| resolveNodeTemplateInterfaceOperationInputs for node template (config-assign),interface name (ResourceResolutionComponent), operationName(process)
    2019-06-07 03:16:02,669|||grpc-default-executor-2||||INFO||||||| input definition for node template (config-assign), values ({resolution-key={"get_input":"resolution-key"}, store-result=true, artifact-prefix-names=["baseconfig","incremental-config"]})
    2019-06-07 03:16:02,669|||grpc-default-executor-2||||INFO||||||| Resolving resource for template artifact(baseconfig-template) with resource assignment artifact(baseconfig-mapping)
    2019-06-07 03:16:02,728|||grpc-default-executor-2||||INFO||||||| Assignments ([[name=service-instance-id, dictionaryName=service-instance-id, dictionarySource=input], [name=vnf-id, dictionaryName=vnf-id, dictionarySource=input], [name=vdns_int_private_ip_0, dictionaryName=vdns_int_private_ip_0, dictionarySource=primary-config-data], [name=vdns_onap_private_ip_0, dictionaryName=vdns_onap_private_ip_0, dictionarySource=primary-config-data]])
    2019-06-07 03:16:02,728|||grpc-default-executor-2||||INFO||||||| Sorted Sequenced Assignments ([[name=*, dictionaryName=null, dictionarySource=null], [name=service-instance-id, dictionaryName=service-instance-id, dictionarySource=input], [name=vnf-id, dictionaryName=vnf-id, dictionarySource=input], [name=vdns_onap_private_ip_0, dictionaryName=vdns_onap_private_ip_0, dictionarySource=primary-config-data], [name=vdns_int_private_ip_0, dictionaryName=vdns_int_private_ip_0, dictionarySource=primary-config-data]])
    2019-06-07 03:16:02,728|||grpc-default-executor-2||||INFO||||||| Batched Sequence : ([[[name=*, dictionaryName=null, dictionarySource=null]], [[name=service-instance-id, dictionaryName=service-instance-id, dictionarySource=input], [name=vnf-id, dictionaryName=vnf-id, dictionarySource=input]], [[name=vdns_onap_private_ip_0, dictionaryName=vdns_onap_private_ip_0, dictionarySource=primary-config-data], [name=vdns_int_private_ip_0, dictionaryName=vdns_int_private_ip_0, dictionarySource=primary-config-data]]])
    2019-06-07 03:16:02,729|||grpc-default-executor-2||||INFO||||||| input source template key (service-instance-id) found from input and value is ("1a0fbd43-0ab6-4d67-99f4-14a890505a8d")
    2019-06-07 03:16:02,729|||grpc-default-executor-2||||INFO||||||| Setting Resource Value ("1a0fbd43-0ab6-4d67-99f4-14a890505a8d") for Resource Name (service-instance-id) of type (string)
    2019-06-07 03:16:02,729|||grpc-default-executor-2||||INFO||||||| input source template key (vnf-id) found from input and value is ("1bed94d9-9a12-458a-b891-7c04796b5af4")
    2019-06-07 03:16:02,729|||grpc-default-executor-2||||INFO||||||| Setting Resource Value ("1bed94d9-9a12-458a-b891-7c04796b5af4") for Resource Name (vnf-id) of type (string)
    2019-06-07 03:16:02,729|||grpc-default-executor-2||||INFO||||||| Setting Resource Value () for Resource Name (vdns_onap_private_ip_0) of type (string)
    2019-06-07 03:16:02,730|||grpc-default-executor-2||||INFO||||||| inputKeyMapping: {service-instance-id=service-instance-id, vnf-id=vnf-id}
    2019-06-07 03:16:02,730|||grpc-default-executor-2||||INFO||||||| resolvedInputKeyMapping: {vnf-id=1bed94d9-9a12-458a-b891-7c04796b5af4, service-instance-id=1a0fbd43-0ab6-4d67-99f4-14a890505a8d}
    2019-06-07 03:16:02,731|||grpc-default-executor-2||||INFO||||||| primary-config-data dictionary information : (/restconf/config/GENERIC-RESOURCE-API:services/service/1a0fbd43-0ab6-4d67-99f4-14a890505a8d/service-data/vnfs/vnf/1bed94d9-9a12-458a-b891-7c04796b5af4/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_onap_private_ip_0), ({service-instance-id=service-instance-id, vnf-id=vnf-id}), ({vdns_onap_private_ip_0=value})
    2019-06-07 03:16:02,731|||grpc-default-executor-2||||INFO||||||| prefix: blueprintsprocessor.restclient.primary-config-data
    2019-06-07 03:16:02,731|||grpc-default-executor-2||||INFO||||||| type: basic-auth
    2019-06-07 03:16:02,736|||grpc-default-executor-2||||INFO||||||| Rest request method(GET), url(/restconf/config/GENERIC-RESOURCE-API:services/service/1a0fbd43-0ab6-4d67-99f4-14a890505a8d/service-data/vnfs/vnf/1bed94d9-9a12-458a-b891-7c04796b5af4/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_onap_private_ip_0)
    2019-06-07 03:16:02,744|||grpc-default-executor-2||||INFO||||||| Response status(200 - OK)
    2019-06-07 03:16:02,744|||grpc-default-executor-2||||INFO||||||| response: WebClientResponse(status=200, body={"param":[{"name":"vdns_onap_private_ip_0","value":"10.0.101.187","resource-resolution-data":{"capability-name":"netbox-ip-assign","resource-key":[{"name":"external_key","value":"1bed94d9-9a12-458a-b891-7c04796b5af4-vdns_onap_private_ip_0"},{"name":"vnf-id","value":"1bed94d9-9a12-458a-b891-7c04796b5af4"},{"name":"service-instance-id","value":"1a0fbd43-0ab6-4d67-99f4-14a890505a8d"},{"name":"prefix-id","value":"3"}],"status":"SUCCESS"}}]})
    2019-06-07 03:16:02,744|||grpc-default-executor-2||||INFO||||||| responseStatusCode: 200
    2019-06-07 03:16:02,744|||grpc-default-executor-2||||INFO||||||| responseBody: {"param":[{"name":"vdns_onap_private_ip_0","value":"10.0.101.187","resource-resolution-data":{"capability-name":"netbox-ip-assign","resource-key":[{"name":"external_key","value":"1bed94d9-9a12-458a-b891-7c04796b5af4-vdns_onap_private_ip_0"},{"name":"vnf-id","value":"1bed94d9-9a12-458a-b891-7c04796b5af4"},{"name":"service-instance-id","value":"1a0fbd43-0ab6-4d67-99f4-14a890505a8d"},{"name":"prefix-id","value":"3"}],"status":"SUCCESS"}}]}
    2019-06-07 03:16:02,744|||grpc-default-executor-2||||INFO||||||| Response processing type(string)
    2019-06-07 03:16:02,745|||grpc-default-executor-2||||INFO||||||| populating value for output mapping ({vdns_onap_private_ip_0=value}), from json ("10.0.101.187")
    2019-06-07 03:16:02,745|||grpc-default-executor-2||||INFO||||||| For template key (vdns_onap_private_ip_0) setting value as ("10.0.101.187")
    2019-06-07 03:16:02,745|||grpc-default-executor-2||||INFO||||||| Setting Resource Value ("10.0.101.187") for Resource Name (vdns_onap_private_ip_0) of type (string)
    2019-06-07 03:16:02,745|||grpc-default-executor-2||||INFO||||||| Setting Resource Value () for Resource Name (vdns_int_private_ip_0) of type (string)
    2019-06-07 03:16:02,747|||grpc-default-executor-2||||INFO||||||| inputKeyMapping: {service-instance-id=service-instance-id, vnf-id=vnf-id}
    2019-06-07 03:16:02,747|||grpc-default-executor-2||||INFO||||||| resolvedInputKeyMapping: {vnf-id=1bed94d9-9a12-458a-b891-7c04796b5af4, service-instance-id=1a0fbd43-0ab6-4d67-99f4-14a890505a8d}
    2019-06-07 03:16:02,747|||grpc-default-executor-2||||INFO||||||| primary-config-data dictionary information : (/restconf/config/GENERIC-RESOURCE-API:services/service/1a0fbd43-0ab6-4d67-99f4-14a890505a8d/service-data/vnfs/vnf/1bed94d9-9a12-458a-b891-7c04796b5af4/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_int_private_ip_0), ({service-instance-id=service-instance-id, vnf-id=vnf-id}), ({vdns_int_private_ip_0=value})
    2019-06-07 03:16:02,747|||grpc-default-executor-2||||INFO||||||| prefix: blueprintsprocessor.restclient.primary-config-data
    2019-06-07 03:16:02,748|||grpc-default-executor-2||||INFO||||||| type: basic-auth
    2019-06-07 03:16:02,754|||grpc-default-executor-2||||INFO||||||| Rest request method(GET), url(/restconf/config/GENERIC-RESOURCE-API:services/service/1a0fbd43-0ab6-4d67-99f4-14a890505a8d/service-data/vnfs/vnf/1bed94d9-9a12-458a-b891-7c04796b5af4/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_int_private_ip_0)
    2019-06-07 03:16:02,759|||grpc-default-executor-2||||INFO||||||| Response status(200 - OK)
    2019-06-07 03:16:02,759|||grpc-default-executor-2||||INFO||||||| response: WebClientResponse(status=200, body={"param":[{"name":"vdns_int_private_ip_0","value":"192.168.20.181","resource-resolution-data":{"capability-name":"netbox-ip-assign","resource-key":[{"name":"external_key","value":"1bed94d9-9a12-458a-b891-7c04796b5af4-vdns_int_private_ip_0"},{"name":"vnf-id","value":"1bed94d9-9a12-458a-b891-7c04796b5af4"},{"name":"service-instance-id","value":"1a0fbd43-0ab6-4d67-99f4-14a890505a8d"},{"name":"prefix-id","value":"1"}],"status":"SUCCESS"}}]})
    2019-06-07 03:16:02,759|||grpc-default-executor-2||||INFO||||||| responseStatusCode: 200
    2019-06-07 03:16:02,759|||grpc-default-executor-2||||INFO||||||| responseBody: {"param":[{"name":"vdns_int_private_ip_0","value":"192.168.20.181","resource-resolution-data":{"capability-name":"netbox-ip-assign","resource-key":[{"name":"external_key","value":"1bed94d9-9a12-458a-b891-7c04796b5af4-vdns_int_private_ip_0"},{"name":"vnf-id","value":"1bed94d9-9a12-458a-b891-7c04796b5af4"},{"name":"service-instance-id","value":"1a0fbd43-0ab6-4d67-99f4-14a890505a8d"},{"name":"prefix-id","value":"1"}],"status":"SUCCESS"}}]}
    2019-06-07 03:16:02,759|||grpc-default-executor-2||||INFO||||||| Response processing type(string)
    2019-06-07 03:16:02,760|||grpc-default-executor-2||||INFO||||||| populating value for output mapping ({vdns_int_private_ip_0=value}), from json ("192.168.20.181")
    2019-06-07 03:16:02,760|||grpc-default-executor-2||||INFO||||||| For template key (vdns_int_private_ip_0) setting value as ("192.168.20.181")
    2019-06-07 03:16:02,760|||grpc-default-executor-2||||INFO||||||| Setting Resource Value ("192.168.20.181") for Resource Name (vdns_int_private_ip_0) of type (string)
    2019-06-07 03:16:02,760|||grpc-default-executor-2||||INFO||||||| Generating Resource name (service-instance-id), type (string), value ("1a0fbd43-0ab6-4d67-99f4-14a890505a8d")
    2019-06-07 03:16:02,760|||grpc-default-executor-2||||INFO||||||| Generating Resource name (vnf-id), type (string), value ("1bed94d9-9a12-458a-b891-7c04796b5af4")
    2019-06-07 03:16:02,760|||grpc-default-executor-2||||INFO||||||| Generating Resource name (vdns_int_private_ip_0), type (string), value ("192.168.20.181")
    2019-06-07 03:16:02,760|||grpc-default-executor-2||||INFO||||||| Generating Resource name (vdns_onap_private_ip_0), type (string), value ("10.0.101.187")
    2019-06-07 03:16:02,760|||grpc-default-executor-2||||INFO||||||| Generated Resource Param Data ({
      "service-instance-id" : "1a0fbd43-0ab6-4d67-99f4-14a890505a8d",
      "vnf-id" : "1bed94d9-9a12-458a-b891-7c04796b5af4",
      "vdns_int_private_ip_0" : "192.168.20.181",
      "vdns_onap_private_ip_0" : "10.0.101.187"
    })
    2019-06-07 03:16:02,782|||grpc-default-executor-2||||INFO||||||| resolution saved into database successfully : ({resolution-key=fr2_ONAP-NF_20190607T031522008Z, store-result=true})
    2019-06-07 03:16:02,783|||grpc-default-executor-2||||INFO||||||| Resolving resource for template artifact(incremental-config-template) with resource assignment artifact(incremental-config-mapping)
    2019-06-07 03:16:02,805|||grpc-default-executor-2||||INFO||||||| Assignments ([[name=service-instance-id, dictionaryName=service-instance-id, dictionarySource=input], [name=vnf-id, dictionaryName=vnf-id, dictionarySource=input], [name=vdns_int_private_ip_0, dictionaryName=vdns_int_private_ip_0, dictionarySource=primary-config-data], [name=vdns_onap_private_ip_0, dictionaryName=vdns_onap_private_ip_0, dictionarySource=primary-config-data]])
    2019-06-07 03:16:02,805|||grpc-default-executor-2||||INFO||||||| Sorted Sequenced Assignments ([[name=*, dictionaryName=null, dictionarySource=null], [name=service-instance-id, dictionaryName=service-instance-id, dictionarySource=input], [name=vnf-id, dictionaryName=vnf-id, dictionarySource=input], [name=vdns_onap_private_ip_0, dictionaryName=vdns_onap_private_ip_0, dictionarySource=primary-config-data], [name=vdns_int_private_ip_0, dictionaryName=vdns_int_private_ip_0, dictionarySource=primary-config-data]])
    2019-06-07 03:16:02,805|||grpc-default-executor-2||||INFO||||||| Batched Sequence : ([[[name=*, dictionaryName=null, dictionarySource=null]], [[name=service-instance-id, dictionaryName=service-instance-id, dictionarySource=input], [name=vnf-id, dictionaryName=vnf-id, dictionarySource=input]], [[name=vdns_onap_private_ip_0, dictionaryName=vdns_onap_private_ip_0, dictionarySource=primary-config-data], [name=vdns_int_private_ip_0, dictionaryName=vdns_int_private_ip_0, dictionarySource=primary-config-data]]])
    2019-06-07 03:16:02,806|||grpc-default-executor-2||||INFO||||||| input source template key (service-instance-id) found from input and value is ("1a0fbd43-0ab6-4d67-99f4-14a890505a8d")
    2019-06-07 03:16:02,806|||grpc-default-executor-2||||INFO||||||| Setting Resource Value ("1a0fbd43-0ab6-4d67-99f4-14a890505a8d") for Resource Name (service-instance-id) of type (string)
    2019-06-07 03:16:02,806|||grpc-default-executor-2||||INFO||||||| input source template key (vnf-id) found from input and value is ("1bed94d9-9a12-458a-b891-7c04796b5af4")
    2019-06-07 03:16:02,807|||grpc-default-executor-2||||INFO||||||| Setting Resource Value ("1bed94d9-9a12-458a-b891-7c04796b5af4") for Resource Name (vnf-id) of type (string)
    2019-06-07 03:16:02,807|||grpc-default-executor-2||||INFO||||||| Setting Resource Value () for Resource Name (vdns_onap_private_ip_0) of type (string)
    2019-06-07 03:16:02,807|||grpc-default-executor-2||||INFO||||||| dName: vdns_onap_private_ip_0
    2019-06-07 03:16:02,807|||grpc-default-executor-2||||INFO||||||| dSource: primary-config-data
    2019-06-07 03:16:02,807|||grpc-default-executor-2||||INFO||||||| resourceDefinition: org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceDefinition@6f4ef7d3
    2019-06-07 03:16:02,807|||grpc-default-executor-2||||INFO||||||| resourceSource: org.onap.ccsdk.cds.controllerblueprints.core.data.NodeTemplate@5f62c18
    2019-06-07 03:16:02,807|||grpc-default-executor-2||||INFO||||||| resourceSourceProperties: {verb="GET", type="JSON", url-path="/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_onap_private_ip_0", path="/param/0/value", input-key-mapping={"service-instance-id":"service-instance-id","vnf-id":"vnf-id"}, output-key-mapping={"vdns_onap_private_ip_0":"value"}, key-dependencies=["service-instance-id","vnf-id"]}
    2019-06-07 03:16:02,808|||grpc-default-executor-2||||INFO||||||| sourceProperties: org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.RestResourceSource@7efa8a5e
    2019-06-07 03:16:02,808|||grpc-default-executor-2||||INFO||||||| path: /param/0/value
    2019-06-07 03:16:02,808|||grpc-default-executor-2||||INFO||||||| inputKeyMapping: {service-instance-id=service-instance-id, vnf-id=vnf-id}
    2019-06-07 03:16:02,808|||grpc-default-executor-2||||INFO||||||| resolvedInputKeyMapping: {vnf-id=1bed94d9-9a12-458a-b891-7c04796b5af4, service-instance-id=1a0fbd43-0ab6-4d67-99f4-14a890505a8d}
    2019-06-07 03:16:02,808|||grpc-default-executor-2||||INFO||||||| payload: 
    2019-06-07 03:16:02,808|||grpc-default-executor-2||||INFO||||||| urlPath: /restconf/config/GENERIC-RESOURCE-API:services/service/1a0fbd43-0ab6-4d67-99f4-14a890505a8d/service-data/vnfs/vnf/1bed94d9-9a12-458a-b891-7c04796b5af4/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_onap_private_ip_0
    2019-06-07 03:16:02,808|||grpc-default-executor-2||||INFO||||||| verb: GET
    2019-06-07 03:16:02,808|||grpc-default-executor-2||||INFO||||||| primary-config-data dictionary information : (/restconf/config/GENERIC-RESOURCE-API:services/service/1a0fbd43-0ab6-4d67-99f4-14a890505a8d/service-data/vnfs/vnf/1bed94d9-9a12-458a-b891-7c04796b5af4/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_onap_private_ip_0), ({service-instance-id=service-instance-id, vnf-id=vnf-id}), ({vdns_onap_private_ip_0=value})
    2019-06-07 03:16:02,808|||grpc-default-executor-2||||INFO||||||| prefix: blueprintsprocessor.restclient.primary-config-data
    2019-06-07 03:16:02,809|||grpc-default-executor-2||||INFO||||||| type: basic-auth
    2019-06-07 03:16:02,814|||grpc-default-executor-2||||INFO||||||| Rest request method(GET), url(/restconf/config/GENERIC-RESOURCE-API:services/service/1a0fbd43-0ab6-4d67-99f4-14a890505a8d/service-data/vnfs/vnf/1bed94d9-9a12-458a-b891-7c04796b5af4/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_onap_private_ip_0)
    2019-06-07 03:16:02,819|||grpc-default-executor-2||||INFO||||||| Response status(200 - OK)
    2019-06-07 03:16:02,820|||grpc-default-executor-2||||INFO||||||| response: WebClientResponse(status=200, body={"param":[{"name":"vdns_onap_private_ip_0","value":"10.0.101.187","resource-resolution-data":{"capability-name":"netbox-ip-assign","resource-key":[{"name":"external_key","value":"1bed94d9-9a12-458a-b891-7c04796b5af4-vdns_onap_private_ip_0"},{"name":"vnf-id","value":"1bed94d9-9a12-458a-b891-7c04796b5af4"},{"name":"service-instance-id","value":"1a0fbd43-0ab6-4d67-99f4-14a890505a8d"},{"name":"prefix-id","value":"3"}],"status":"SUCCESS"}}]})
    2019-06-07 03:16:02,820|||grpc-default-executor-2||||INFO||||||| responseStatusCode: 200
    2019-06-07 03:16:02,820|||grpc-default-executor-2||||INFO||||||| responseBody: {"param":[{"name":"vdns_onap_private_ip_0","value":"10.0.101.187","resource-resolution-data":{"capability-name":"netbox-ip-assign","resource-key":[{"name":"external_key","value":"1bed94d9-9a12-458a-b891-7c04796b5af4-vdns_onap_private_ip_0"},{"name":"vnf-id","value":"1bed94d9-9a12-458a-b891-7c04796b5af4"},{"name":"service-instance-id","value":"1a0fbd43-0ab6-4d67-99f4-14a890505a8d"},{"name":"prefix-id","value":"3"}],"status":"SUCCESS"}}]}
    2019-06-07 03:16:02,820|||grpc-default-executor-2||||INFO||||||| Response processing type(string)
    2019-06-07 03:16:02,820|||grpc-default-executor-2||||INFO||||||| populating value for output mapping ({vdns_onap_private_ip_0=value}), from json ("10.0.101.187")
    2019-06-07 03:16:02,820|||grpc-default-executor-2||||INFO||||||| For template key (vdns_onap_private_ip_0) setting value as ("10.0.101.187")
    2019-06-07 03:16:02,820|||grpc-default-executor-2||||INFO||||||| Setting Resource Value ("10.0.101.187") for Resource Name (vdns_onap_private_ip_0) of type (string)
    2019-06-07 03:16:02,821|||grpc-default-executor-2||||INFO||||||| Setting Resource Value () for Resource Name (vdns_int_private_ip_0) of type (string)
    2019-06-07 03:16:02,821|||grpc-default-executor-2||||INFO||||||| dName: vdns_int_private_ip_0
    2019-06-07 03:16:02,821|||grpc-default-executor-2||||INFO||||||| dSource: primary-config-data
    2019-06-07 03:16:02,821|||grpc-default-executor-2||||INFO||||||| resourceDefinition: org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceDefinition@70589c4c
    2019-06-07 03:16:02,821|||grpc-default-executor-2||||INFO||||||| resourceSource: org.onap.ccsdk.cds.controllerblueprints.core.data.NodeTemplate@447af8b3
    2019-06-07 03:16:02,821|||grpc-default-executor-2||||INFO||||||| resourceSourceProperties: {verb="GET", type="JSON", url-path="/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_int_private_ip_0", path="/param/0/value", input-key-mapping={"service-instance-id":"service-instance-id","vnf-id":"vnf-id"}, output-key-mapping={"vdns_int_private_ip_0":"value"}, key-dependencies=["service-instance-id","vnf-id"]}
    2019-06-07 03:16:02,822|||grpc-default-executor-2||||INFO||||||| sourceProperties: org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.RestResourceSource@6e782218
    2019-06-07 03:16:02,822|||grpc-default-executor-2||||INFO||||||| path: /param/0/value
    2019-06-07 03:16:02,822|||grpc-default-executor-2||||INFO||||||| inputKeyMapping: {service-instance-id=service-instance-id, vnf-id=vnf-id}
    2019-06-07 03:16:02,822|||grpc-default-executor-2||||INFO||||||| resolvedInputKeyMapping: {vnf-id=1bed94d9-9a12-458a-b891-7c04796b5af4, service-instance-id=1a0fbd43-0ab6-4d67-99f4-14a890505a8d}
    2019-06-07 03:16:02,822|||grpc-default-executor-2||||INFO||||||| payload: 
    2019-06-07 03:16:02,822|||grpc-default-executor-2||||INFO||||||| urlPath: /restconf/config/GENERIC-RESOURCE-API:services/service/1a0fbd43-0ab6-4d67-99f4-14a890505a8d/service-data/vnfs/vnf/1bed94d9-9a12-458a-b891-7c04796b5af4/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_int_private_ip_0
    2019-06-07 03:16:02,822|||grpc-default-executor-2||||INFO||||||| verb: GET
    2019-06-07 03:16:02,822|||grpc-default-executor-2||||INFO||||||| primary-config-data dictionary information : (/restconf/config/GENERIC-RESOURCE-API:services/service/1a0fbd43-0ab6-4d67-99f4-14a890505a8d/service-data/vnfs/vnf/1bed94d9-9a12-458a-b891-7c04796b5af4/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_int_private_ip_0), ({service-instance-id=service-instance-id, vnf-id=vnf-id}), ({vdns_int_private_ip_0=value})
    2019-06-07 03:16:02,822|||grpc-default-executor-2||||INFO||||||| prefix: blueprintsprocessor.restclient.primary-config-data
    2019-06-07 03:16:02,823|||grpc-default-executor-2||||INFO||||||| type: basic-auth
    2019-06-07 03:16:02,828|||grpc-default-executor-2||||INFO||||||| Rest request method(GET), url(/restconf/config/GENERIC-RESOURCE-API:services/service/1a0fbd43-0ab6-4d67-99f4-14a890505a8d/service-data/vnfs/vnf/1bed94d9-9a12-458a-b891-7c04796b5af4/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_int_private_ip_0)
    2019-06-07 03:16:02,832|||grpc-default-executor-2||||INFO||||||| Response status(200 - OK)
    2019-06-07 03:16:02,833|||grpc-default-executor-2||||INFO||||||| response: WebClientResponse(status=200, body={"param":[{"name":"vdns_int_private_ip_0","value":"192.168.20.181","resource-resolution-data":{"capability-name":"netbox-ip-assign","resource-key":[{"name":"external_key","value":"1bed94d9-9a12-458a-b891-7c04796b5af4-vdns_int_private_ip_0"},{"name":"vnf-id","value":"1bed94d9-9a12-458a-b891-7c04796b5af4"},{"name":"service-instance-id","value":"1a0fbd43-0ab6-4d67-99f4-14a890505a8d"},{"name":"prefix-id","value":"1"}],"status":"SUCCESS"}}]})
    2019-06-07 03:16:02,833|||grpc-default-executor-2||||INFO||||||| responseStatusCode: 200
    2019-06-07 03:16:02,833|||grpc-default-executor-2||||INFO||||||| responseBody: {"param":[{"name":"vdns_int_private_ip_0","value":"192.168.20.181","resource-resolution-data":{"capability-name":"netbox-ip-assign","resource-key":[{"name":"external_key","value":"1bed94d9-9a12-458a-b891-7c04796b5af4-vdns_int_private_ip_0"},{"name":"vnf-id","value":"1bed94d9-9a12-458a-b891-7c04796b5af4"},{"name":"service-instance-id","value":"1a0fbd43-0ab6-4d67-99f4-14a890505a8d"},{"name":"prefix-id","value":"1"}],"status":"SUCCESS"}}]}
    2019-06-07 03:16:02,833|||grpc-default-executor-2||||INFO||||||| Response processing type(string)
    2019-06-07 03:16:02,833|||grpc-default-executor-2||||INFO||||||| populating value for output mapping ({vdns_int_private_ip_0=value}), from json ("192.168.20.181")
    2019-06-07 03:16:02,833|||grpc-default-executor-2||||INFO||||||| For template key (vdns_int_private_ip_0) setting value as ("192.168.20.181")
    2019-06-07 03:16:02,833|||grpc-default-executor-2||||INFO||||||| Setting Resource Value ("192.168.20.181") for Resource Name (vdns_int_private_ip_0) of type (string)
    2019-06-07 03:16:02,833|||grpc-default-executor-2||||INFO||||||| Generating Resource name (service-instance-id), type (string), value ("1a0fbd43-0ab6-4d67-99f4-14a890505a8d")
    2019-06-07 03:16:02,833|||grpc-default-executor-2||||INFO||||||| Generating Resource name (vnf-id), type (string), value ("1bed94d9-9a12-458a-b891-7c04796b5af4")
    2019-06-07 03:16:02,834|||grpc-default-executor-2||||INFO||||||| Generating Resource name (vdns_int_private_ip_0), type (string), value ("192.168.20.181")
    2019-06-07 03:16:02,834|||grpc-default-executor-2||||INFO||||||| Generating Resource name (vdns_onap_private_ip_0), type (string), value ("10.0.101.187")
    2019-06-07 03:16:02,834|||grpc-default-executor-2||||INFO||||||| Generated Resource Param Data ({
      "service-instance-id" : "1a0fbd43-0ab6-4d67-99f4-14a890505a8d",
      "vnf-id" : "1bed94d9-9a12-458a-b891-7c04796b5af4",
      "vdns_int_private_ip_0" : "192.168.20.181",
      "vdns_onap_private_ip_0" : "10.0.101.187"
    })
    2019-06-07 03:16:02,919|||grpc-default-executor-2||||INFO||||||| resolution saved into database successfully : ({resolution-key=fr2_ONAP-NF_20190607T031522008Z, store-result=true})
    2019-06-07 03:16:02,920|||grpc-default-executor-2||||INFO||||||| Preparing Response...
    2019-06-07 03:16:02,920|||grpc-default-executor-2||||INFO||||||| resolveNodeTemplateInterfaceOperationOutputs for node template (config-assign),interface name (ResourceResolutionComponent), operationName(process)
    2019-06-07 03:16:02,920|||grpc-default-executor-2||||INFO||||||| resolveWorkflowOutputs for workflow(config-assign)
    2019-06-07 03:16:02,924|||grpc-default-executor-2||||INFO||||||| Completed
    
    


    Below we can the configlets that were pushed to the CDS DB:

    Configlets pushed into CDS DB
    SELECT * FROM sdnctl.RESOURCE_RESOLUTION_RESULT where resolution_key="fr2_ONAP-NF_20190607T031522008Z";
    
    +--------------------------------------+--------------------+----------------+-------------------+---------------------+---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | resource_resolution_result_id        | artifact_name      | blueprint_name | blueprint_version | creation_date       | resolution_key                  | result                                                                                                                                                                         |
    +--------------------------------------+--------------------+----------------+-------------------+---------------------+---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | 15ba611c-62f9-4701-aa5f-c7e698a96a3a | incremental-config | test           | 1.0.0             | 2019-06-07 03:16:02 | fr2_ONAP-NF_20190607T031522008Z | {
        "vdns-instance": [
            {
                "ip-addr": "192.168.20.181",
                "oam-ip-addr": "10.0.101.187",
                "enabled": true
            }
        ]
    }   |
    | 40d33748-a61a-421a-80ac-ca3fee8c4996 | baseconfig         | test           | 1.0.0             | 2019-06-07 03:16:02 | fr2_ONAP-NF_20190607T031522008Z |      {
        "vdns-instance": [
            {
                "ip-addr": "192.168.20.181",
                "oam-ip-addr": "10.0.101.187",
                "enabled": false
            }
        ]
    } |
    +--------------------------------------+--------------------+----------------+-------------------+---------------------+---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    2 rows in set (0.00 sec)


    SO ConfigDeployBB

    In this BB, the config generated by ConfigAssign from teh CDS DB, and push the config to the network element.

    This happens via a python script that uses netconf library to connect to the vLB and deploys the baseconfig and the incremental config on the vLB via Netconf.

    Below the logs generated by Blueprint Processor for ConfigDeply, we can Netconf session initiated OK with the vLB:

    UPDATE: This is an updated version of the logs, after we added a DG that will perform 2 steps. Node #1 below resolves the IP address of the vLB, and Node #2 runs the python script that connects via NETCONF to the vLB and deploys the configuation:

    ConfigDeploy logs from Blueprint Processor
    2019-06-14 12:52:41,731|||DefaultDispatcher-worker-8||||INFO||||||| processing request id 131c9716-ecb7-4a14-836c-bbe477b08e03
    2019-06-14 12:52:41,732|||DefaultDispatcher-worker-8||||INFO||||||| cba file name(test), version(1.0.0) already present(/opt/app/onap/blueprints/deploy/test/1.0.0)
    2019-06-14 12:52:41,732|||DefaultDispatcher-worker-8||||INFO||||||| blueprint base path /opt/app/onap/blueprints/deploy/test/1.0.0
    2019-06-14 12:52:41,741|||grpc-default-executor-3||||INFO||||||| Completed
    2019-06-14 12:52:41,743|||DefaultDispatcher-worker-8||||INFO||||||| Reading blueprint path(/opt/app/onap/blueprints/deploy/test/1.0.0) and entry definition file (Definitions/vDNS-CDS.json)
    2019-06-14 12:52:41,756|||DefaultDispatcher-worker-8||||INFO||||||| assign workflow config-deploy input value ({"resolution-key":"fr2_ONAP-NF_20190614T124101743Z","config-deploy-properties":{"service-instance-id":"b3c59dca-be5a-4971-8247-2f19f8943d5c","vnf-id":"225a8a37-341a-423c-97c2-eb5a7f05d719","vnf-name":"fr2_ONAP-NF_20190614T124101743Z","service-model-uuid":"13d2da89-6da3-41a3-b970-ae14b697aa7d","vnf-customization-uuid":"7dec0cfb-593c-49f8-8640-c7b52922d5de"}})
    2019-06-14 12:52:41,756|||DefaultDispatcher-worker-8||||INFO||||||| Executing workflow(config-deploy) NodeTemplate(config-deploy-process), derived from(tosca.nodes.Workflow)
    2019-06-14 12:52:41,756|||DefaultDispatcher-worker-8||||INFO||||||| Executing workflow(config-deploy) directed graph NodeTemplate(config-deploy-process)
    2019-06-14 12:52:41,756|||DefaultDispatcher-worker-8||||INFO||||||| Executing directed graph (/opt/app/onap/blueprints/deploy/test/1.0.0/Plans/CONFIG_ConfigDeploy.xml)
    2019-06-14 12:52:41,896|||DefaultDispatcher-worker-8||||INFO||||||| Schema path file:/opt/app/onap/lib/org.onap.ccsdk.sli.core-sli-common-0.4.3.jar!/svclogic.xsd
    2019-06-14 12:52:41,900|||DefaultDispatcher-worker-8||||INFO||||||| About to execute graph SvcLogicGraph [module=CONFIG, rpc=ConfigDeploy, mode=sync, version=1.0.0, md5sum=50f987c5e9bcbcd4d3dfc1dee2f173ea]
    2019-06-14 12:52:41,900|||DefaultDispatcher-worker-8||||INFO||||||| About to execute node # 1 (block)
    2019-06-14 12:52:41,900|||DefaultDispatcher-worker-8||||INFO||||||| executing node template(nf-account-collection) component(component-resource-resolution) interface(ResourceResolutionComponent) operation(process)
    2019-06-14 12:52:41,901|||DefaultDispatcher-worker-8||||INFO||||||| preparing request id(131c9716-ecb7-4a14-836c-bbe477b08e03) for workflow(config-deploy) step(nf-account-collection)
    2019-06-14 12:52:41,901|||DefaultDispatcher-worker-8||||INFO||||||| resolveNodeTemplateInterfaceOperationInputs for node template (nf-account-collection),interface name (ResourceResolutionComponent), operationName(process)
    2019-06-14 12:52:41,901|||DefaultDispatcher-worker-8||||INFO||||||| input definition for node template (nf-account-collection), values ({artifact-prefix-names=["nf-params"]})
    2019-06-14 12:52:41,901|||DefaultDispatcher-worker-8||||INFO||||||| Resolving resource for template artifact(nf-params-template) with resource assignment artifact(nf-params-mapping)
    2019-06-14 12:52:41,945|||DefaultDispatcher-worker-8||||INFO||||||| Assignments ([[name=service-instance-id, dictionaryName=service-instance-id, dictionarySource=input], [name=vnf-id, dictionaryName=vnf-id, dictionarySource=input], [name=ip, dictionaryName=vlb_onap_private_ip_0, dictionarySource=primary-config-data]])
    2019-06-14 12:52:41,945|||DefaultDispatcher-worker-8||||INFO||||||| Sorted Sequenced Assignments ([[name=*, dictionaryName=null, dictionarySource=null], [name=service-instance-id, dictionaryName=service-instance-id, dictionarySource=input], [name=vnf-id, dictionaryName=vnf-id, dictionarySource=input], [name=ip, dictionaryName=vlb_onap_private_ip_0, dictionarySource=primary-config-data]])
    2019-06-14 12:52:41,945|||DefaultDispatcher-worker-8||||INFO||||||| Batched Sequence : ([[[name=*, dictionaryName=null, dictionarySource=null]], [[name=service-instance-id, dictionaryName=service-instance-id, dictionarySource=input], [name=vnf-id, dictionaryName=vnf-id, dictionarySource=input]], [[name=ip, dictionaryName=vlb_onap_private_ip_0, dictionarySource=primary-config-data]]])
    2019-06-14 12:52:41,945|||DefaultDispatcher-worker-8||||INFO||||||| input source template key (service-instance-id) found from input and value is ("b3c59dca-be5a-4971-8247-2f19f8943d5c")
    2019-06-14 12:52:41,945|||DefaultDispatcher-worker-8||||INFO||||||| Setting Resource Value ("b3c59dca-be5a-4971-8247-2f19f8943d5c") for Resource Name (service-instance-id) of type (string)
    2019-06-14 12:52:41,946|||DefaultDispatcher-worker-8||||INFO||||||| input source template key (vnf-id) found from input and value is ("225a8a37-341a-423c-97c2-eb5a7f05d719")
    2019-06-14 12:52:41,946|||DefaultDispatcher-worker-8||||INFO||||||| Setting Resource Value ("225a8a37-341a-423c-97c2-eb5a7f05d719") for Resource Name (vnf-id) of type (string)
    2019-06-14 12:52:41,946|||DefaultDispatcher-worker-8||||INFO||||||| dName: vlb_onap_private_ip_0
    2019-06-14 12:52:41,946|||DefaultDispatcher-worker-8||||INFO||||||| dSource: primary-config-data
    2019-06-14 12:52:41,946|||DefaultDispatcher-worker-8||||INFO||||||| resourceDefinition: org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceDefinition@18aaa0e0
    2019-06-14 12:52:41,946|||DefaultDispatcher-worker-8||||INFO||||||| resourceSource: org.onap.ccsdk.cds.controllerblueprints.core.data.NodeTemplate@1240b3ef
    2019-06-14 12:52:41,946|||DefaultDispatcher-worker-8||||INFO||||||| resourceSourceProperties: {verb="GET", type="JSON", url-path="/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_onap_private_ip_0", path="/param/0/value", input-key-mapping={"service-instance-id":"service-instance-id","vnf-id":"vnf-id"}, output-key-mapping={"vlb_onap_private_ip_0":"value"}, key-dependencies=["service-instance-id","vnf-id"]}
    2019-06-14 12:52:41,946|||DefaultDispatcher-worker-8||||INFO||||||| sourceProperties: org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.RestResourceSource@681ba719
    2019-06-14 12:52:41,946|||DefaultDispatcher-worker-8||||INFO||||||| path: /param/0/value
    2019-06-14 12:52:41,946|||DefaultDispatcher-worker-8||||INFO||||||| inputKeyMapping: {service-instance-id=service-instance-id, vnf-id=vnf-id}
    2019-06-14 12:52:41,946|||DefaultDispatcher-worker-8||||INFO||||||| resolvedInputKeyMapping: {vnf-id=225a8a37-341a-423c-97c2-eb5a7f05d719, service-instance-id=b3c59dca-be5a-4971-8247-2f19f8943d5c}
    2019-06-14 12:52:41,946|||DefaultDispatcher-worker-8||||INFO||||||| payload: 
    2019-06-14 12:52:41,947|||DefaultDispatcher-worker-8||||INFO||||||| urlPath: /restconf/config/GENERIC-RESOURCE-API:services/service/b3c59dca-be5a-4971-8247-2f19f8943d5c/service-data/vnfs/vnf/225a8a37-341a-423c-97c2-eb5a7f05d719/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_onap_private_ip_0
    2019-06-14 12:52:41,947|||DefaultDispatcher-worker-8||||INFO||||||| verb: GET
    2019-06-14 12:52:41,947|||DefaultDispatcher-worker-8||||INFO||||||| primary-config-data dictionary information : (/restconf/config/GENERIC-RESOURCE-API:services/service/b3c59dca-be5a-4971-8247-2f19f8943d5c/service-data/vnfs/vnf/225a8a37-341a-423c-97c2-eb5a7f05d719/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_onap_private_ip_0), ({service-instance-id=service-instance-id, vnf-id=vnf-id}), ({vlb_onap_private_ip_0=value})
    2019-06-14 12:52:41,947|||DefaultDispatcher-worker-8||||INFO||||||| prefix: blueprintsprocessor.restclient.primary-config-data
    2019-06-14 12:52:41,947|||DefaultDispatcher-worker-8||||INFO||||||| type: basic-auth
    2019-06-14 12:52:41,952|||DefaultDispatcher-worker-8||||INFO||||||| Rest request method(GET), url(/restconf/config/GENERIC-RESOURCE-API:services/service/b3c59dca-be5a-4971-8247-2f19f8943d5c/service-data/vnfs/vnf/225a8a37-341a-423c-97c2-eb5a7f05d719/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_onap_private_ip_0)
    2019-06-14 12:52:41,957|||DefaultDispatcher-worker-8||||INFO||||||| Response status(200 - OK)
    2019-06-14 12:52:41,958|||DefaultDispatcher-worker-8||||INFO||||||| response: WebClientResponse(status=200, body={"param":[{"name":"vlb_onap_private_ip_0","value":"10.0.101.65","resource-resolution-data":{"capability-name":"netbox-ip-assign","status":"SUCCESS","resource-key":[{"name":"external_key","value":"225a8a37-341a-423c-97c2-eb5a7f05d719-vlb_onap_private_ip_0"},{"name":"vnf-id","value":"225a8a37-341a-423c-97c2-eb5a7f05d719"},{"name":"service-instance-id","value":"b3c59dca-be5a-4971-8247-2f19f8943d5c"},{"name":"prefix-id","value":"3"}]}}]})
    2019-06-14 12:52:41,958|||DefaultDispatcher-worker-8||||INFO||||||| responseStatusCode: 200
    2019-06-14 12:52:41,958|||DefaultDispatcher-worker-8||||INFO||||||| responseBody: {"param":[{"name":"vlb_onap_private_ip_0","value":"10.0.101.65","resource-resolution-data":{"capability-name":"netbox-ip-assign","status":"SUCCESS","resource-key":[{"name":"external_key","value":"225a8a37-341a-423c-97c2-eb5a7f05d719-vlb_onap_private_ip_0"},{"name":"vnf-id","value":"225a8a37-341a-423c-97c2-eb5a7f05d719"},{"name":"service-instance-id","value":"b3c59dca-be5a-4971-8247-2f19f8943d5c"},{"name":"prefix-id","value":"3"}]}}]}
    2019-06-14 12:52:41,958|||DefaultDispatcher-worker-8||||INFO||||||| Response processing type(string)
    2019-06-14 12:52:41,958|||DefaultDispatcher-worker-8||||INFO||||||| populating value for output mapping ({vlb_onap_private_ip_0=value}), from json ("10.0.101.65")
    2019-06-14 12:52:41,958|||DefaultDispatcher-worker-8||||INFO||||||| For template key (ip) setting value as ("10.0.101.65")
    2019-06-14 12:52:41,958|||DefaultDispatcher-worker-8||||INFO||||||| Setting Resource Value ("10.0.101.65") for Resource Name (vlb_onap_private_ip_0) of type (string)
    2019-06-14 12:52:41,958|||DefaultDispatcher-worker-8||||INFO||||||| Generating Resource name (service-instance-id), type (string), value ("b3c59dca-be5a-4971-8247-2f19f8943d5c")
    2019-06-14 12:52:41,958|||DefaultDispatcher-worker-8||||INFO||||||| Generating Resource name (vnf-id), type (string), value ("225a8a37-341a-423c-97c2-eb5a7f05d719")
    2019-06-14 12:52:41,958|||DefaultDispatcher-worker-8||||INFO||||||| Generating Resource name (ip), type (string), value ("10.0.101.65")
    2019-06-14 12:52:41,958|||DefaultDispatcher-worker-8||||INFO||||||| Generated Resource Param Data ({
      "service-instance-id" : "b3c59dca-be5a-4971-8247-2f19f8943d5c",
      "vnf-id" : "225a8a37-341a-423c-97c2-eb5a7f05d719",
      "ip" : "10.0.101.65"
    })
    2019-06-14 12:52:42,013|||DefaultDispatcher-worker-8||||INFO||||||| Preparing Response...
    2019-06-14 12:52:42,013|||DefaultDispatcher-worker-8||||INFO||||||| resolveNodeTemplateInterfaceOperationOutputs for node template (nf-account-collection),interface name (ResourceResolutionComponent), operationName(process)
    2019-06-14 12:52:42,013|||DefaultDispatcher-worker-8||||INFO||||||| executing node template(execute) component(component-netconf-executor) interface(ComponentNetconfExecutor) operation(process)
    2019-06-14 12:52:42,014|||DefaultDispatcher-worker-8||||INFO||||||| preparing request id(131c9716-ecb7-4a14-836c-bbe477b08e03) for workflow(config-deploy) step(execute)
    2019-06-14 12:52:42,014|||DefaultDispatcher-worker-8||||INFO||||||| resolveNodeTemplateInterfaceOperationInputs for node template (execute),interface name (ComponentNetconfExecutor), operationName(process)
    2019-06-14 12:52:42,014|||DefaultDispatcher-worker-8||||INFO||||||| input definition for node template (execute), values ({script-type="jython", script-class-reference="Scripts/python/ConfigDeploy.py", instance-dependencies=[], dynamic-properties="*config-deploy-properties"})
    2019-06-14 12:52:42,014|||DefaultDispatcher-worker-8||||INFO||||||| creating component function of script type(jython), reference name(Scripts/python/ConfigDeploy.py) and instanceDependencies([resource-resolution-service])
    2019-06-14 12:52:42,014|||DefaultDispatcher-worker-8||||INFO||||||| Getting Jython Script Class(ConfigDeploy)
    2019-06-14 12:52:42,048|||DefaultDispatcher-worker-8||||INFO||||||| Component Object org.python.proxies.__main__$ConfigDeploy$2@4549fcc8
    {'ResolutionHelper': <class common.ResolutionHelper at 0x2>, 'os': <module 'os' from '/opt/app/onap/lib/org.python-jython-standalone-2.7.1.jar/Lib/os$py.class'>, 'log': Logger[ConfigDeploy], 'netconf_constant': <module 'netconf_constant' from '/opt/app/onap/scripts/jython/ccsdk_netconf/netconf_constant.py'>, 'NetconfClient': <class netconfclient.NetconfClient at 0x3>, '__builtins__': <module '__builtin__' (built-in)>, 'sys': <module 'sys' (built-in)>, 'ConfigDeploy': org.python.proxies.__main__$ConfigDeploy$2@4549fcc8, '__package__': None, 'sleep': <java function sleep 0x6>, '__name__': '__main__', '__doc__': None, 'NetconfComponentFunction': <type 'org.onap.ccsdk.cds.blueprintsprocessor.functions.netconf.executor.NetconfComponentFunction'>}
    Waiting 10 minutes...
    2019-06-14 12:56:42,050|||DefaultDispatcher-worker-8||||INFO||||||| resolveNodeTemplateCapabilityProperties for node template(netconf-device) capability (netconf)
    2019-06-14 12:56:42,916|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: Connecting to Netconf Device with timeouts C:5, R:5, I:99999
    2019-06-14 12:56:42,917|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: Starting SSH session
    2019-06-14 12:56:42,979|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: SSH session created
    2019-06-14 12:56:44,483|||sshd-SshClient[49dab2c3]-nio2-thread-3||||WARN||||||| Server at /10.0.101.65:2831 presented unverified DSA key: SHA256:cIudj1QVStopQt45Dhrf11Abe6dghv/SQlQRjXfOtQk
    2019-06-14 12:56:44,572|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: SSH session authenticated
    2019-06-14 12:56:44,603|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: SSH NETCONF subsystem channel opened
    2019-06-14 12:56:44,610|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: Sending message: 
     <?xml version="1.0" encoding="UTF-8"?>
    <hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
      <capabilities>
        <capability>urn:ietf:params:netconf:base:1.0</capability>
        <capability>urn:ietf:params:netconf:base:1.1</capability>
      </capabilities>
    </hello>
    ]]>]]>
    2019-06-14 12:56:44,896|||Thread-25||||INFO||||||| 10.0.101.65:2831: Received message with messageId: -1  
     <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <capabilities>
    <capability>urn:ietf:params:xml:ns:yang:iana-if-type?module=iana-if-type&revision=2014-05-08</capability>
    <capability>urn:ietf:params:xml:ns:yang:ietf-interfaces?module=ietf-interfaces&revision=2014-05-08</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl?module=opendaylight-sal-binding-broker-impl&revision=2013-10-28</capability>
    <capability>urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring?module=ietf-netconf-monitoring&revision=2010-10-04</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:config:legacy-entity-ownership-service-provider?module=opendaylight-legacy-entity-ownership-service-provider&revision=2016-02-26</capability>
    <capability>urn:ietf:params:xml:ns:yang:ietf-inet-types?module=ietf-inet-types&revision=2010-09-24</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:netconf:northbound:notification?module=netconf-northbound-notification&revision=2015-08-06</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:config:netconf:northbound:impl?module=netconf-northbound-impl&revision=2015-01-12</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:netconf:northbound:notification:impl?module=netconf-northbound-notification-impl&revision=2015-08-07</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding?module=opendaylight-md-sal-binding&revision=2013-10-28</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:v1:codec?module=opendaylight-md-sal-binding-v1-codec&revision=2016-07-14</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:general-entity?module=general-entity&revision=2015-08-20</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom?module=opendaylight-md-sal-dom&revision=2013-10-28</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote?module=sal-remote&revision=2014-01-14</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:md:sal:config:impl:cluster-singleton-service?module=cluster-singleton-service-impl&revision=2016-07-18</capability>
    <capability>urn:opendaylight:yang:extension:yang-ext?module=yang-ext&revision=2013-07-09</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:rest:connector?module=opendaylight-rest-connector&revision=2014-07-24</capability>
    <capability>urn:ietf:params:xml:ns:yang:rpc-context?module=rpc-context&revision=2013-06-17</capability>
    <capability>urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?module=ietf-netconf-notifications&revision=2012-02-06</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:config:netconf:auth?module=netconf-auth&revision=2015-07-15</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:operational-dom-store?module=opendaylight-operational-dom-datastore&revision=2014-06-17</capability>
    <capability>urn:ietf:params:netconf:capability:exi:1.0</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:netconf:north:mapper?module=netconf-northbound-mapper&revision=2015-01-14</capability>
    <capability>urn:ietf:params:xml:ns:netconf:base:1.0?module=ietf-netconf&revision=2011-06-01</capability>
    <capability>urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring?module=ietf-restconf-monitoring&revision=2017-01-26</capability>
    <capability>urn:TBD:params:xml:ns:yang:network-topology?module=network-topology&revision=2013-10-21</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:vlb-business-vnf-onap-plugin?module=vlb-business-vnf-onap-plugin&revision=2016-09-18</capability>
    <capability>urn:ietf:params:xml:ns:yang:ietf-yang-types?module=ietf-yang-types&revision=2013-07-15</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:netconf:northbound:ssh?module=netconf-northbound-ssh&revision=2015-01-14</capability>
    <capability>urn:TBD:params:xml:ns:yang:network-topology?module=network-topology&revision=2013-07-12</capability>
    <capability>urn:ietf:params:netconf:capability:candidate:1.0</capability>
    <capability>urn:ietf:params:xml:ns:yang:ietf-restconf?module=ietf-restconf&revision=2013-10-19</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:entity-ownership-service?module=opendaylight-entity-ownership-service&revision=2015-08-10</capability>
    <capability>urn:sal:restconf:event:subscription?module=sal-remote-augment&revision=2014-07-08</capability>
    <capability>instance:identifier:patch:module?module=instance-identifier-patch-module&revision=2015-11-21</capability>
    <capability>subscribe:to:notification?module=subscribe-to-notification&revision=2016-10-28</capability>
    <capability>urn:ietf:params:xml:ns:yang:ietf-restconf?module=ietf-restconf&revision=2017-01-26</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:netconf:northbound:tcp?module=netconf-northbound-tcp&revision=2015-04-23</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:netconf:mdsal:mapper?module=netconf-mdsal-mapper&revision=2015-01-14</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:md:sal:config:spi:cluster-singleton-service?module=cluster-singleton-service-spi&revision=2016-07-18</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:common?module=opendaylight-md-sal-common&revision=2013-10-28</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:sal:restconf:service?module=sal-restconf-service&revision=2015-07-08</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:health-vnf-onap-plugin?module=health-vnf-onap-plugin&revision=2016-09-18</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:inmemory-datastore-provider?module=opendaylight-inmemory-datastore-provider&revision=2014-06-17</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:config?module=config&revision=2013-04-05</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:netconf:mdsal:notification?module=netconf-mdsal-notification&revision=2015-08-03</capability>
    <capability>urn:ietf:params:xml:ns:netconf:notification:1.0?module=notifications&revision=2008-07-14</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:netconf:mdsal:monitoring?module=netconf-mdsal-monitoring&revision=2015-02-18</capability>
    <capability>urn:ietf:params:xml:ns:netmod:notification?module=nc-notifications&revision=2008-07-14</capability>
    <capability>urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring-extension?module=ietf-netconf-monitoring-extension&revision=2013-12-10</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:mdsal:core:general-entity?module=odl-general-entity&revision=2015-09-30</capability>
    <capability>urn:ietf:params:netconf:base:1.1</capability>
    <capability>urn:ietf:params:netconf:base:1.0</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:config-dom-store?module=opendaylight-config-dom-datastore&revision=2014-06-17</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:config:netconf:northbound?module=netconf-northbound&revision=2015-01-14</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:netty?module=netty&revision=2013-11-19</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:threadpool?module=threadpool&revision=2013-04-09</capability>
    <capability>urn:ietf:params:xml:ns:yang:ietf-yang-library?module=ietf-yang-library&revision=2016-06-21</capability>
    <capability>urn:opendaylight:params:xml:ns:yang:controller:protocol:framework?module=protocol-framework&revision=2014-03-13</capability>
    <capability>urn:ietf:params:xml:ns:yang:ietf-inet-types?module=ietf-inet-types&revision=2013-07-15</capability>
    </capabilities>
    <session-id>1</session-id>
    </hello>
    
    2019-06-14 12:56:44,898|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: Connected to Netconf Device
    2019-06-14 12:56:44,898|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: lock: messageId(1)
    2019-06-14 12:56:44,898|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: send asyncRpc with messageId(1)
    2019-06-14 12:56:44,898|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: Sending message: 
     
    #161
    <?xml version="1.0" encoding="UTF-8"?>
    <rpc message-id="1" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <lock>
    <target>
    <candidate/>
    </target>
    </lock>
    </rpc>
    ##
    
    2019-06-14 12:56:45,129|||Thread-25||||INFO||||||| 10.0.101.65:2831: Received message with messageId: 1  
     <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1">
    <ok/>
    </rpc-reply>
    
    2019-06-14 12:56:45,131|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: discard: messageId(2)
    2019-06-14 12:56:45,131|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: send asyncRpc with messageId(2)
    2019-06-14 12:56:45,131|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: Sending message: 
     
    #133
    <?xml version="1.0" encoding="UTF-8"?>
    <rpc message-id="2" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <discard-changes/>
    </rpc>
    ##
    
    2019-06-14 12:56:45,137|||Thread-25||||INFO||||||| 10.0.101.65:2831: Received message with messageId: 2  
     <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="2">
    <ok/>
    </rpc-reply>
    
    2019-06-14 12:56:45,137|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: editConfig: messageId(3)
    2019-06-14 12:56:45,137|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: send asyncRpc with messageId(3)
    2019-06-14 12:56:45,138|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: Sending message: 
     
    #460
    <?xml version="1.0" encoding="UTF-8"?>
    <rpc message-id="3" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <edit-config>
    <target>
    <candidate/>
    </target>
    <default-operation>none</default-operation>
    <config xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
    {
        "vdns-instance": [
            {
                "ip-addr": "192.168.20.63",
                "oam-ip-addr": "10.0.101.63",
                "enabled": true
            }
        ]
    }
    </config>
    </edit-config>
    </rpc>
    ##
    
    2019-06-14 12:56:45,148|||Thread-25||||INFO||||||| 10.0.101.65:2831: Received message with messageId: 3  
     <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="3">
    <ok/>
    </rpc-reply>
    
    2019-06-14 12:56:45,150|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: editConfig: messageId(4)
    2019-06-14 12:56:45,150|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: send asyncRpc with messageId(4)
    2019-06-14 12:56:45,150|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: Sending message: 
     
    #461
    <?xml version="1.0" encoding="UTF-8"?>
    <rpc message-id="4" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <edit-config>
    <target>
    <candidate/>
    </target>
    <default-operation>none</default-operation>
    <config xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
    {
        "vdns-instance": [
            {
                "ip-addr": "192.168.20.63",
                "oam-ip-addr": "10.0.101.63",
                "enabled": false
            }
        ]
    }
    </config>
    </edit-config>
    </rpc>
    ##
    
    2019-06-14 12:56:45,154|||Thread-25||||INFO||||||| 10.0.101.65:2831: Received message with messageId: 4  
     <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="4">
    <ok/>
    </rpc-reply>
    
    2019-06-14 12:56:45,154|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: send asyncRpc with messageId(5)
    2019-06-14 12:56:45,154|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: Sending message: 
     
    #169
    <?xml version="1.0" encoding="UTF-8"?>
    <rpc message-id="5" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <validate>
    <source>
    <candidate/>
    </source>
    </validate>
    </rpc>
    ##
    
    2019-06-14 12:56:45,243|||Thread-25||||INFO||||||| 10.0.101.65:2831: Received message with messageId: 5  
     <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <rpc-reply message-id="5" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <rpc-error>
    <error-type>application</error-type>
    <error-tag>operation-failed</error-tag>
    <error-severity>error</error-severity>
    <error-message>RPC failed</error-message>
    <error-info>
    <operation_failed>Exception thrown</operation_failed>
    </error-info>
    </rpc-error>
    </rpc-reply>
    
    2019-06-14 12:56:45,244|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: commit: messageId(6)
    2019-06-14 12:56:45,244|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: send asyncRpc with messageId(6)
    2019-06-14 12:56:45,244|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: Sending message: 
     
    #133
    <?xml version="1.0" encoding="UTF-8"?>
    <rpc message-id="6" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <commit>
    </commit>
    </rpc>
    ##
    
    2019-06-14 12:56:45,248|||Thread-25||||INFO||||||| 10.0.101.65:2831: Received message with messageId: 6  
     <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="6">
    <ok/>
    </rpc-reply>
    
    2019-06-14 12:56:45,248|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: unLock: messageId(7)
    2019-06-14 12:56:45,248|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: send asyncRpc with messageId(7)
    2019-06-14 12:56:45,248|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: Sending message: 
     
    #165
    <?xml version="1.0" encoding="UTF-8"?>
    <rpc message-id="7" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <unlock>
    <target>
    <candidate/>
    </target>
    </unlock>
    </rpc>
    ##
    
    2019-06-14 12:56:45,253|||Thread-25||||INFO||||||| 10.0.101.65:2831: Received message with messageId: 7  
     <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="7">
    <ok/>
    </rpc-reply>
    
    2019-06-14 12:56:45,253|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: closeSession: messageId(8)
    2019-06-14 12:56:45,253|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: send asyncRpc with messageId(8)
    2019-06-14 12:56:45,253|||DefaultDispatcher-worker-8||||INFO||||||| 10.0.101.65:2831: Sending message: 
     
    #131
    <?xml version="1.0" encoding="UTF-8"?>
    <rpc message-id="8" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <close-session/>
    </rpc>
    ##
    
    2019-06-14 12:56:45,261|||Thread-25||||INFO||||||| 10.0.101.65:2831: Received message with messageId: 8  
     <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="8">
    <ok/>
    </rpc-reply>
    
    2019-06-14 12:56:45,275|||DefaultDispatcher-worker-8||||INFO||||||| Preparing Response...
    2019-06-14 12:56:45,275|||DefaultDispatcher-worker-8||||INFO||||||| resolveNodeTemplateInterfaceOperationOutputs for node template (execute),interface name (ComponentNetconfExecutor), operationName(process)
    2019-06-14 12:56:45,275|||DefaultDispatcher-worker-8||||INFO||||||| resolveWorkflowOutputs for workflow(config-deploy)

    Results of the Postman Rest calls:

    Below the output of the calls shown in the video:


    Output of CDS #1 - SDC Service Catalog
    REQUEST:
    GET /sdc/v1/catalog/services 
    
    RESPONSE:
    {
        {
            "uuid": "ad40aa27-b3fe-4fc3-8755-ebb1494f5913",
            "invariantUUID": "fa3a6aa5-c77d-4b94-b300-9b7a2eb21627",
            "name": "cds-svc-99",
            "version": "1.0",
            "toscaModelURL": "/sdc/v1/catalog/services/ad40aa27-b3fe-4fc3-8755-ebb1494f5913/toscaModel",
            "category": "Network Service",
            "lifecycleState": "CERTIFIED",
            "lastUpdaterUserId": "jm0007",
            "distributionStatus": "DISTRIBUTED"
        }
    }


    Output of CDS #2 - SO Service VNFs
    REQUEST:
    GET /ecomp/mso/catalog/v2/serviceVnfs?serviceModelName=cds-svc-99
    
    RESPONSE:
    {
        "serviceVnfs": [
            {
                "modelInfo": {
                    "modelName": "cds-vnf-99",
                    "modelUuid": "a44d59b8-91b4-4692-8c29-e0088c901cc6",
                    "modelInvariantUuid": "fd41f747-122d-45b9-87fd-2a6d7d434728",
                    "modelVersion": "1.0",
                    "modelCustomizationUuid": "6409e9d9-a469-4546-a7b4-e508ecc1e77f",
                    "modelInstanceName": "cds-vnf-99 0"
                },
                "toscaNodeType": "org.openecomp.resource.vf.CdsVnf99",
                "nfFunction": null,
                "nfType": null,
                "nfRole": null,
                "nfNamingCode": null,
                "multiStageDesign": "false",
                "resourceInput": null,
                "vfModules": [
                    {
                        "modelInfo": {
                            "modelName": "CdsVnf99..base_template..module-0",
                            "modelUuid": "dd43a4cb-2123-4213-a76a-38638507eb7f",
                            "modelInvariantUuid": "a22c3514-028e-4ed9-9bd8-9dda79d35278",
                            "modelVersion": "1",
                            "modelCustomizationUuid": "b0421854-bebb-455b-a96f-33db5640b60a"
                        },
                        "isBase": true,
                        "vfModuleLabel": "base_template",
                        "initialCount": 1,
                        "hasVolumeGroup": false
                    },
                    {
                        "modelInfo": {
                            "modelName": "CdsVnf99..vpkg..module-1",
                            "modelUuid": "b4283579-8e0f-4de4-8eed-8640a24f3625",
                            "modelInvariantUuid": "dbad0645-3c57-4f2e-8a47-887c125b7ae0",
                            "modelVersion": "1",
                            "modelCustomizationUuid": "1339d96b-0347-4c53-a1f2-923482aa71ec"
                        },
                        "isBase": false,
                        "vfModuleLabel": "vpkg",
                        "initialCount": 0,
                        "hasVolumeGroup": false
                    },
                    {
                        "modelInfo": {
                            "modelName": "CdsVnf99..vlb..module-2",
                            "modelUuid": "d8ed100e-9c1d-4b37-a17f-0a300e5096c7",
                            "modelInvariantUuid": "3174d161-c832-4b58-ac46-1fc30f40030c",
                            "modelVersion": "1",
                            "modelCustomizationUuid": "3df8956d-601f-4312-a5f1-f186f7ad98d4"
                        },
                        "isBase": false,
                        "vfModuleLabel": "vlb",
                        "initialCount": 0,
                        "hasVolumeGroup": false
                    },
                    {
                        "modelInfo": {
                            "modelName": "CdsVnf99..vdns..module-3",
                            "modelUuid": "776f80d3-3e18-40c5-adc9-36061fcb452c",
                            "modelInvariantUuid": "80cbf0f3-a80a-4b9b-a9ec-63006c0be349",
                            "modelVersion": "1",
                            "modelCustomizationUuid": "3c2235ff-cbe5-4037-9470-614c069aa334"
                        },
                        "isBase": false,
                        "vfModuleLabel": "vdns",
                        "initialCount": 0,
                        "hasVolumeGroup": false
                    }
                ]
            }
        ]
    }


    Output of CDS #3 - SO Service Assign & Activate
    REQUEST:
    POST /onap/so/infra/serviceInstantiation/v7/serviceInstances
    {
      "requestDetails": {
        "subscriberInfo": {
          "globalSubscriberId": "Demonstration"
        },
        "requestInfo": {
          "suppressRollback": false,
          "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
          "requestorId": "adt",
          "instanceName": "cds-test",
          "source": "VID"
        },
        "cloudConfiguration": {
          "lcpCloudRegionId": "fr2",
          "tenantId": "6270eaa820934710960682c506115453",
          "cloudOwner":"CloudOwner"
        },
        "requestParameters": {
          "subscriptionServiceType": "vFW",
          "userParams": [
            {
              "Homing_Solution": "none"
            },
            {
              "service": {
                "instanceParams": [
                ],
                "instanceName": "cds-test",
                "resources": {
                  "vnfs": [
                    {
                      "modelInfo": {
                    "modelName": "cds-vnf-99",
                    "modelVersionId": "a44d59b8-91b4-4692-8c29-e0088c901cc6",
                    "modelInvariantUuid": "fd41f747-122d-45b9-87fd-2a6d7d434728",
                    "modelVersion": "1.0",
                    "modelCustomizationId": "6409e9d9-a469-4546-a7b4-e508ecc1e77f",
                    "modelInstanceName": "cds-vnf-99 0"
                      },
                      "cloudConfiguration": {
                        "lcpCloudRegionId": "fr2",
                        "tenantId": "6270eaa820934710960682c506115453"
                      },
                      "platform": {
                        "platformName": "test"
                      },
                      "lineOfBusiness": {
                        "lineOfBusinessName": "LOB-Demonstration"
                      },
                      "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
                      "instanceName": "cds-vnf-99 0",
                      "instanceParams": [
                        {      
                          "onap_private_net_id": "olc-private",
                          "onap_private_subnet_id": "olc-private",
                          "pub_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCs84Cy8+qi/jvucay0BwFtOq3ian0ulTXFGxkZcZCR0N48j88pbHJaEqb9e25MAsrfH+7Etb9Kd5nbBThEL/i0AyHXnDsc80Oq0sqlLcfLo3SGSurkrNoRofHboJ5Hn+N9SlWN5FCQGbTx1w3rjqR4LasAI6XxH9xpXSFyyge6ysVXH0cYaZ8sg98nFZa1fPJR9L8COjZvF+EYudub2RC5HVyV/sx7bliNFo9JwQh6du1abG4G7ZDjTIcYwYp21iq52UzWU28RVcAyY6AQZJu2lHLdsr8fPvyeWZpC5EqGsxI1G609m9G/dURRKwYfez/f2ATzpn5QjEX7LrLWBM8r Generated-by-Nova",
                          "image_name": "Ubuntu 16.04",
                          "flavor_name":"n2.cw.standard-2",
                          "sec_group":"olc-open",
                          "install_script_version":"1.4.0-SNAPSHOT",
                          "demo_artifacts_version":"1.4.0-SNAPSHOT",
                          "cloud_env":"openstack",
                          "public_net_id": "olc-public",
                          "aic-cloud-region": "fr2"
                        }
                      ],
                      "vfModules": [
                        {
                          "modelInfo": {
                            "modelName": "CdsVnf99..base_template..module-0",
                            "modelVersionId": "dd43a4cb-2123-4213-a76a-38638507eb7f",
                            "modelInvariantUuid": "a22c3514-028e-4ed9-9bd8-9dda79d35278",
                            "modelVersion": "1",
                            "modelCustomizationId": "b0421854-bebb-455b-a96f-33db5640b60a"
                           },
                          "instanceName": "CdsVnf99..base_template..module-0",
                          "instanceParams": [
                                                     {
                              "sec_group": "olc-open",
                              "public_net_id": "olc-net"
                            }
                          ]
                        },
                        {
                          "modelInfo": {
                            "modelName": "CdsVnf99..vpkg..module-1",
                            "modelVersionId": "b4283579-8e0f-4de4-8eed-8640a24f3625",
                            "modelInvariantUuid": "dbad0645-3c57-4f2e-8a47-887c125b7ae0",
                            "modelVersion": "1",
                            "modelCustomizationId": "1339d96b-0347-4c53-a1f2-923482aa71ec"
                           },
                          "instanceName": "CdsVnf99..vpkg..module-1",
                          "instanceParams": [
                            {
                              "sec_group": "olc-open",
                              "public_net_id": "olc-net"
                            }
                          ]
                        },
                        {
                          "modelInfo": {
                            "modelName": "CdsVnf99..vlb..module-2",
                            "modelVersionId": "d8ed100e-9c1d-4b37-a17f-0a300e5096c7",
                            "modelInvariantUuid": "3174d161-c832-4b58-ac46-1fc30f40030c",
                            "modelVersion": "1",
                            "modelCustomizationId": "3df8956d-601f-4312-a5f1-f186f7ad98d4"
                           },
                          "instanceName": "CdsVnf99..vlb..module-2",
                          "instanceParams": [
                            {
                              "sec_group": "olc-open",
                              "public_net_id": "olc-net"
                            }
                          ]
                        },
                        {
                          "modelInfo": {
                            "modelName": "CdsVnf99..vdns..module-3",
                            "modelVersionId": "776f80d3-3e18-40c5-adc9-36061fcb452c",
                            "modelInvariantUuid": "80cbf0f3-a80a-4b9b-a9ec-63006c0be349",
                            "modelVersion": "1",
                            "modelCustomizationId": "3c2235ff-cbe5-4037-9470-614c069aa334"
                          },
                          "instanceName": "CdsVnf99..vdns..module-3",
                          "instanceParams": [
                            {
                              "sec_group": "olc-open",
                              "public_net_id": "olc-net"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                },
                "modelInfo": {
                  "modelVersion": "1.0",
            "modelVersionId": "ad40aa27-b3fe-4fc3-8755-ebb1494f5913",
            "modelInvariantId": "fa3a6aa5-c77d-4b94-b300-9b7a2eb21627",
            "modelName": "cds-svc-99",
                  "modelType": "service"
                }
              }
            }
          ],
          "aLaCarte": false
        },
        "project": {
          "projectName": "Project-Demonstration"
        },
        "owningEntity": {
          "owningEntityId": "67f2e84c-734d-4e90-a1e4-d2ffa2e75849",
          "owningEntityName": "OE-Demonstration"
        },
        "modelInfo": {
          "modelVersion": "1.0",
            "modelVersionId": "ad40aa27-b3fe-4fc3-8755-ebb1494f5913",
            "modelInvariantId": "fa3a6aa5-c77d-4b94-b300-9b7a2eb21627",
            "modelName": "cds-svc-99",
         "modelType": "service"
        }
      }
    }
    
    RESPONSE:
    {
        "requestReferences": {
            "requestId": "f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3",
            "instanceId": "1a0fbd43-0ab6-4d67-99f4-14a890505a8d",
            "requestSelfLink": "http://84.39.39.120:30277/orchestrationRequests/v7/f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3"
        }
    }


    Output of CDS #4 - SO Active Infra Requests
    REQUEST:
    GET /infraActiveRequests/f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3
    
    RESPONSE:
    {
        "clientRequestId": null,
        "action": "createInstance",
        "requestStatus": "COMPLETE",
        "statusMessage": "Macro-Service-createInstance request was executed correctly.",
        "rollbackStatusMessage": null,
        "flowStatus": "Successfully completed all Building Blocks",
        "retryStatusMessage": null,
        "progress": 100,
        "startTime": "2019-06-07T03:15:07.000+0000",
        "endTime": "2019-06-07T03:18:41.000+0000",
        "source": "VID",
        "vnfId": "1bed94d9-9a12-458a-b891-7c04796b5af4",
        "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\": \"cds-test\",\r\n      \"source\": \"VID\"\r\n    },\r\n    \"cloudConfiguration\": {\r\n      \"lcpCloudRegionId\": \"fr2\",\r\n      \"tenantId\": \"6270eaa820934710960682c506115453\",\r\n      \"cloudOwner\":\"CloudOwner\"\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            \"instanceName\": \"cds-test\",\r\n            \"resources\": {\r\n              \"vnfs\": [\r\n                {\r\n                  \"modelInfo\": {\r\n                \"modelName\": \"cds-vnf-99\",\r\n                \"modelVersionId\": \"a44d59b8-91b4-4692-8c29-e0088c901cc6\",\r\n                \"modelInvariantUuid\": \"fd41f747-122d-45b9-87fd-2a6d7d434728\",\r\n                \"modelVersion\": \"1.0\",\r\n                \"modelCustomizationId\": \"6409e9d9-a469-4546-a7b4-e508ecc1e77f\",\r\n                \"modelInstanceName\": \"cds-vnf-99 0\"\r\n                  },\r\n                  \"cloudConfiguration\": {\r\n                    \"lcpCloudRegionId\": \"fr2\",\r\n                    \"tenantId\": \"6270eaa820934710960682c506115453\"\r\n                  },\r\n                  \"platform\": {\r\n                    \"platformName\": \"test\"\r\n                  },\r\n                  \"lineOfBusiness\": {\r\n                    \"lineOfBusinessName\": \"LOB-Demonstration\"\r\n                  },\r\n                  \"productFamilyId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\",\r\n                  \"instanceName\": \"cds-vnf-99 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 AAAAB3NzaC1yc2EAAAADAQABAAABAQCs84Cy8+qi/jvucay0BwFtOq3ian0ulTXFGxkZcZCR0N48j88pbHJaEqb9e25MAsrfH+7Etb9Kd5nbBThEL/i0AyHXnDsc80Oq0sqlLcfLo3SGSurkrNoRofHboJ5Hn+N9SlWN5FCQGbTx1w3rjqR4LasAI6XxH9xpXSFyyge6ysVXH0cYaZ8sg98nFZa1fPJR9L8COjZvF+EYudub2RC5HVyV/sx7bliNFo9JwQh6du1abG4G7ZDjTIcYwYp21iq52UzWU28RVcAyY6AQZJu2lHLdsr8fPvyeWZpC5EqGsxI1G609m9G/dURRKwYfez/f2ATzpn5QjEX7LrLWBM8r Generated-by-Nova\",\r\n                      \"image_name\": \"Ubuntu 16.04\",\r\n                      \"flavor_name\":\"n2.cw.standard-2\",\r\n                      \"sec_group\":\"olc-open\",\r\n                      \"install_script_version\":\"1.4.0-SNAPSHOT\",\r\n                      \"demo_artifacts_version\":\"1.4.0-SNAPSHOT\",\r\n                      \"cloud_env\":\"openstack\",\r\n                      \"public_net_id\": \"olc-public\",\r\n                      \"aic-cloud-region\": \"fr2\"\r\n                    }\r\n                  ],\r\n                  \"vfModules\": [\r\n                    {\r\n                      \"modelInfo\": {\r\n                        \"modelName\": \"CdsVnf99..base_template..module-0\",\r\n                        \"modelVersionId\": \"dd43a4cb-2123-4213-a76a-38638507eb7f\",\r\n                        \"modelInvariantUuid\": \"a22c3514-028e-4ed9-9bd8-9dda79d35278\",\r\n                        \"modelVersion\": \"1\",\r\n                        \"modelCustomizationId\": \"b0421854-bebb-455b-a96f-33db5640b60a\"\r\n                       },\r\n                      \"instanceName\": \"CdsVnf99..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                      \"modelInfo\": {\r\n                        \"modelName\": \"CdsVnf99..vpkg..module-1\",\r\n                        \"modelVersionId\": \"b4283579-8e0f-4de4-8eed-8640a24f3625\",\r\n                        \"modelInvariantUuid\": \"dbad0645-3c57-4f2e-8a47-887c125b7ae0\",\r\n                        \"modelVersion\": \"1\",\r\n                        \"modelCustomizationId\": \"1339d96b-0347-4c53-a1f2-923482aa71ec\"\r\n                       },\r\n                      \"instanceName\": \"CdsVnf99..vpkg..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\": \"CdsVnf99..vlb..module-2\",\r\n                        \"modelVersionId\": \"d8ed100e-9c1d-4b37-a17f-0a300e5096c7\",\r\n                        \"modelInvariantUuid\": \"3174d161-c832-4b58-ac46-1fc30f40030c\",\r\n                        \"modelVersion\": \"1\",\r\n                        \"modelCustomizationId\": \"3df8956d-601f-4312-a5f1-f186f7ad98d4\"\r\n                       },\r\n                      \"instanceName\": \"CdsVnf99..vlb..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\": \"CdsVnf99..vdns..module-3\",\r\n                        \"modelVersionId\": \"776f80d3-3e18-40c5-adc9-36061fcb452c\",\r\n                        \"modelInvariantUuid\": \"80cbf0f3-a80a-4b9b-a9ec-63006c0be349\",\r\n                        \"modelVersion\": \"1\",\r\n                        \"modelCustomizationId\": \"3c2235ff-cbe5-4037-9470-614c069aa334\"\r\n                      },\r\n                      \"instanceName\": \"CdsVnf99..vdns..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                }\r\n              ]\r\n            },\r\n            \"modelInfo\": {\r\n              \"modelVersion\": \"1.0\",\r\n        \"modelVersionId\": \"ad40aa27-b3fe-4fc3-8755-ebb1494f5913\",\r\n        \"modelInvariantId\": \"fa3a6aa5-c77d-4b94-b300-9b7a2eb21627\",\r\n        \"modelName\": \"cds-svc-99\",\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\": \"67f2e84c-734d-4e90-a1e4-d2ffa2e75849\",\r\n      \"owningEntityName\": \"OE-Demonstration\"\r\n    },\r\n    \"modelInfo\": {\r\n      \"modelVersion\": \"1.0\",\r\n        \"modelVersionId\": \"ad40aa27-b3fe-4fc3-8755-ebb1494f5913\",\r\n        \"modelInvariantId\": \"fa3a6aa5-c77d-4b94-b300-9b7a2eb21627\",\r\n        \"modelName\": \"cds-svc-99\",\r\n     \"modelType\": \"service\"\r\n    }\r\n  }\r\n}",
        "responseBody": null,
        "lastModifiedBy": "CamundaBPMN",
        "modifyTime": "2019-06-07T03:18:41.000+0000",
        "requestType": null,
        "volumeGroupId": null,
        "volumeGroupName": null,
        "vfModuleId": null,
        "vfModuleName": null,
        "vfModuleModelName": null,
        "aaiServiceId": null,
        "aicCloudRegion": "fr2",
        "callBackUrl": null,
        "correlator": null,
        "serviceInstanceId": "1a0fbd43-0ab6-4d67-99f4-14a890505a8d",
        "serviceInstanceName": "cds-test",
        "requestScope": "service",
        "requestAction": "createInstance",
        "networkId": null,
        "networkName": null,
        "networkType": null,
        "requestorId": "adt",
        "configurationId": null,
        "configurationName": null,
        "operationalEnvId": null,
        "operationalEnvName": null,
        "instanceGroupId": null,
        "instanceGroupName": null,
        "requestUrl": "http://84.39.39.120:30277/onap/so/infra/serviceInstantiation/v7/serviceInstances",
        "requestURI": "f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3",
        "_links": {
            "self": {
                "href": "http://84.39.39.120:31323/infraActiveRequests/f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3"
            },
            "infraActiveRequests": {
                "href": "http://84.39.39.120:31323/infraActiveRequests/f804a2b6-0e0d-49c4-bd67-7ba3ec0694b3"
            }
        }
    }
    
    


    Service Instance in SDNC MDSAL (attached in file here vdns_sdnc_mdsal.txt, as it's too big for the a collapsable code block).


    Service Instance in AAI
    REQUEST:
    GET /aai/v11/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFW/service-instances/service-instance/1a0fbd43-0ab6-4d67-99f4-14a890505a8d?depth=all
    
    RESPONSE:
    {
        "service-instance-id": "1a0fbd43-0ab6-4d67-99f4-14a890505a8d",
        "service-instance-name": "cds-test",
        "environment-context": "General_Revenue-Bearing",
        "workload-context": "Production",
        "model-invariant-id": "fa3a6aa5-c77d-4b94-b300-9b7a2eb21627",
        "model-version-id": "ad40aa27-b3fe-4fc3-8755-ebb1494f5913",
        "resource-version": "1559877521769",
        "selflink": "restconf/config/GENERIC-RESOURCE-API:services/service/1a0fbd43-0ab6-4d67-99f4-14a890505a8d/service-data/service-topology/",
        "orchestration-status": "Active",
        "relationship-list": {
            "relationship": [
                {
                    "related-to": "project",
                    "related-link": "/aai/v11/business/projects/project/Project-Demonstration",
                    "relationship-data": [
                        {
                            "relationship-key": "project.project-name",
                            "relationship-value": "Project-Demonstration"
                        }
                    ]
                },
                {
                    "related-to": "owning-entity",
                    "related-link": "/aai/v11/business/owning-entities/owning-entity/67f2e84c-734d-4e90-a1e4-d2ffa2e75849",
                    "relationship-data": [
                        {
                            "relationship-key": "owning-entity.owning-entity-id",
                            "relationship-value": "67f2e84c-734d-4e90-a1e4-d2ffa2e75849"
                        }
                    ]
                },
                {
                    "related-to": "generic-vnf",
                    "related-link": "/aai/v11/network/generic-vnfs/generic-vnf/1bed94d9-9a12-458a-b891-7c04796b5af4",
                    "relationship-data": [
                        {
                            "relationship-key": "generic-vnf.vnf-id",
                            "relationship-value": "1bed94d9-9a12-458a-b891-7c04796b5af4"
                        }
                    ],
                    "related-to-property": [
                        {
                            "property-key": "generic-vnf.vnf-name",
                            "property-value": "fr2_ONAP-NF_20190607T031522008Z"
                        }
                    ]
                }
            ]
        }
    }


    Generic VNF in AAI
    REQUEST:
    GET {{AAI}}/aai/v11/network/generic-vnfs/generic-vnf/1bed94d9-9a12-458a-b891-7c04796b5af4?depth=all
    
    RESPONSE:
    {
        "vnf-id": "1bed94d9-9a12-458a-b891-7c04796b5af4",
        "vnf-name": "fr2_ONAP-NF_20190607T031522008Z",
        "vnf-type": "cds-svc-99/null",
        "service-id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
        "prov-status": "NVTPROV",
        "operational-status": "out-of-service-path",
        "orchestration-status": "Active",
        "in-maint": false,
        "is-closed-loop-disabled": false,
        "resource-version": "1559877519020",
        "model-invariant-id": "fd41f747-122d-45b9-87fd-2a6d7d434728",
        "model-version-id": "a44d59b8-91b4-4692-8c29-e0088c901cc6",
        "model-customization-id": "6409e9d9-a469-4546-a7b4-e508ecc1e77f",
        "selflink": "restconf/config/GENERIC-RESOURCE-API:services/service/1a0fbd43-0ab6-4d67-99f4-14a890505a8d/service-data/vnfs/vnf/1bed94d9-9a12-458a-b891-7c04796b5af4/vnf-data/vnf-topology/",
        "relationship-list": {
            "relationship": [
                {
                    "related-to": "service-instance",
                    "related-link": "/aai/v11/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFW/service-instances/service-instance/1a0fbd43-0ab6-4d67-99f4-14a890505a8d",
                    "relationship-data": [
                        {
                            "relationship-key": "customer.global-customer-id",
                            "relationship-value": "Demonstration"
                        },
                        {
                            "relationship-key": "service-subscription.service-type",
                            "relationship-value": "vFW"
                        },
                        {
                            "relationship-key": "service-instance.service-instance-id",
                            "relationship-value": "1a0fbd43-0ab6-4d67-99f4-14a890505a8d"
                        }
                    ],
                    "related-to-property": [
                        {
                            "property-key": "service-instance.service-instance-name",
                            "property-value": "cds-test"
                        }
                    ]
                },
                {
                    "related-to": "line-of-business",
                    "related-link": "/aai/v11/business/lines-of-business/line-of-business/LOB-Demonstration",
                    "relationship-data": [
                        {
                            "relationship-key": "line-of-business.line-of-business-name",
                            "relationship-value": "LOB-Demonstration"
                        }
                    ]
                },
                {
                    "related-to": "platform",
                    "related-link": "/aai/v11/business/platforms/platform/test",
                    "relationship-data": [
                        {
                            "relationship-key": "platform.platform-name",
                            "relationship-value": "test"
                        }
                    ]
                },
                {
                    "related-to": "tenant",
                    "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/fr2/tenants/tenant/6270eaa820934710960682c506115453",
                    "relationship-data": [
                        {
                            "relationship-key": "cloud-region.cloud-owner",
                            "relationship-value": "CloudOwner"
                        },
                        {
                            "relationship-key": "cloud-region.cloud-region-id",
                            "relationship-value": "fr2"
                        },
                        {
                            "relationship-key": "tenant.tenant-id",
                            "relationship-value": "6270eaa820934710960682c506115453"
                        }
                    ],
                    "related-to-property": [
                        {
                            "property-key": "tenant.tenant-name",
                            "property-value": "0750178182_Sandbox1"
                        }
                    ]
                },
                {
                    "related-to": "cloud-region",
                    "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/fr2",
                    "relationship-data": [
                        {
                            "relationship-key": "cloud-region.cloud-owner",
                            "relationship-value": "CloudOwner"
                        },
                        {
                            "relationship-key": "cloud-region.cloud-region-id",
                            "relationship-value": "fr2"
                        }
                    ],
                    "related-to-property": [
                        {
                            "property-key": "cloud-region.owner-defined-type",
                            "property-value": "OwnerType"
                        }
                    ]
                }
            ]
        },
        "vf-modules": {
            "vf-module": [
                {
                    "vf-module-id": "a0e238aa-d219-4918-b269-66fef4add4ae",
                    "vf-module-name": "fr2_ONAP-NF_20190607T031522008Z_vpkg_Expansion_001",
                    "heat-stack-id": "fr2_ONAP-NF_20190607T031522008Z_vpkg_Expansion_001/2725c65d-9af3-4d60-89c6-41ceae9767ac",
                    "orchestration-status": "Active",
                    "is-base-vf-module": false,
                    "resource-version": "1559877459250",
                    "model-invariant-id": "dbad0645-3c57-4f2e-8a47-887c125b7ae0",
                    "model-version-id": "b4283579-8e0f-4de4-8eed-8640a24f3625",
                    "model-customization-id": "1339d96b-0347-4c53-a1f2-923482aa71ec",
                    "module-index": 0,
                    "selflink": "restconf/config/GENERIC-RESOURCE-API:services/service/1a0fbd43-0ab6-4d67-99f4-14a890505a8d/service-data/vnfs/vnf/1bed94d9-9a12-458a-b891-7c04796b5af4/vnf-data/vf-modules/vf-module/a0e238aa-d219-4918-b269-66fef4add4ae/vf-module-data/vf-module-topology/"
                },
                {
                    "vf-module-id": "c4a88399-7a7d-48d7-b010-f79b85a4306c",
                    "vf-module-name": "fr2_ONAP-NF_20190607T031522008Z_base_template_Base_001",
                    "heat-stack-id": "fr2_ONAP-NF_20190607T031522008Z_base_template_Base_001/e6441f43-5ac7-4010-8f6b-ab25811a77f3",
                    "orchestration-status": "Active",
                    "is-base-vf-module": true,
                    "resource-version": "1559877455593",
                    "model-invariant-id": "a22c3514-028e-4ed9-9bd8-9dda79d35278",
                    "model-version-id": "dd43a4cb-2123-4213-a76a-38638507eb7f",
                    "model-customization-id": "b0421854-bebb-455b-a96f-33db5640b60a",
                    "module-index": 0,
                    "selflink": "restconf/config/GENERIC-RESOURCE-API:services/service/1a0fbd43-0ab6-4d67-99f4-14a890505a8d/service-data/vnfs/vnf/1bed94d9-9a12-458a-b891-7c04796b5af4/vnf-data/vf-modules/vf-module/c4a88399-7a7d-48d7-b010-f79b85a4306c/vf-module-data/vf-module-topology/"
                },
                {
                    "vf-module-id": "c00aec40-e2fe-4b77-9762-058986c43473",
                    "vf-module-name": "fr2_ONAP-NF_20190607T031522008Z_vdns_Expansion_001",
                    "heat-stack-id": "fr2_ONAP-NF_20190607T031522008Z_vdns_Expansion_001/3dc085e0-d094-4484-8e91-8e925c9982f4",
                    "orchestration-status": "Active",
                    "is-base-vf-module": false,
                    "resource-version": "1559877466668",
                    "model-invariant-id": "80cbf0f3-a80a-4b9b-a9ec-63006c0be349",
                    "model-version-id": "776f80d3-3e18-40c5-adc9-36061fcb452c",
                    "model-customization-id": "3c2235ff-cbe5-4037-9470-614c069aa334",
                    "module-index": 0,
                    "selflink": "restconf/config/GENERIC-RESOURCE-API:services/service/1a0fbd43-0ab6-4d67-99f4-14a890505a8d/service-data/vnfs/vnf/1bed94d9-9a12-458a-b891-7c04796b5af4/vnf-data/vf-modules/vf-module/c00aec40-e2fe-4b77-9762-058986c43473/vf-module-data/vf-module-topology/"
                },
                {
                    "vf-module-id": "fc93d9d3-741b-4ae9-8981-a20310f20bbe",
                    "vf-module-name": "fr2_ONAP-NF_20190607T031522008Z_vlb_Expansion_001",
                    "heat-stack-id": "fr2_ONAP-NF_20190607T031522008Z_vlb_Expansion_001/d6ec42fb-30d2-4e01-b669-6f5f88c71309",
                    "orchestration-status": "Active",
                    "is-base-vf-module": false,
                    "resource-version": "1559877463154",
                    "model-invariant-id": "3174d161-c832-4b58-ac46-1fc30f40030c",
                    "model-version-id": "d8ed100e-9c1d-4b37-a17f-0a300e5096c7",
                    "model-customization-id": "3df8956d-601f-4312-a5f1-f186f7ad98d4",
                    "module-index": 0,
                    "selflink": "restconf/config/GENERIC-RESOURCE-API:services/service/1a0fbd43-0ab6-4d67-99f4-14a890505a8d/service-data/vnfs/vnf/1bed94d9-9a12-458a-b891-7c04796b5af4/vnf-data/vf-modules/vf-module/fc93d9d3-741b-4ae9-8981-a20310f20bbe/vf-module-data/vf-module-topology/"
                }
            ]
        }
    }




    Main reference for CDS sequence flows is here : Instantiation - SDN-C Generic Resource API (Enhancement)

    To monitor or to troubleshoot the vLB instantiation with CDS in Dublin, we can check several ONAP component logs, as described below:

    Check ONAP Logs
    #Some commands to quickly check the CDS processing.
    #If you like these commands, you can create aliases, so you can quickly call them anytime.
    #E.g.: alias l-sdnc='kubectl -n onap exec -it onap-sdnc-sdnc-0 -- cat /var/log/onap/sdnc/karaf.log'
    #Author: abdelmuhaimen.seaudi@orange.com
    
    #Check SDNC Logs:
    kubectl -n onap exec -it onap-sdnc-sdnc-0 -- cat /var/log/onap/sdnc/karaf.log
    kubectl -n onap exec -it onap-sdnc-sdnc-0 -- tail -f /var/log/onap/sdnc/karaf.log
    
    #Check SO Openstack Adapter Logs:
    kubectl -n onap get pods | grep so-openstack | grep Running | cut -f1 -d" " | xargs -i kubectl -n onap exec {} -- cat /app/logs/openstack/debug.log
    kubectl -n onap get pods | grep so-openstack | grep Running | cut -f1 -d" " | xargs -i kubectl -n onap exec {} -- tail -f /app/logs/openstack/debug.log
    
    #Check SO BPMN Logs:
    kubectl -n onap get pods | grep so-bpmn | grep Running | cut -f1 -d" " | xargs -i kubectl -n onap exec {} -- cat /app/logs/bpmn/debug.log
    kubectl -n onap get pods | grep so-bpmn | grep Running | cut -f1 -d" " | xargs -i kubectl -n onap exec {} -- tail -f /app/logs/bpmn/debug.log
    
    #Check CDS Blueprint Processor Logs:
    kubectl -n onap get pods | grep blueprints-processor | grep Running | cut -f1 -d" " | xargs -i kubectl -n onap logs
    kubectl -n onap get pods | grep blueprints-processor | grep Running | cut -f1 -d" " | xargs -i kubectl -n onap logs {} -f
    
    #Check Netbox Logs:
    kubectl -n onap get pods | grep netbox-app | grep Running | cut -f1  -d" " | xargs -i kubectl -n onap logs
    kubectl -n onap get pods | grep netbox-app | grep Running | cut -f1  -d" " | xargs -i kubectl -n onap logs {} -f
    
    #Check Naming Service Logs:
    kubectl -n onap get pods | grep name-gen | grep Running | cut -f1  -d" " | xargs -i kubectl -n onap logs
    kubectl -n onap get pods | grep name-gen | grep Running | cut -f1  -d" " | xargs -i kubectl -n onap logs {} -f





    • No labels

    1 Comment

    1. Which parameters under Robot script needs to be updated, to have it running in our own environment?