...
Before we instantiate a service, we need to register vim and vnfm which is used to deploy vnfs.
- VIM Registration
- GVNFM Registration
For VF-C, because we use GVNFM to deploy vnfs , so you can register GVNFM in esr gui as follows:
Note: type should be gvnfmdriver which is the same with gvnfmdriver microservice
url is the msb-iag NodeIp:port
vim corresponds to cloudowner_cloudregionid which registered in step1
Package Onboarding
VF-C R3 support VNF/PNF/NS csar package upload from local csar file. VNF/PNF csar package should be uploaded first, then NS csar package can be uploaded.
...
NS Create
Code Block title Pub/Sub Test curl -X POST \ http://172.30.3.104:30280/api/nslcm/v1/ns \ -H 'Postman-Token: 27e2c576-2d9b-4753-a6b0-6262a4a7ec86' \ -H 'accept: application/json' \ -H 'cache-control: no-cache' \ -H 'content-type: application/json' \ -d '{ "context": { "globalCustomerId": "global-customer-id-test1", "serviceType": "service-type-test1" }, "csarId": "79ca81ec-10e0-44e4-bc85-ba968f345711", "nsName": "ns_vsn", "description": "description" }'
Note:
a. globalCustomerId and serviceType is defined in A&AI
b. csar Id is the NS package id which is consistent with the catalog ns package id
c. nsName is the NS nameNS Instantiate
Code Block title Pub/Sub Test curl -X POST \ http://172.30.3.104:30280/api/nslcm/v1/ns/f0b4c09f-c653-438a-b091-5218b0f806ec/instantiate \ -H 'Postman-Token: 2a9542b2-3364-4a40-8513-45e10b8ca2ce' \ -H 'accept: application/json' \ -H 'cache-control: no-cache' \ -H 'content-type: application/json' \ -d '{ "additionalParamForNs": { "sdnControllerId": "2" }, "locationConstraints": [{ "vnfProfileId": "45711f40-3f43-415b-bb45-46e5c6940735", "locationConstraints": { "vimId": "CPE-DC_RegionOne" } }] } '
Note?
a. f0b4c09f-c653-438a-b091-5218b0f806ec is the ns instance id which create in step 1 : NS create
b. locationConstraints is an array which contains all the vnfs included under NSlocationConstraints is used to define the VIM( cloudOwner_cloudRegionId) that the VNF will be deployed
vnfProfileId is the vnf descriptor id which defined in NS template under node_templates .
c. before instantiate, you should create one volumntype which called root.NS Heal
Code Block title Pub/Sub Test curl -X PUT \ http://172.30.3.104:30280/api/nslcm/v1/ns/f0b4c09f-c653-438a-b091-5218b0f806ec/heal \ -H 'Content-Type: application/json' \ -H 'Postman-Token: f18754b8-ed68-43b0-ae55-b8b8780e5c6a' \ -H 'accept: application/json' \ -H 'cache-control: no-cache' \ -d '{ "vnfInstanceId": "044b705c-e44d-4733-ab64-987f46d9b567", "cause": "restartvm", "additionalParams": { "action": "restartvm", "actionvminfo": { "vmid": "1623cd25-ae6f-4880-8132-15914367e47b", "vduid": "", "vmname": "1623cd25-ae6f-4880-8132-15914367e47b" }} }'
Note:
a. f0b4c09f-c653-438a-b091-5218b0f806ec is the ns instance id which create in step 1 : NS create
b. "vnfInstanceId": "044b705c-e44d-4733-ab64-987f46d9b567" is the VNF instanceId, we can get this from A&AI or VF-C DB
c. action only support restartvm in Casablanca release
d. actionvminfo only supports to include one vm , vmid is the vmid which is the same with the vmid in cloud.NS Terminate
Code Block title Pub/Sub Test curl -X POST \ http://172.30.3.104:30280/api/nslcm/v1/ns/f0b4c09f-c653-438a-b091-5218b0f806ec/terminate \ -H 'Postman-Token: 5190e46f-f612-432a-90d8-161ea67778b2' \ -H 'accept: application/json' \ -H 'cache-control: no-cache' \ -H 'content-type: application/json' \ -d 'gracefulTerminationTimeout: 600, terminationType: FORCEFUL '
Note:
a. f0b4c09f-c653-438a-b091-5218b0f806ec is the ns instance id which create in step 1 : NS create
b. terminateType supports FORCEFUL and GRACEFULLc. gracefulTerminationTimeout is the wait time before execute terminate.NS delete
Code Block title Pub/Sub Test curl -X DELETE \ http://172.30.3.104:30280/api/nslcm/v1/ns/f0b4c09f-c653-438a-b091-5218b0f806ec \ -H 'Postman-Token: 62b35de6-1785-40ed-8026-06d73f9770d8' \ -H 'cache-control: no-cache'
Note:
a. f0b4c09f-c653-438a-b091-5218b0f806ec is the ns instance id which create in step 1 : NS create
...