Versions Compared

Key

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

...

Step 1. Run "demo.sh init" from Robot VM to populate A&AI


Step 2. Install MockServer docker in Robot VM

Code Block
>sudo docker pull jamesdbloom/mockserver
>sudo docker run --name mockserver -d -p 1080:1080 jamesdbloom/mockserver

Step 5. Use Postman to create PE1 and PE2 in A&AI

Code Block

titlePE1
collapsetrue
https://{{aai}}:8443/aai/v11/network/pnfs/pnf/2ef788f0-407c-3070-b756-3a5cd71fde18 body: <?xml version="1.0" encoding="UTF-8"?> <pnf xmlns="http://org.openecomp.aai.inventory/v11"> <pnf-name>2ef788f0-407c-3070-b756-3a5cd71fde18</pnf-name> <pnf-name2>pe1_id</pnf-name2> <pnf-name2-source>NE40E-01</pnf-name2-source> <pnf-id>2ef788f0-407c-3070-b756-3a5cd71fde18</pnf-id> <equip-type>NE40E-X3A</equip-type> <equip-vendor>HUAWEI</equip-vendor> <equip-model>example-equip-model-val-44828</equip-model> <management-option>example-management-option-val-84964</management-option> <ipaddress-v4-oam>101.1. Create VoLTE service with Huawei VNFs and set nf_type parameter to huaweivnfmdriver. Put a screenshot here


Step 1.2 Register a dummy Huawei VNFM from ESR (this is needed by VFC even though we don't use any VNFM in automated testing as we will mock huaweivnfmdriver). Attach a picture here


Step 1.3 Register CloudOwner_RegionOne from ESR. Make sure the ESR VIM entry has esr-system-info-list. If AAI record doesn't have esr-system-info-list for the VIM, update the record.  


Step 2. Install MockServer docker in Robot VM

Code Block
>sudo docker pull jamesdbloom/mockserver
>sudo docker run --name mockserver -d -p 1080:1080 jamesdbloom/mockserver


Step 3. Use Postman to create PE1 and PE2 in A&AI

Code Block
titlePE1
collapsetrue
PUT https://{{aai}}:8443/aai/v11/network/pnfs/pnf/2ef788f0-407c-3070-b756-3a5cd71fde18
body:
<?xml version="1.0" encoding="UTF-8"?>
<pnf xmlns="http://org.openecomp.aai.inventory/v11">
<pnf-name>2ef788f0-407c-3070-b756-3a5cd71fde18</pnf-name>
<pnf-name2>pe1_id</pnf-name2>
<pnf-name2-source>NE40E-01</pnf-name2-source> 
<pnf-id>2ef788f0-407c-3070-b756-3a5cd71fde18</pnf-id> 
<equip-type>NE40E-X3A</equip-type> 
<equip-vendor>HUAWEI</equip-vendor>
<equip-model>example-equip-model-val-44828</equip-model>
<management-option>example-management-option-val-84964</management-option>
<ipaddress-v4-oam>10.1.1.101</ipaddress-v4-oam> 
<sw-version>V800R009C10SPC200</sw-version> 
<in-maint>true</in-maint>
<frame-id>example-frame-id-val-21069</frame-id>
<serial-number>2102350FMLN0G9000019</serial-number> 
<ipaddress-v4-loopback-0>example-ipaddress-v4-loopback0-val-57218</ipaddress-v4-loopback-0>
<ipaddress-v6-loopback-0>example-ipaddress-v6-loopback0-val-64041</ipaddress-v6-loopback-0>
<ipaddress-v4-aim>example-ipaddress-v4-aim-val-89025</ipaddress-v4-aim>
<ipaddress-v6-aim>example-ipaddress-v6-aim-val-89025</ipaddress-v6-aim>
<ipaddress-v6-oam>example-ipaddress-v6-oam-val-82953</ipaddress-v6-oam>
<inv-status>example-inv-status-val-1920</inv-status>
<prov-status>example-prov-status-val-35250</prov-status>
<nf-role>example-nf-role-val-75080</nf-role>
</pnf>
Code Block
titlePE2
collapsetrue

...

PUT https://{{aai}}:8443/aai/v11/network/pnfs/pnf/4412d3f0-c296-314d-9284-b72fc5d485e8
Headers:
Authorization:Basic QUFJOkFBSQ==
X-TransactionId:9999
X-FromAppId:jimmy-postman
Accept:application/json
Content-Type:application/xml

...



Body:
<?xml version="1.0" encoding="UTF-8"?>
<pnf xmlns="http://org.openecomp.aai.inventory/v11"> 
<pnf-name>4412d3f0-c296-314d-9284-b72fc5d485e8</pnf-name> 
<pnf-name2>pe2_id</pnf-name2> 
<pnf-name2-source>NE40E-02</pnf-name2-source> 
<pnf-id>a8098c1a-f86e-11da-bd1a-00112444be1e</pnf-id> 
<equip-type>NE40E-X3A</equip-type> 
<equip-vendor>HUAWEI</equip-vendor> 
<equip-model>example-equip-model-val-44828</equip-model> 
<management-option>example-management-option-val-84964</management-option> 
<ipaddress-v4-oam>10.1.1.102</ipaddress-v4-oam> 
<sw-version>V800R009C10SPC200</sw-version> 
<in-maint>true</in-maint> 
<frame-id>example-frame-id-val-21069</frame-id> 
<serial-number>2102350FMLN0G9000021</serial-number> 
<ipaddress-v4-loopback-0>example-ipaddress-v4-loopback0-val-57218</ipaddress-v4-loopback-0> 
<ipaddress-v6-loopback-0>example-ipaddress-v6-loopback0-val-64041</ipaddress-v6-loopback-0> 
<ipaddress-v4-aim>192.168.1.1</ipaddress-v4-aim> 
<ipaddress-v6-aim>example-ipaddress-v6-aim-val-89025</ipaddress-v6-aim> 
<ipaddress-v6-oam>example-ipaddress-v6-oam-val-82953</ipaddress-v6-oam> 
<inv-status>example-inv-status-val-1920</inv-status> 
<prov-status>example-prov-status-val-35250</prov-status> 
<nf-role>example-nf-role-val-75080</nf-role> 
</pnf>


Step 34. Use Postman to register create SDN WAN controller for underlay network (you can do this in Portal ESR app too)

Code Block
titleWAN SDN Controller
collapsetrue
PUT https://{{aai}}:8443/aai/v11/external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/IP-WAN-Controller-1

<?xml version="1.0" encoding="UTF-8"?> 
<esr-thirdparty-sdnc xmlns="http://org.openecomp.aai.inventory/v11"> 
  <thirdparty-sdnc-id>IP-WAN-Controller-1</thirdparty-sdnc-id> 
  <location>Core</location> 
  <product-name>AC-WAN</product-name> 
  <esr-system-info-list> 
    <esr-system-info> 
      <esr-system-info-id>IP-WAN-Controller-ESR-1</esr-system-info-id> 
      <system-name>IP-WAN-Controller</system-name> 
      <type>WAN</type> 
      <vendor>HUAWEI</vendor> 
      <version>Agile Controller-WAN V300R002C10SPC015T</version> 
      <service-url>http://10.0.10.1:1080</service-url> 
      <user-name>zmb@huawei.com</user-name> 
      <password>Huawei12#$</password> 
      <system-type>example-system-type-val-12078</system-type> 
      <protocol>RESTCONF</protocol> 
      <ssl-cacert>example-ssl-cacert-val-20589</ssl-cacert> 
      <ssl-insecure>true</ssl-insecure> 
      <ip-address>10.0.10.1</ip-address> 
      <port>1080</port> 
      <cloud-domain>example-cloud-domain-val-76077</cloud-domain> 
      <default-tenant>example-default-tenant-val-71148</default-tenant> 
      <passive>true</passive> 
      <remote-path>example-remotepath-val-5833</remote-path> 
      <system-status>example-system-status-val-23435</system-status> 
    </esr-system-info> 
  </esr-system-info-list> 
  <relationship-list> 
    <relationship> 
      <related-to>pnf</related-to> 
      <relationship-data> 
        <relationship-key>pnf.pnf-name</relationship-key> 
        <relationship-value>2ef788f0-407c-3070-b756-3a5cd71fde18</relationship-value> 
      </relationship-data> 
    </relationship> 
    <relationship> 
      <related-to>pnf</related-to> 
      <relationship-data> 
        <relationship-key>pnf.pnf-name</relationship-key> 
        <relationship-value>4412d3f0-c296-314d-9284-b72fc5d485e8</relationship-value> 
      </relationship-data> 
    </relationship> 
  </relationship-list> 
</esr-thirdparty-sdnc>


Step 45. Use Postman to register create DC1 and DC2 SDN controller

Step 6. Use Postman to create data center network 1,2,3,4 for overlay

Step 7. Change huaweivnfmdriver MSB service url and point to MockServer. Assume you are running from MutliService VM

Code Block
>curl -X DELETE http://127.0.0.1/api/microservices/v1/services/huaweivnfmdriver/v1
>curl -X GET http://127.0.0.1/api/microservices/v1/services/huaweivnfmdriver/v1
>curl -X POST -H "Content-Type:application/json" -d '{"serviceName":"huaweivnfmdriver","version":"v1","url":"/api/huaweivnfmdriver/v1","protocol":"REST","lb_policy":"round-robin","nodes":[{"ip":"10.0.10.1","port":"1080"}]}' http://127.0.0.1/api/microservices/v1/services

Step 8. Create VoLTE service with Huawei VNFs and set nf_type parameter to huaweivnfmdriver. Put a screenshot here

Step 9. Open /service//vfc/nfvo/lcm/lcm/pub/config/config.py and change AAI_BASE_URL = "httpcontrollers

Code Block
titleCreate DC1 and DC2 SDN Controller
collapsetrue
PUT https://{{aai}}:8443/aai/v11/external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/DCI-Controller-1
Body:
<?xml version="1.0" encoding="UTF-8"?> 
<esr-thirdparty-sdnc xmlns="http://org.openecomp.aai.inventory/v11"> 
  <thirdparty-sdnc-id>DCI-Controller-1</thirdparty-sdnc-id> 
  <location>Core</location> 
  <product-name>DCI-Controller</product-name> 
  <esr-system-info-list> 
    <esr-system-info> 
      <esr-system-info-id>DCI-Controller1-ESR-1</esr-system-info-id> 
      <system-name>DC-Controller-1</system-name> 
      <type>DC</type> 
      <vendor>IP-WAN</vendor> 
      <version>example-version-val-5833</version> 
      <service-url>http://10.0.

...

10.1:

...

Step 10. Update file basemodel.py in vfc_catalog container

/service/vfc/nfvo/catalog/catalog/pub/utils/toscaparser/basemodel.py (See R1 Known Issues issue 1)

Step 11. Update config.py in vfc_catalog container

Code Block
root@3511e71899bc:/service/vfc/nfvo/catalog/catalog/pub/config# diff config.py config.py.orig 
52,54c52,54
< SDC_BASE_URL = "http://10.0.14.1:80/api"
< SDC_USER = "aai"
< SDC_PASSWD = "Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U"
---
> SDC_BASE_URL = "https://127.0.0.1:8443/api"
> SDC_USER = "SDC"
> SDC_PASSWD = "SDC"

 

Step 11-2. Validate msb-ip and sdnc-ip in /etc/mso/config.d/topology.properties are correct oam ips in SO container testlab_mso_1 (TODO: if this is correct, remove this step)

Step 12. Configure MockServer to simulate SDN controller and VNFM driver

Code Block
titleMock server script to simulate SDN controllers and huawei VNFM driver
linenumberstrue
collapsetrue
curl -v -X PUT "http://localhost:1080/expectation" -d '{
    "httpRequest": {
        "method": "POST",
        "path": "/controller/v2/tokens"
    },
    "httpResponse": {
        "statusCode": 200,
        "headers": {
            "content-type": ["application/json"]1080</service-url> 
      <user-name>admin</user-name> 
      <password>Admin@12345</password> 
      <system-type>example-system-type-val-12078</system-type> 
      <protocol>RESTCONF</protocol> 
      <ssl-cacert>example-ssl-cacert-val-20589</ssl-cacert> 
      <ssl-insecure>true</ssl-insecure> 
      <ip-address>10.0.10.1</ip-address> 
      <port>1080</port> 
      <cloud-domain>example-cloud-domain-val-76077</cloud-domain> 
      <default-tenant>example-default-tenant-val-71148</default-tenant> 
      <passive>true</passive> 
      <remote-path>example-remotepath-val-5833</remote-path> 
      <system-status>example-system-status-val-23435</system-status> 
    </esr-system-info> 
  </esr-system-info-list> 
</esr-thirdparty-sdnc>


PUT https://{{aai}}:8443/aai/v11/external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/ZTE-DCI-Controller
Body:
<?xml version="1.0" encoding="UTF-8"?> 
<esr-thirdparty-sdnc xmlns="http://org.openecomp.aai.inventory/v11"> 
  <thirdparty-sdnc-id>ZTE-DCI-Controller</thirdparty-sdnc-id> 
  <location>Edge</location> 
  <product-name>DCI-Controller</product-name> 
  <esr-system-info-list> 
    <esr-system-info> 
      <esr-system-info-id>ZTE-DCI-Controller-ESR-1</esr-system-info-id> 
      <system-name>ZTE-DCI-Controller</system-name> 
      <type>DC</type> },
	"body": { 	     "not": false,<vendor>SPTN</vendor> 
      	<version>example-version-val-5833</version> 
   "type": "JSON",  <service-url>http://10.0.10.1:1080</service-url> 
  	     "json": "{\"errcode\":\"0\",\"errmsg\":\"get token successfully.\",\"data\":{\"expiredDate\":\"2018-11-10 10:03:33\",\"token_id\":\"7F06BFDDAC33A989:77DAD6058B1BB81EF1A557745E4D9C78399B31C4DB509704ED8A7DF05A362A59\"}}"
	}
    }
}'

curl -v -X PUT "http://localhost:1080/expectation" -d '{
    "httpRequest": {
        "method": "POST",
 <user-name>admin</user-name> 
      <password>admin</password> 
      <system-type>example-system-type-val-12078</system-type> 
      <protocol>RESTCONF</protocol> 
      <ssl-cacert>example-ssl-cacert-val-20589</ssl-cacert> 
      <ssl-insecure>true</ssl-insecure> 
     "path": "/restconf/data/huawei-ac-net-l3vpn-svc:l3vpn-svc-cfg/vpn-services" <ip-address>10.0.10.1</ip-address> 
   },   <port>1080</port> 
"httpResponse": {     <cloud-domain>example-cloud-domain-val-76077</cloud-domain> 
  "statusCode": 201   <default-tenant>example-default-tenant-val-71148</default-tenant> 
},     "times" : {
<passive>true</passive> <remote-path>example-remotepath-val-5833</remote-path> 
      "remainingTimes" : 2,<system-status>example-system-status-val-23435</system-status> 
    </esr-system-info> 
   "unlimited" : true
    },
    "timeToLive" : {
        "unlimited" : true
    }
}'

curl -v -X PUT "http://localhost:1080/expectation" -d '{
    "httpRequest": {
        "method": "PUT",
        "path": "/restconf/data/huawei-ac-net-l3vpn-svc:l3vpn-svc-cfg/huawei-ac-net-l3vpn-svc-vfi:vrf-attributes"
    },
    "httpResponse": {
        "statusCode": 204
    },
    "times" : {
        "remainingTimes" : 2,
        "unlimited" : true
    },
    "timeToLive" : {
        "unlimited" : true
    }
}'

curl -v -X PUT "http://localhost:1080/expectation" -d '{
    "httpRequest": {
        "method": "POST",
        "path": "/restconf/data/huawei-ac-net-l3vpn-svc:l3vpn-svc-cfg/sites"
    },
    "httpResponse": {
        "statusCode": 201
    },
    "times" : {
        "remainingTimes" : 2,
        "unlimited" : true
    },
    "timeToLive" : {
        "unlimited" : true
    }
}'

# ZTE DCI
curl -v -X PUT "http://localhost:1080/expectation" -d '{
    "httpRequest": {
        "method": "POST",
        "path": "/v2.0/l3-dci-connects"
    },
    "httpResponse": {
        "statusCode": 201
    },
    "times" : {
        "remainingTimes" : 2,
        "unlimited" : true
    },
    "timeToLive" : {
        "unlimited" : true
    }
}'

# huaweivnfmdriver
curl -v -X PUT "http://localhost:1080/expectation" -d '{
    "httpRequest"</esr-system-info-list> 
</esr-thirdparty-sdnc>


Step 6. Use Postman to create data center network 1,2,3,4 for overlay network. Make sure update model-invariant-id and model-version-id with VoLTE e2e service invariant uuid and uui respectively. 

Code Block
titleCreate DC Network 1,2,3,4
collapsetrue
PUT https://{{aai}}:8443/aai/v11/network/l3-networks/l3-network/example-network-id-val-95686

Body:
<?xml version="1.0" encoding="UTF-8"?>
<l3-network xmlns="http://org.openecomp.aai.inventory/v11"> 
  <network-id>example-network-id-val-95686</network-id> 
  <network-name>network1</network-name> 
  <network-type>example-network-type-val-25886</network-type> 
  <network-role>example-network-role-val-83276</network-role> 
  <network-technology>example-network-technology-val-14076</network-technology> 
  <neutron-network-id>example-neutron-network-id-val-26627</neutron-network-id> 
  <is-bound-to-vpn>true</is-bound-to-vpn> 
  <service-id>example-service-id-val-62516</service-id> 
  <network-role-instance>44307133</network-role-instance> 
  <orchestration-status>example-orchestration-status-val-96100</orchestration-status> 
  <heat-stack-id>example-heat-stack-id-val-78938</heat-stack-id> 
  <mso-catalog-key>example-mso-catalog-key-val-87197</mso-catalog-key> 
  <contrail-network-fqdn>example-contrail-network-fqdn-val-7496</contrail-network-fqdn> 
  <model-invariant-id>e9b5654e-6627-4590-9a54-a39b4d85955e</model-invariant-id> 
  <model-version-id>96a01eb8-1538-40a6-a9ab-0f6bf8e0d877</model-version-id> 
  <model-customization-id>example-model-customization-id-val-68776</model-customization-id> 
  <widget-model-id>example-widget-model-id-val-80547</widget-model-id> 
  <widget-model-version>example-widget-model-version-val-92795</widget-model-version> 
  <physical-network-name>example-physical-network-name-val-18937</physical-network-name> 
  <is-provider-network>true</is-provider-network> 
  <is-shared-network>true</is-shared-network> 
  <is-external-network>true</is-external-network> 
  <selflink>example-selflink-val-16441</selflink> 
  <operational-status>example-operational-status-val-2969</operational-status> 
</l3-network>


Step 7. Change huaweivnfmdriver MSB service url and point to MockServer. Assume you are running from MutliService VM, update /opt/msb_vm_init.sh to replace huaweivnfmdriver host ip and port with MockServer ip and port, and rerun the script.

Code Block
Deprecated (can't delete or query huaweivnfmdriver)
>curl -X DELETE http://127.0.0.1/api/microservices/v1/services/huaweivnfmdriver/v1
>curl -X GET http://127.0.0.1/api/microservices/v1/services/huaweivnfmdriver/v1
>curl -X POST -H "Content-Type:application/json" -d '{"serviceName":"huaweivnfmdriver","version":"v1","url":"/api/huaweivnfmdriver/v1","protocol":"REST","lb_policy":"round-robin","nodes":[{"ip":"10.0.10.1","port":"1080"}]}' http://127.0.0.1/api/microservices/v1/services


Step 9. Open /service//vfc/nfvo/lcm/lcm/pub/config/config.py in vfc_nslcm container and change AAI_BASE_URL = "http://10.0.14.1/aai/v11"


Step 10. Update file basemodel.py in vfc_catalog container with the version from master branch

/service/vfc/nfvo/catalog/catalog/pub/utils/toscaparser/basemodel.py (See R1 Known Issues issue 1)


Step 11. Update config.py in vfc_catalog container

Code Block
root@3511e71899bc:/service/vfc/nfvo/catalog/catalog/pub/config# diff config.py config.py.orig 
52,54c52,54
< SDC_BASE_URL = "http://10.0.14.1:80/api"
< SDC_USER = "aai"
< SDC_PASSWD = "Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U"
---
> SDC_BASE_URL = "https://127.0.0.1:8443/api"
> SDC_USER = "SDC"
> SDC_PASSWD = "SDC"

 

Step 11-1. Restart MockServer container and reset it

Code Block
ubuntu@onap-robot:~/mockserverclient$ sudo docker restart mockserver
ubuntu@onap-robot:~/mockserverclient$ curl -v -X PUT "http://localhost:1080/reset"


Step 11-2. Change msb and sdnc ip and port in /etc/mso/config.d/topology.properties to correct ip and port in SO container testlab_mso_1. Everytime testlab_mso_1 container restarts, this file needs to be corrected like this. 

Code Block
root@mso:/etc/mso/config.d# diff topology.properties topology.properties.orig 
19,22c19,22
< msb-ip=10.0.14.1
< msb-port=80
< sdnc-ip=10.0.7.1
< sdnc-port=8282
---
> msb-ip=127.0.0.1
> msb-port=8080
> sdnc-ip=172.30.3.38
> sdnc-port=8282


Step 12. Configure MockServer to simulate SDN controller and VNFM driver

Code Block
titleMock server script to simulate SDN controllers and huawei VNFM driver
linenumberstrue
collapsetrue
curl -v -X PUT "http://localhost:1080/expectation" -d '{
    "httpRequest": {
        "method": "POST",
        "path": "/apicontroller/huaweivnfmdriver/v1/a0400010-11d7-4875-b4ae-5f42ed5d3a85/vnfs"
    v2/tokens"
    },
    "httpResponse": {
        "statusCode": 200,
        "headers": {
            "content-type": ["application/json"]
        },
        	"body": {
	             "not": false,
       	      "type": "JSON",
     	        "json": "{\"vnfInstanceIderrcode\":\"fa3dca847b054f4eb9d3bc8bb9e5eec90\",\"jobIderrmsg\":\"fa3dca847b054f4eb9d3bc8bb9e5eec9_post\"}"
        }
    },
    "times" : {
        "remainingTimes" : 2,
        "unlimited" : true
    },
    "timeToLive" : {
        "unlimited" : trueget token successfully.\",\"data\":{\"expiredDate\":\"2018-11-10 10:03:33\",\"token_id\":\"7F06BFDDAC33A989:77DAD6058B1BB81EF1A557745E4D9C78399B31C4DB509704ED8A7DF05A362A59\"}}"
	}
    }
}'

#
huaweivnfmdriver
curl -v -X PUT "http://localhost:1080/expectation" -d '{
    "httpRequest": {
        "method": "GETPOST",
        "path": "/apirestconf/huaweivnfmdriverdata/v1/a0400010huawei-11d7ac-4875-b4ae-5f42ed5d3a85/jobs/fa3dca847b054f4eb9d3bc8bb9e5eec9_post",
	"queryStringParameters": {
	    "responseId": ["0"]
	}
    }net-l3vpn-svc:l3vpn-svc-cfg/vpn-services"
    },
    "httpResponse": {
        "statusCode": 200,201
    },
    "headerstimes" : {
        "remainingTimes" : 2,
 "content-type": ["application/json"]      "unlimited" : true
},    },
    "bodytimeToLive" : {
        "unlimited" : true
  "not": false,
  }
}'

curl -v -X PUT "http://localhost:1080/expectation" -d '{
    "typehttpRequest": "JSON",{
             "jsonmethod": "{\"jobId\":\"fa3dca847b054f4eb9d3bc8bb9e5eec9\",\"responsedescriptor\":{\"progress\":\"50\",\"status\":\"processing\",\"errorCode\":null,\"responseId\":\"0\"}}"PUT",
        "path": "/restconf/data/huawei-ac-net-l3vpn-svc:l3vpn-svc-cfg/huawei-ac-net-l3vpn-svc-vfi:vrf-attributes"
    },
    "httpResponse": {
        "statusCode": }204
    },
    "times" : {
        "remainingTimes" : 202,
        "unlimited" : falsetrue
    },
    "timeToLive" : {
        "unlimited" : true
    }
}'

#
huaweivnfmdriver
curl -v -X PUT "http://localhost:1080/expectation" -d '{
    "httpRequest": {
        "method": "GETPOST",
        "path": "/apirestconf/huaweivnfmdriverdata/v1/a0400010huawei-11d7ac-4875-b4ae-5f42ed5d3a85/jobs/fa3dca847b054f4eb9d3bc8bb9e5eec9_post",
	"queryStringParameters": {
	    "responseId": ["0"]
	}
    }net-l3vpn-svc:l3vpn-svc-cfg/sites"
    },
    "httpResponse": {
        "statusCode": 200,201
    },
    "headerstimes" : {
        "remainingTimes" : 2,
 "content-type": ["application/json"]      "unlimited" : true
},    },
    "bodytimeToLive" : {
        "unlimited" : true
  "not": false,
  }
}'

# ZTE DCI
curl -v -X PUT "http://localhost:1080/expectation" -d '{
    "httpRequest": {
        "typemethod": "JSONPOST",
        "path": "/v2.0/l3-dci-connects"
    },
    "jsonhttpResponse": "{\"jobId\":\"fa3dca847b054f4eb9d3bc8bb9e5eec9\",\"responsedescriptor\":{\"progress\":\"100\",\"status\":\"processing\",\"errorCode\":null,\"responseId\":\"0\"}}"
{
        "statusCode": 201
       }
    },
    "times" : {
        "remainingTimes" : 2,
        "unlimited" : true
    },
    "timeToLive" : {
        "unlimited" : true
    }
}'

# huaweivnfmdriver
curl -v -X PUT "http://localhost:1080/expectation" -d '{
    "httpRequest": {
        "method": "GETPOST",
        "path": "/api/huaweivnfmdriver/v1/a0400010-11d7-4875-b4ae-5f42ed5d3a85/jobs/fa3dca847b054f4eb9d3bc8bb9e5eec9_post",
	"queryStringParametersvnfs"
    },
    "httpResponse": {
	    "responseId": ["50"]
	}
    },
    "httpResponse": {
        "statusCode": 200,
        "headers": {
            "content-type": ["application/json"]
        },
        "body": {
             "not": false,
             "type": "JSON",
             "json": "{\"jobIdvnfInstanceId\":\"fa3dca847b054f4eb9d3bc8bb9e5eec9\",\"responsedescriptorjobId\":{\"progress\":\"100\",\"status\":\"processing\",\"errorCode\":null,\"responseId\":\"50\"}}fa3dca847b054f4eb9d3bc8bb9e5eec9_post\"}"
        }
    },
    "times" : {
        "remainingTimes" : 2,
        "unlimited" : true
    },
    "timeToLive" : {
        "unlimited" : true
    }
}'

# huaweivnfmdriver
curl -v -X PUT "http://localhost:1080/expectation" -d '{
    "httpRequest": {
        "method": "GET",
        "path": "/api/huaweivnfmdriver/v1/a0400010-11d7-4875-b4ae-5f42ed5d3a85/jobs/fa3dca847b054f4eb9d3bc8bb9e5eec9_post",
	"queryStringParameters": {
	    "responseId": ["20"]
	}
    },
    "httpResponse": {
        "statusCode": 200,
        "headers": {
            "content-type": ["application/json"]
        },
        "body": {
             "not": false,
             "type": "JSON",
             "json": "{\"jobId\":\"fa3dca847b054f4eb9d3bc8bb9e5eec9\",\"responsedescriptor\":{\"progress\":\"10050\",\"status\":\"processing\",\"errorCode\":null,\"responseId\":\"20\"}}"
        }
    },
    "times" : {
        "remainingTimes" : 20,
        "unlimited" : false
    },
    "timeToLive" : {
        "unlimited" : true
    }
}'

# huaweivnfmdriver
curl -v -X PUT "http://localhost:1080/expectation" -d '{
    "httpRequest": {
        "method": "GET",
        "path": "/api/huaweivnfmdriver/v1/a0400010-11d7-4875-b4ae-5f42ed5d3a85/jobs/fa3dca847b054f4eb9d3bc8bb9e5eec9_post",
	"queryStringParameters": {
	    "responseId": ["0"]
	}
    },
    "httpResponse": {
        "statusCode": 200,
        "headers": {
            "content-type": ["application/json"]
        },
        "body": {
             "not": false,
             "type": "JSON",
             "json": "{\"jobId\":\"fa3dca847b054f4eb9d3bc8bb9e5eec9\",\"responsedescriptor\":{\"progress\":\"100\",\"status\":\"processing\",\"errorCode\":null,\"responseId\":\"0\"}}"
        }
    },
    "times" : {
        "remainingTimes" : 2,
        "unlimited" : true
    },
    "timeToLive" : {
        "unlimited" : true
    }
}'

curl -v -X PUT "http://localhost:1080/expectation" -d '{
    "httpRequest": {
        "method": "GET",
        "path": "/api/huaweivnfmdriver/v1/a0400010-11d7-4875-b4ae-5f42ed5d3a85/jobs/fa3dca847b054f4eb9d3bc8bb9e5eec9_post",
	"queryStringParameters": {
	    "responseId": ["50"]
	}
    },
    "httpResponse": {
        "statusCode": 200,
        "headers": {
            "content-type": ["application/json"]
        },
        "body": {
             "not": false,
             "type": "JSON",
             "json": "{\"jobId\":\"fa3dca847b054f4eb9d3bc8bb9e5eec9\",\"responsedescriptor\":{\"progress\":\"100\",\"status\":\"processing\",\"errorCode\":null,\"responseId\":\"50\"}}"
        }
    },
    "times" : {
        "remainingTimes" : 2,
        "unlimited" : true
    },
    "timeToLive" : {
        "unlimited" : true
    }
}'


curl -v -X PUT "http://localhost:1080/expectation" -d '{
    "httpRequest": {
        "method": "GET",
        "path": "/api/huaweivnfmdriver/v1/a0400010-11d7-4875-b4ae-5f42ed5d3a85/jobs/fa3dca847b054f4eb9d3bc8bb9e5eec9_post",
	"queryStringParameters": {
	    "responseId": ["2"]
	}
    },
    "httpResponse": {
        "statusCode": 200,
        "headers": {
            "content-type": ["application/json"]
        },
        "body": {
             "not": false,
             "type": "JSON",
             "json": "{\"jobId\":\"fa3dca847b054f4eb9d3bc8bb9e5eec9\",\"responsedescriptor\":{\"progress\":\"100\",\"status\":\"processing\",\"errorCode\":null,\"responseId\":\"2\"}}"
        }
    },
    "times" : {
        "remainingTimes" : 2,
        "unlimited" : true
    },
    "timeToLive" : {
        "unlimited" : true
    }
}'


Step 13. Distribute VoLTE service from SDC. After distribution, use distribution monitor to make AAI, SO, SDNC all received the VoLTE service model distribution. If SDNC did not receive the model, restart sdnc_ueblistener_container from SDNC VM. 


Step 14. Onboard VNFs, EPC_NS, IMS_NS, EPC Service, IMS Service in order from UUI (why EPC_NS before EPC Service)?


Step 15. Simulate request from UUI to SO


Step 16. Simulate notification message from Huawei VNFM driver to nslcm

Notification message sent from vnfm driver to nslcm

Code Block
languagepy
titleVNFM Status Notification Message
linenumberstrue
collapsetrue
curl -v -X   POST  "remainingTimes" : 2,
        "unlimited" : true
    },
    "timeToLive" : {
        "unlimited" : true
    }
}'

Step 13. Distribute VoLTE service from SDC

Step 14. Distribute VoLTE service from UUI

Step 15. Simulate request from UUI to SO

Step 16. Simulate notification message from Huawei VNFM driver to nslcm

Notification message sent from vnfm driver to nslcm

Code Block
languagepy
titleVNFM Status Notification Message
linenumberstrue
collapsetrue
"http://10.0.14.1:80/api/nslcm/v1/ns/a0400010-11d7-4875-b4ae-5f42ed5d3a85/vnfs/fa3dca847b054f4eb9d3bc8bb9e5eec9/Notify" -d '{
 	"status": "Building", "vnfInstanceId": "fa3dca847b054f4eb9d3bc8bb9e5eec9", "operation": "Instantiate", "affectedVnfc": []
}'

sleep 1

curl -v -X POST "http://10.0.14.1:80/api/nslcm/v1/ns/a0400010-11d7-4875-b4ae-5f42ed5d3a85/vnfs/fa3dca847b054f4eb9d3bc8bb9e5eec9/Notify" -d '{
 	"status": "Building", "vnfInstanceId": "fa3dca847b054f4eb9d3bc8bb9e5eec9", "operation": "Instantiate", "affectedVnfc": []
}'

sleep 1

curl -v -X POST "http://10.0.14.1:80/api/nslcm/v1/ns/a0400010-11d7-4875-b4ae-5f42ed5d3a85/vnfs/fa3dca847b054f4eb9d3bc8bb9e5eec9/Notify" -d '{
"status":"Building","vnfInstanceId":"fa3dca847b054f4eb9d3bc8bb9e5eec9","operation":"Instantiate","affectedVnfc":["status":"Building","vnfInstanceId":"fa3dca847b054f4eb9d3bc8bb9e5eec9","operation":"Instantiate","affectedVnfc":[{"vnfcInstanceId":"5376027132be4ba184ad55257a031a60","changeType":"added","vimid":"core-dc_RegionOne","vmid":"5376027132be4ba184ad55257a031a60","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_OMU_1","vduid":"5376027132be4ba184ad55257a031a60"},{"vnfcInstanceId":"a40772541d5d405a85cce0013cf2afbd","changeType":"added","vimid":"core-dc_RegionOne","vmid":"a40772541d5d405a85cce0013cf2afbd","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_OMU_0","vduid":"a40772541d5d405a85cce0013cf2afbd"},{"vnfcInstanceId":"5376027132be4ba184ad55257a031a609b5080d645684ba0b16a8eb38d12d136","changeType":"added","vimid":"core-dc_RegionOne","vmid":"5376027132be4ba184ad55257a031a609b5080d645684ba0b16a8eb38d12d136","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_OMUSPU_C_10067","vduid":"5376027132be4ba184ad55257a031a609b5080d645684ba0b16a8eb38d12d136"},{"vnfcInstanceId":"a40772541d5d405a85cce0013cf2afbdc91a54f15e654fde97895efe21b1b032","changeType":"added","vimid":"core-dc_RegionOne","vmid":"a40772541d5d405a85cce0013cf2afbdc91a54f15e654fde97895efe21b1b032","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_OMUSPU_C_00066","vduid":"a40772541d5d405a85cce0013cf2afbdc91a54f15e654fde97895efe21b1b032"},{"vnfcInstanceId":"9b5080d645684ba0b16a8eb38d12d136c800312379d04243a64d361142fe366d","changeType":"added","vimid":"core-dc_RegionOne","vmid":"9b5080d645684ba0b16a8eb38d12d136c800312379d04243a64d361142fe366d","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_SPUIPU_CA_00670065","vduid":"9b5080d645684ba0b16a8eb38d12d136c800312379d04243a64d361142fe366d"},{"vnfcInstanceId":"c91a54f15e654fde97895efe21b1b032e52ee6658768476084c7a97af26e39cf","changeType":"added","vimid":"core-dc_RegionOne","vmid":"c91a54f15e654fde97895efe21b1b032e52ee6658768476084c7a97af26e39cf","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_SPUIPU_CA_00660064","vduid":"c91a54f15e654fde97895efe21b1b032e52ee6658768476084c7a97af26e39cf"},{"vnfcInstanceId":"c800312379d04243a64d361142fe366d30adc3ab8698479c9acd9e532c9f0d5a","changeType":"added","vimid":"core-dc_RegionOne","vmid":"c800312379d04243a64d361142fe366d30adc3ab8698479c9acd9e532c9f0d5a","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_IPUSDU_A_00650068","vduid":"c800312379d04243a64d361142fe366d30adc3ab8698479c9acd9e532c9f0d5a"},{"vnfcInstanceId":"e52ee6658768476084c7a97af26e39cf5622630bfe3f41a2bac4f69e4baec0a3","changeType":"added","vimid":"core-dc_RegionOne","vmid":"e52ee6658768476084c7a97af26e39cf5622630bfe3f41a2bac4f69e4baec0a3","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_IPUSDU_A_00640069","vduid":"e52ee6658768476084c7a97af26e39cf5622630bfe3f41a2bac4f69e4baec0a3"},{"vnfcInstanceId":"30adc3ab8698479c9acd9e532c9f0d5aa82f9c5a22e748139bd0569e52048cb9","changeType":"added","vimid":"core-dc_RegionOne","vmid":"30adc3ab8698479c9acd9e532c9f0d5aa82f9c5a22e748139bd0569e52048cb9","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_SDU_A_0068","vduid":"30adc3ab8698479c9acd9e532c9f0d5a"},{"vnfcInstanceId":"5622630bfe3f41a2bac4f69e4baec0a3","changeType":"added","vimid":"core-dc_RegionOne","vmid":"5622630bfe3f41a2bac4f69e4baec0a3","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_SDU_A_0069","vduid":"5622630bfe3f41a2bac4f69e4baec0a3"},":"vnfab40e6ba-df1f-458c-94c5-a45_SDU_A_0070","vduid":"a82f9c5a22e748139bd0569e52048cb9"}]
}'

sleep 1


curl -v -X POST "http://10.0.14.1:80/api/nslcm/v1/ns/a0400010-11d7-4875-b4ae-5f42ed5d3a85/vnfs/fa3dca847b054f4eb9d3bc8bb9e5eec9/Notify" -d '{
"status":"Active","vnfInstanceId":"fa3dca847b054f4eb9d3bc8bb9e5eec9","operation":"Instantiate","affectedVnfc":[{"vnfcInstanceId":"a82f9c5a22e748139bd0569e52048cb95376027132be4ba184ad55257a031a60","changeType":"added","vimid":"core-dc_RegionOne","vmid":"a82f9c5a22e748139bd0569e52048cb95376027132be4ba184ad55257a031a60","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_SDUOMU_A_00701","vduid":"a82f9c5a22e748139bd0569e52048cb9"}]
}'

sleep 1


curl -v -X POST "http://10.0.14.1:80/api/nslcm/v1/ns/a0400010-11d7-4875-b4ae-5f42ed5d3a85/vnfs/fa3dca847b054f4eb9d3bc8bb9e5eec9/Notify" -d '{
"status":"Active","vnfInstanceId":"fa3dca847b054f4eb9d3bc8bb9e5eec9","operation":"Instantiate","affectedVnfc":[5376027132be4ba184ad55257a031a60"},{"vnfcInstanceId":"a40772541d5d405a85cce0013cf2afbd","changeType":"added","vimid":"core-dc_RegionOne","vmid":"a40772541d5d405a85cce0013cf2afbd","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_OMU_0","vduid":"a40772541d5d405a85cce0013cf2afbd"},{"vnfcInstanceId":"5376027132be4ba184ad55257a031a609b5080d645684ba0b16a8eb38d12d136","changeType":"added","vimid":"core-dc_RegionOne","vmid":"5376027132be4ba184ad55257a031a609b5080d645684ba0b16a8eb38d12d136","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_OMUSPU_C_10067","vduid":"5376027132be4ba184ad55257a031a609b5080d645684ba0b16a8eb38d12d136"},{"vnfcInstanceId":"a40772541d5d405a85cce0013cf2afbdc91a54f15e654fde97895efe21b1b032","changeType":"added","vimid":"core-dc_RegionOne","vmid":"a40772541d5d405a85cce0013cf2afbdc91a54f15e654fde97895efe21b1b032","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_OMUSPU_C_00066","vduid":"a40772541d5d405a85cce0013cf2afbdc91a54f15e654fde97895efe21b1b032"},{"vnfcInstanceId":"9b5080d645684ba0b16a8eb38d12d136c800312379d04243a64d361142fe366d","changeType":"added","vimid":"core-dc_RegionOne","vmid":"9b5080d645684ba0b16a8eb38d12d136c800312379d04243a64d361142fe366d","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_SPUIPU_CA_00670065","vduid":"9b5080d645684ba0b16a8eb38d12d136c800312379d04243a64d361142fe366d"},{"vnfcInstanceId":"c91a54f15e654fde97895efe21b1b032e52ee6658768476084c7a97af26e39cf","changeType":"added","vimid":"core-dc_RegionOne","vmid":"c91a54f15e654fde97895efe21b1b032e52ee6658768476084c7a97af26e39cf","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_SPUIPU_CA_00660064","vduid":"c91a54f15e654fde97895efe21b1b032e52ee6658768476084c7a97af26e39cf"},{"vnfcInstanceId":"c800312379d04243a64d361142fe366d30adc3ab8698479c9acd9e532c9f0d5a","changeType":"added","vimid":"core-dc_RegionOne","vmid":"c800312379d04243a64d361142fe366d30adc3ab8698479c9acd9e532c9f0d5a","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_IPUSDU_A_00650068","vduid":"c800312379d04243a64d361142fe366d30adc3ab8698479c9acd9e532c9f0d5a"},{"vnfcInstanceId":"e52ee6658768476084c7a97af26e39cf5622630bfe3f41a2bac4f69e4baec0a3","changeType":"added","vimid":"core-dc_RegionOne","vmid":"e52ee6658768476084c7a97af26e39cf5622630bfe3f41a2bac4f69e4baec0a3","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_IPUSDU_A_00640069","vduid":"e52ee6658768476084c7a97af26e39cf5622630bfe3f41a2bac4f69e4baec0a3"},{"vnfcInstanceId":"30adc3ab8698479c9acd9e532c9f0d5a8a6c8c808f6549be824375c33639a7bb","changeType":"added","vimid":"core-dc_RegionOne","vmid":"30adc3ab8698479c9acd9e532c9f0d5a8a6c8c808f6549be824375c33639a7bb","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_SDU_A_00680071","vduid":"30adc3ab8698479c9acd9e532c9f0d5a8a6c8c808f6549be824375c33639a7bb"},{"vnfcInstanceId":"5622630bfe3f41a2bac4f69e4baec0a3a82f9c5a22e748139bd0569e52048cb9","changeType":"added","vimid":"core-dc_RegionOne","vmid":"5622630bfe3f41a2bac4f69e4baec0a3a82f9c5a22e748139bd0569e52048cb9","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_SDU_A_00690070","vduid":"5622630bfe3f41a2bac4f69e4baec0a3"},{"vnfcInstanceId":"8a6c8c808f6549be824375c33639a7bb","changeType":"added","vimid":"core-dc_RegionOne","vmid":"8a6c8c808f6549be824375c33639a7bb","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_SDU_A_0071","vduid":"8a6c8c808f6549be824375c33639a7bb"},{"vnfcInstanceId":"a82f9c5a22e748139bd0569e52048cb9","changeType":"added","vimid":"core-dc_RegionOne","vmid":"a82f9c5a22e748139bd0569e52048cb9","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_SDU_A_0070","vduid":"a82f9c5a22e748139bd0569e52048cb9"}]
}'a82f9c5a22e748139bd0569e52048cb9"}]
}'


Step 17. Verify the requests received by MockServer. e.g.:

Code Block
ubuntu@onap-robot:~/mockserverclient$ curl -X PUT "http://localhost:1080/retrieve?type=REQUESTS&format=JSON"

or a particular request by url, e.g.:

Code Block
ubuntu@onap-robot:~/mockserverclient$ curl -X PUT "http://localhost:1080/retrieve?type=REQUESTS&format=JSON" -d '{
    "path": "/controller/v2/tokens"
}'


Step 18. Verify service instance and network entries are created in A&AI


Step 19. Record resource usage of major containers with docker stats command


Code Block
ubuntu@onap-so:~$ sudo docker stats testlab_mso_1 testlab_mariadb_1 --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}" --no-stream
NAME                CPU %               MEM USAGE / LIMIT
testlab_mso_1       65.26%              3.21GiB / 7.796GiB
testlab_mariadb_1   100.44%             3.323GiB / 7.796GiB