...
- see NsInstance from ETSI GS NFV-SOL 005 v2.7.1
Design
VFC design
- get nsdId, nsName and nsDescription parameter
- get a ns package by the given nsdId from ETSI Catalog Manager
- check if ns instance exists from the NFVO_NSINST database table
- if it exists, log it exists
- create an ns instance id (uuid) and store it with other nsd info, status (NOT_INSTANTIATED) to NFVO_NSINST database table
- create an ns instance record (service-instance-id, service-instance-name, service-type, service-role) in AAI
- return 201 Created with the NsInstance
- Send NsIdentifierCreationNotification
Proposal
TBD
Instantiate NS
Request
InstantiateRequest
...
NsLcmOperationOccurrenceNotification (Start/Processing/Completed)
Design
VFC Design
- Get an ns instance id from the parameter
- create a job for the ns instance id
- create an occ id for the ns instance id
- Update the ns instance id row of the NFVO_NSINST database table for status (= INSTANTIATING)
- get a ns instance data from the NFVO_NSINST for the ns instance id
- get and store additional Parameters for NS
- get an VIM id from the cloud owner and cloud region parameters
- get an VNF VIM from he location constraints
- set the job status with 'Start Query NSD'
- get and parse a nsd for the ns package id
- modify nsd state
- get VNF list from the nsd
- for each VNF,
- get vnfd_id, vnfm_type, vimId, s_vimId (with "cloud_owner"_"cloud_regionid")
- select VNFM by leveraging AAI ESR
- store VNF pararms in collection, with vnf info including vnfmInstanceId
- set vl vim id
- for each VNF
- if VNF has dependencies, for each dependency
- add VNF properties and id into vl_vnf array
- if VNF has dependencies, for each dependency
- for each VLs
- get vnfdId and vimId
- add vimId into VL array
- for each VNF
- update NFVO_NSINST with the nsd model
- get PNF parameters
- get VNF parameters (from VNF params above)
- set up Plan Input with job_id, ns_inst_id, tosca plan, additional NS params, VNF params, PNF params)
- start workflows with the job_id, ns_inst, plan_input, occ_id)
- get service template id from ETSI Catalog Manager
- get process id from ETSI Catalog Manager
- workflow run with data (process id, params = plan input)
- createVL
- createVNF
- createSFC (Service Function Chain)
Proposal
TBD
Terminate / Delete NS
The following diagram depicts the Terminate / Delete NS.
...
NsLcmOperationOccurrenceNotification (Start/Processing/Completed)
Design
VFC Design
- Get an ns_inst_d, job_id and request_data from the parameters
- if there no matching ns_inst_id from the NFVO_NSINT database table, consider there is nothing to terminate, and return
- set job status as "Starting terminate..."
- update the ns_inst_id row from the NFVO_NSINST database table with the status = TERMINATING
- cancel SFC list
- get sfc inst array
- for each sfc inst
- DELETE /api/nslcm/v1/ns/sfcs/{instId}
- cancel VNF list
- get vnf inst list array from NFVO_NFINST
- for each vnf inst
- delete_vnf (nf_instid)
- POST /api/nslcm/v1/ns/terminateVnf/{instId}
- delete_vnf (nf_instid)
- for each vnf inst
- get vnf inst list array from NFVO_NFINST
- cancel VL list
- get VL Inst array
- for each VL inst
- DELETE /api/nslcm/v1/ns/vls/{instId}
- cancel PNF list
- get pnf inst array
- for each pnf inst
- DELETE /api/nslcm/v1/pnfs/{instId}
- modify the ns_inst_id row state from the NFVO_NSINST database table
- modify NFVO_NSINST status = NOT_INSTANTIATED
- set job status = NS terminate ends
- Update NsLcmOpOCC to COMPLETED
- Send nsLcmOperationOccurrenceNotification
Proposal
TBD
Delete NS
Request
- No; just parameter nsInstanceId
...
- Send NsIdentifierDeletionNotification
Design
VFC_Design
- get ns_inst_id
- delete ns instance in AAI
- get ns_instances from NFVO_NSINST database table
- invoke delete_ns_aai with global_customer_id, service_type, ns_inst_id, resource_version
- formulate the resource url with parameters
- call_aaI (resource, "DELETE")
- delete ns_inst_id row from the NFVO_NSINST database table
- delete ns_inst_id row from the NFVO_INPutParamMapping database table
- delete ns_inst_id row from the DefPkgMapping database table
- delete ns_inst_id row from the ServiceBaseInfo database table
- return 204 No Content
- Send NsIdentifierDeletionNotification
Proposal
TBD