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

Compare with Current View Page History

« Previous Version 8 Next »

Steps to set up simulators for VoLTE use case


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


Step 2. Install MockServer docker in Robot VM

>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

PE1
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>
PE2
URL: 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 3. Use Postman to register SDN WAN controller for underlay network (you can do this in Portal ESR app too)

WAN SDN Controller
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 4. Use Postman to register 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


>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 = "http://10.0.14.1:80/aai/v11"


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

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

Mock server script to simulate SDN controllers and huawei VNFM driver
curl -v -X PUT "http://localhost:1080/expectation" -d '{
    "httpRequest": {
        "method": "POST",
        "path": "/controller/v2/tokens"
    },
    "httpResponse": {
        "statusCode": 200,
        "headers": {
            "content-type": ["application/json"]
        },
	"body": {
	     "not": false,
     	     "type": "JSON",
     	     "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",
        "path": "/restconf/data/huawei-ac-net-l3vpn-svc:l3vpn-svc-cfg/vpn-services"
    },
    "httpResponse": {
        "statusCode": 201
    },
    "times" : {
        "remainingTimes" : 2,
        "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": {
        "method": "POST",
        "path": "/api/huaweivnfmdriver/v1/a0400010-11d7-4875-b4ae-5f42ed5d3a85/vnfs"
    },
    "httpResponse": {
        "statusCode": 200,
        "headers": {
            "content-type": ["application/json"]
        },
        "body": {
             "not": false,
             "type": "JSON",
             "json": "{\"vnfInstanceId\":\"fa3dca847b054f4eb9d3bc8bb9e5eec9\",\"jobId\":\"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": ["0"]
	}
    },
    "httpResponse": {
        "statusCode": 200,
        "headers": {
            "content-type": ["application/json"]
        },
        "body": {
             "not": false,
             "type": "JSON",
             "json": "{\"jobId\":\"fa3dca847b054f4eb9d3bc8bb9e5eec9\",\"responsedescriptor\":{\"progress\":\"50\",\"status\":\"processing\",\"errorCode\":null,\"responseId\":\"0\"}}"
        }
    },
    "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


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

VNFM Status Notification Message
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":[{"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":"9b5080d645684ba0b16a8eb38d12d136","changeType":"added","vimid":"core-dc_RegionOne","vmid":"9b5080d645684ba0b16a8eb38d12d136","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_SPU_C_0067","vduid":"9b5080d645684ba0b16a8eb38d12d136"},{"vnfcInstanceId":"c91a54f15e654fde97895efe21b1b032","changeType":"added","vimid":"core-dc_RegionOne","vmid":"c91a54f15e654fde97895efe21b1b032","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_SPU_C_0066","vduid":"c91a54f15e654fde97895efe21b1b032"},{"vnfcInstanceId":"c800312379d04243a64d361142fe366d","changeType":"added","vimid":"core-dc_RegionOne","vmid":"c800312379d04243a64d361142fe366d","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_IPU_A_0065","vduid":"c800312379d04243a64d361142fe366d"},{"vnfcInstanceId":"e52ee6658768476084c7a97af26e39cf","changeType":"added","vimid":"core-dc_RegionOne","vmid":"e52ee6658768476084c7a97af26e39cf","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_IPU_A_0064","vduid":"e52ee6658768476084c7a97af26e39cf"},{"vnfcInstanceId":"30adc3ab8698479c9acd9e532c9f0d5a","changeType":"added","vimid":"core-dc_RegionOne","vmid":"30adc3ab8698479c9acd9e532c9f0d5a","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"},{"vnfcInstanceId":"a82f9c5a22e748139bd0569e52048cb9","changeType":"added","vimid":"core-dc_RegionOne","vmid":"a82f9c5a22e748139bd0569e52048cb9","vmname":"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":"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":"9b5080d645684ba0b16a8eb38d12d136","changeType":"added","vimid":"core-dc_RegionOne","vmid":"9b5080d645684ba0b16a8eb38d12d136","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_SPU_C_0067","vduid":"9b5080d645684ba0b16a8eb38d12d136"},{"vnfcInstanceId":"c91a54f15e654fde97895efe21b1b032","changeType":"added","vimid":"core-dc_RegionOne","vmid":"c91a54f15e654fde97895efe21b1b032","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_SPU_C_0066","vduid":"c91a54f15e654fde97895efe21b1b032"},{"vnfcInstanceId":"c800312379d04243a64d361142fe366d","changeType":"added","vimid":"core-dc_RegionOne","vmid":"c800312379d04243a64d361142fe366d","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_IPU_A_0065","vduid":"c800312379d04243a64d361142fe366d"},{"vnfcInstanceId":"e52ee6658768476084c7a97af26e39cf","changeType":"added","vimid":"core-dc_RegionOne","vmid":"e52ee6658768476084c7a97af26e39cf","vmname":"vnfab40e6ba-df1f-458c-94c5-a45_IPU_A_0064","vduid":"e52ee6658768476084c7a97af26e39cf"},{"vnfcInstanceId":"30adc3ab8698479c9acd9e532c9f0d5a","changeType":"added","vimid":"core-dc_RegionOne","vmid":"30adc3ab8698479c9acd9e532c9f0d5a","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"},{"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"}]
}'
  • No labels