This chapter provides reference information about the Oracle Communications Network Service Orchestration RESTful API resources.
The Network Service Orchestration RESTful API requests provide the northbound interface to Network Service Orchestration. Operation support systems (OSS) and VNF managers query the resource inventory for data.
The RESTful API requests enable you to perform various functions by using a RESTful API client.
The root URL for the Network Service Orchestration RESTful API resources is:
HTTP connection: http://nso_host:port/ocnso/1.1
SSL connection: https://nso_host:ssl_port/ocnso/1.1
where:
nso_host is the name of the host on which Oracle Communications Unified Inventory Management (UIM) is installed
port is the port number of the machine on which UIM is installed
ssl_port is the SSL port number of the machine on which UIM is installed
To access the Network Service Orchestration RESTful API resources, in your RESTful API client, choose Basic Authentication and specify the user name and password of the machine on which UIM is installed.
Note:
If you use HTTPS-enabled OpenStack Keystone RESTful APIs, add the Certified Authority certificate to the TrustStore that your application server uses. If OpenStack Keystone is configured with self-signed certificate, then add the self-signed certificate to the TrustStore of the application server. See the Oracle WebLogic Server documentation for information about configuring the TrustStore.The ora_nso_webservices.war file is included in the inventory.ear file and is deployed once the UIM installation is complete.
Table 7-1 lists the Network Service Orchestration RESTful API requests provided, along with the method, resource and description for each. This table is ordered first by entity and then by the method with the order of POST, PUT, GET and DELETE.
Table 7-1 Network Service Orchestration RESTful API Resources
Request | Method | Resource | Description |
---|---|---|---|
POST |
/ocnso/1.1/vim |
Registers the IP address, port, user name and password of the Virtual Infrastructure Manager (VIM) with Network Service Orchestration. |
|
POST |
/ocnso/1.1/vim/vimId/discovery?infoLevel=vim_information |
Discovers the resources of the registered VIM and adds them to inventory. |
|
PUT |
/ocnso/1.1/vim/vimId |
Updates the attributes (for example IP address, port, user name, password, and project name) of an existing VIM in Network Service Orchestration. |
|
GET |
/ocnso/1.1/vim/vimId |
Returns information about a VIM that is registered with Network Service Orchestration. |
|
POST |
/ocnso/1.1/ns |
Instantiates a network service and its constituent Virtual Network Functions (VNFs). |
|
POST |
/ocnso/1.1/ns/networkServiceId/scale/vnfId |
Scales a VNF in a network service. |
|
GET |
/ocnso/1.1/ns/nsdName=nsdName |
Returns a list of all active network services that are created based on the given network service descriptor. |
|
GET |
/ocnso/1.1/ns/networkServiceId |
Returns details about a network service. |
|
GET |
/ocnso/1.1/ns/networkServiceId/vnfs |
Returns details about VNFs in a network service. |
|
GET |
/ocnso/1.1/ns/networkServiceId/networks |
Returns details about networks in a network service. |
|
GET |
/ocnso/1.1/ns/networkServiceId/endpoints |
Returns details about endpoints in a network service. |
|
GET |
/ocnso/1.1/ns/networkServiceId/status |
Returns status information of a network service. |
|
DELETE |
/ocnso/1.1/ns/networkServiceId |
Terminates a network service and the constituent VNFs. |
|
POST |
/ocnso/1.1/ns/networkServiceId/vnfs |
Adds VNFs to a network service. |
|
DELETE |
/ocnso/1.1/ns/networkServiceId/vnfs |
Terminates a VNF in a network service. |
|
POST |
/ocnso/1.1/vnf/vnfId/heal?action=action |
Heals a VNF by rebooting or replacing the VM. Available values for the action parameter are:
|
|
POST |
/ocnso/1.1/vnf/configure |
Configures the capabilities of a VNF service. |
|
PUT |
/ocnso/1.1/vnf/vnfId/upgrade/vnfVersion |
Upgrades the software image version of a VNF. |
|
GET |
/ocnso/1.1/vnf/vnfId |
Returns details about a VNF. |
|
GET |
/ocnso/1.1/vnf/vnfId/status |
Returns status information about a VNF. |
|
POST |
/ocnso/1.1/pnfs |
Registers or creates a Physical Network Function (PNF) in inventory. |
|
PUT |
/ocnso/1.1/pnfs/pnfId |
Updates an existing registered PNF. |
|
GET |
/ocnso/1.1/pnfs?descriptorName=pnfdName |
Returns the list of PNFs given the input descriptor name. |
|
GET |
/ocnso/1.1/pnfs/pnfId |
Returns the PNF details given the input PNF identifier. |
|
DELETE |
/ocnso/1.1/pnfs/pnfId |
Unregisters an existing PNF. |
|
POST |
/ocnso/1.1/ems |
Registers or creates an Element Management System (EMS) in inventory. |
|
PUT |
/ocnso/1.1/ems/emsId |
Updates an existing registered EMS. |
|
GET |
/ocnso/1.1/ems?descriptorName=emsdName |
Returns the list of EMSs given the input descriptor name. |
|
GET |
/ocnso/1.1/ems/emsId |
Returns the EMS details given the input EMS identifier. |
|
DELETE |
/ocnso/1.1/ems/emsId |
Unregisters an existing EMS. |
|
GET |
/ocnso/1.1/nsd |
Returns a list of all network service descriptors that are deployed in Network Service Orchestration. |
|
GET |
/ocnso/1.1/nsd/nsdName |
Returns details about a network service descriptor. |
|
GET |
/ocnso/1.1/nsd/nsdName/vnfds |
Returns a list of VNF descriptors in a network service descriptor. |
|
GET |
/ocnso/1.1/nsd/nsdName/flavors |
Returns a list of all constituent service flavors that are defined for a network service descriptor. |
|
GET |
/ocnso/1.1/vnfd/vnfdName |
Returns details about a VNF descriptor. |
|
GET |
/ocnso/1.1/vnfd/vnfdName/versions |
Returns a list of supported versions for a VNF descriptor. |
|
GET |
/ocnso/1.1/vnfd/vnfdName/flavors |
Returns a list of deployment flavors that are defined for a VNF descriptor. |
This section describes the fields and possible values for the responses returned from Network Service Orchestration RESTful API calls.
Table 7-2 describes the fields that are contained in a response.
Table 7-2 Fields in the Response
Response Field | Description |
---|---|
status |
This field contains the status of the request processing. The following are the valid values:
|
code |
This field contains the HTTP status code value. Table 7-3 describes the possible values. |
message |
This optional field contains a high-level error message and is present only for a failed request. |
data |
This optional field contains the response information from the request and it only exists for successful requests. This field may not be relevant to all requests. |
exception |
This optional field contains information when an exception occurs for a failed request. |
errors |
This optional field contains an array of information when an error occurs for a failed request. |
warnings |
This optional field contains an array of information when a warning occurs for a failed request. |
Example 7-1 shows a success response for a network service instantiation request. The data portion contains the operation-specific information and message about the successful request.
Example 7-1 Sample Response Snippet on Success
{ "status": "SUCCESS", "code": "202", "message": "[INV-430902] Network Service instantiation is in progress.", "data": { "id": "1125001", "descriptorName": "NPaaS_NSD", "name": "NSO_NPassService_1", "status": "PENDING", "businessInteractionId": "1275003", "businessInteractionStatus": "IN_PROGRESS" . . . } }
Example 7-2 shows a response to a failed request.
Example 7-2 Sample Response on Failure
{ "status": "FAILURE", "code": "500", "message": "No Network service exists with provided Network Service id 100.", "errors": [], "exception": { "code": "INV-430355", "message": "No Network service exists with provided Network Service id 100." } }
Table 7-3 describes the HTTP response status codes for the RESTful API resources.
Table 7-3 HTTP Response Status Codes for the RESTful API Resources
Response Code | Description |
---|---|
200 OK |
The request is successful. The information returned in the response depends on the method used in the request. For example:
|
202 Accepted |
The request has been accepted for processing, but processing has not yet started. The request might or might not eventually be acted upon; it might be disallowed when the request is processed. |
400 Bad Request |
The request could not be understood by the server due to incorrect syntax. Correct the syntax before repeating the request. |
401 Unauthorized |
The request could not be authorized by the server due to invalid authentication or the absence of a valid user name and password. All requests require valid user authentication. See "About the Network Service Orchestration RESTful APIs" for more information. |
404 Not Found |
The server has not found a matching request or URI. |
500 Internal Server Error |
The server encountered an unexpected condition that prevented it from fulfilling the request. |
The following sections provide sample JSON requests and responses for the Network Service Orchestration RESTful API resources.
Registers details about the VIM with Network Service Orchestration such as the following:
Host IP address
Port
User name
Password
This resource results in the creation of a VIM.
POST
http://nso_host:port/ocnso/1.1/vim
{
"id": "VimID_1",
"name": "OpenStack VIM-1",
"host": "192.0.2.251",
"port": "12345",
"userName": "nso",
"pswd": "password",
"projectName": "test",
"domainName": "default",
"version": "3",
"sslEnabled": "false",
"type": "OpenStack",
"cpuOvercommitRatio": "15",
"memoryOvercommitRatio": "1.5",
"diskOvercommitRatio": "1.0"
}
{ "status": "SUCCESS", "code": "200", "message": "[INV-430914] OpenStack VIM-1 is successfully registered with NSO." }
Discovers the resources that are available on the VIM. For example, it creates the following resources as custom objects:
Availability zones
Flavors
Hosts
Virtual Data Center (VDC)
POST
http://nso_host:port/ocnso/1.1/vim/vimId/discovery?infoLevel=vimInformation
where:
vimId is the identifier of the VIM whose resources you want to discover
vimInformation is the level of information about the VIM that you want to receive in the response. The values for infoLevel are:
summary: Include a summary of the VIM resources.
details: Include complete details about all the VIM resources.
This API does not require any request parameters.
This is a sample response when the infoLevel parameter in the URL is set to summary:
{ "status": "SUCCESS", "code": "200", "data": { "summary": { "Number of Subnets": 80, "Number of Flavors": 26, "Number of Hosts": 4, "Number of Networks": 80, "Number of Zones": 3 } } }
The following is a sample response when the infoLevel parameter in the URL is set to details:
{ "data": { "availabilityZones": [ { "zone": "CustomerTermination", "hosts": [ "compute2" ] }, { "zone": "nova", "hosts": [ "compute4" ] } ], "networks": [ { "network": "ext-net", "subnets": [ "ext-subnet" ] }, { "network": "QANetwork", "subnets": [ "QASubnet" ] } ], "flavors": [ "m1.tiny", "m1.small", "m1.large" ] } }
Updates details about an existing VIM in Network Service Orchestration. For example, you can update the following attributes:
Host IP address
Port
User name
Password
Project name
The update persists the new attribute values to the inventory database.
PUT
http://nso_host:port/ocnso/1.1/vim/vimId
where vimId is the identifier of the VIM that you want to update.
{
"host": "192.0.2.252",
"port": "12345",
"userName": "nso",
"pswd": "password",
"projectName": "test",
"domainName": "default",
"version": "3",
"sslEnabled": "false",
"cpuOvercommitRatio": "15",
"memoryOvercommitRatio": "1.5",
"diskOvercommitRatio": "1.0"
}
{ "status": "SUCCESS", "code": "200", "message": "[INV-430921] OpenStack VIM-2 updated successfully." }
Retrieves the details of a VIM that is registered in inventory.
GET
http://nso_host:port/ocnso/1.1/vim/vimId
where vimId is the identifier of the VIM.
{
"status": "SUCCESS",
"code": "200",
"data": {
"id": "OpenStack",
"name": "OpenStack",
"host": "192.0.2.249",
"port": "8001",
"userName": "admin",
"pswd": "password",
"projectName": "admin",
"domainName": "default",
"type": "OpenStack",
"version": "3",
"sslEnabled": false,
"cpuOvercommitRatio": "15",
"memoryOvercommitRatio": "1.5",
"diskOvercommitRatio": "1.0"
}
}
Creates a network service, the related resources, and starts the VNFs in the network service. This resource can optionally include PNFs. See the additional sample request and response including PNFs.
POST
http://nso_host:port/ocnso/1.1/ns
{ "name": "NSO_NPassService_1", "descriptorName": "NPaaS_NSD", "flavorName": "Checkpoint", "vnfs": [ { "name": "NSO_CheckPointVNF_1", "flavorName": "checkpoint", "descriptorName": "Checkpoint_NG_FW_VNFD", "version": "1.0" } ], "endPoints": [ { "name": "Test1103", "parameters": [ { "name": "ipAddress", "value": "192.0.2.250" }, { "name": "vlanId", "value": "101" }, { "name": "serviceLocation", "value": "Chicago 04" } ] } ] }
{ "status": "SUCCESS", "code": "202", "message": "[INV-430902] Network Service instantiation is in progress.", "data": { "id": "15", "name": "NSO_NPassService_1", "descriptorName": "NPaaS_NSD", "status": "PENDING", "businessInteractionId": "30", "businessInteractionStatus": "IN_PROGRESS", "serviceDeploymentFlavorName": "Juniper", "parameters": [ { "name": "vimId", "value": "ONAP21" }, { "name": "dataCenterName", "value": "ONAP21" } ], "networks": [ { "name": "15_Data_IN(ONAP21)", "status": "PENDING_REFERENCE" }, { "name": "15_Data_OUT(ONAP21)", "status": "PENDING_REFERENCE" }, { "name": "nfvo-poc3-mgmt(ONAP21)", "status": "PENDING_REFERENCE" } ], "endpoints": [ { "id": "14", "name": "NSO_SGPcnsmr2", "descriptorName": "NSSubscriber", "status": "Pending Reference" } ], "vnfs": [ { "id": "2", "name": "NSO_NPassService_VNF1", "status": "Pending Assign", "descriptorName": "Juniper_vSRX_VNFD", "version": "1.0", "imageName": "vsrx-12.1X47-D20.7-npaas-v0.3", "availabilityZoneName": "CustomerTermination", "dataCenterName": "ONAP21", "deploymentFlavorInfo": { "name": "vsrx.small", "vcpus": 2, "memory": "2 GB", "disk": "20 GB" } } ] } }
Sample Request with VNFs and PNFs
{ "name": "NSO_NPassService_2_with_PNFs", "descriptorName": "ResidentialGateway_NSD", "flavorName": "RGW", "vnfs": [ { "name": "NSO_NPassService_VNF", "flavorName": "vsrx.small", "descriptorName": "Juniper_vSRX_VNFD", "version": "1.0" } ], "pnfs": [ { "id": "675001", "descriptorName": "Cisco_xRV_PNFD" } ], "endPoints": [ { "name": "NSO_EP_2", "parameters": [ { "name": "ipAddress", "value": "192.0.2.231" }, { "name": "vlanId", "value": "101" }, { "name": "serviceLocation", "value": "CityPQ03" } ] } ] }
Sample Response with VNFs and PNFs
{
"status": "SUCCESS",
"code": "202",
"message": "[INV-430902] Network Service instantiation is in progress.",
"data": {
"id": "300085",
"name": "NSO_NPassService_2_with_PNFs",
"descriptorName": "ResidentialGateway_NSD",
"status": "PENDING",
"businessInteractionId": "150091",
"businessInteractionStatus": "IN_PROGRESS",
"serviceDeploymentFlavorName": "RGW",
"parameters": [
{
"name": "vimId",
"value": "OpenStack"
},
{
"name": "dataCenterName",
"value": "OpenStack"
}
],
"networks": [
{
"name": "300085_Data1(OpenStack)",
"status": "PENDING_REFERENCE"
},
{
"name": "nfvo-poc3-mgmt(OpenStack)",
"status": "PENDING_REFERENCE"
},
{
"name": "300085_Data2(OpenStack)",
"status": "PENDING_REFERENCE"
}
],
"endpoints": [
{
"id": "450002",
"name": "NSO_EP_2",
"descriptorName": "NSSubscriber",
"status": "Pending Reference"
}
],
"vnfs": [
{
"id": "675029",
"name": "NSO_NPassService_VNF",
"status": "Pending Assign",
"descriptorName": "Juniper_vSRX_VNFD",
"version": "1.0",
"imageName": "vsrx-12.1X47-D20.7-npaas-v0.3",
"availabilityZoneName": "nova",
"dataCenterName": "OpenStack",
"deploymentFlavorInfo": {
"name": "vsrx.small",
"vcpus": 2,
"memory": "2 GB",
"disk": "20 GB"
},
"securityGroups": "sgall,default"
}
],
"pnfs": [
{
"id": "675001",
"name": "xtv862",
"descriptorName": "Cisco_xRV_PNFD",
"ipAddress": "192.0.2.155",
"userName": "user",
"pswd": "password",
"sslEnabled": false,
"sshKey": "",
"parameters": [
{}
]
}
]
}
}
Scales a network service by either cloning a VNF instance or removing an existing VNF.
POST
http://nso_host:port/ocnso/1.1/ns/networkServiceId/scale/vnfId?action=action
where:
networkServiceId is the required identifier of the network service for the VNF.
vnfId is the required identifier of the VNF to scale.
action is the scale action. Specify one of the following values:
scale-in: Removes the specified VNF.
scale-out: Clones the specified VNF. This is the default action if the action is not specified.
This API does not require a request body.
{ "status": "SUCCESS", "code": "202", "message": "[INV-431002] VNF scale operation is in progress.", "data": { "id": "18", "name": "NSO_NPassService_1", "descriptorName": "NPaaS_NSD", "status": "IN_SERVICE", "vnfs": [ { "id": "5", "name": "Juniper_vSRX_VNFD_1471441956301", "status": "Pending Assign", "descriptorName": "Juniper_vSRX_VNFD" } ] } }
Retrieves the list of active network services that are related to the input network service descriptor.
GET
http://nso_host:port/ocnso/1.1/ns?nsdName=nsdName
where nsdName is the name of the network service descriptor.
{ "status": "SUCCESS", "code": "200", "data": [ { "id": "1050001", "descriptorName": "NPaaS_NSD", "name": "NSO_NPassService_1", "status": "IN_SERVICE" }, { "id": "1050005", "descriptorName": "NPaaS_NSD", "name": "NSO_NPassService_2", "status": "IN_SERVICE" }, { "id": "1125001", "descriptorName": "NPaaS_NSD", "name": "NSO_NPassService_3", "status": "IN_SERVICE" } ] }
Retrieves the details of a network service.
GET
http://nso_host:port/ocnso/1.1/ns/networkServiceId
where networkServiceId is the identifier of the network service whose details you want to retrieve.
{ "status": "SUCCESS", "code": "200", "data": { "id": "22", "name": "NPassService_Juniper55_Service", "descriptorName": "NPaaS_NSD", "status": "IN_SERVICE", "businessInteractionId": "47", "businessInteractionStatus": "COMPLETED", "serviceDeploymentFlavorName": "Juniper", "parameters": [ { "name": "vimId", "value": "ONAP21" }, { "name": "dataCenterName", "value": "ONAP21" } ], "networks": [ { "name": "22_Data_OUT(ONAP21)", "status": "REFERENCED" }, { "name": "22_Data_IN(ONAP21)", "status": "REFERENCED" }, { "name": "nfvo-poc3-mgmt(ONAP21)", "status": "REFERENCED" } ], "endpoints": [ { "id": "14", "name": "NSO_SGPcnsmr2", "descriptorName": "NSSubscriber", "status": "Referenced" } ], "vnfs": [ { "id": "6", "name": "Juniper_VNF_6", "status": "Assigned", "descriptorName": "Juniper_vSRX_VNFD" } ] } }
Retrieves the details about the VNFs in a network service.
GET
http://nso_host:port/ocnso/1.1/ns/networkServiceId/vnfs
where networkServiceId is the identifier of the network service for the VNFs.
{ "status": "SUCCESS", "code": "200", "data": { "id": "22", "name": "29_1.3_AMns_Service", "descriptorName": "NPaaS_NSD", "status": "IN_SERVICE", "vnfs": [ { "id": "6", "name": "VNF_1", "status": "Assigned", "descriptorName": "Juniper_vSRX_VNFD", "vmStatus": "ACTIVE", "version": "1.0", "externalId": "6e941ad7-c45f-4dfb-bf26-2bb50234fadc", "imageName": "vsrx-12.1X47-D20.7-npaas-v0.3", "availabilityZoneName": "CustomerTermination", "dataCenterName": "ONAP21", "host": "b73c2706400313820fd7db7086d90025ed6c2ab95a558d589c578c0a", "deploymentFlavorInfo": { "name": "vsrx.small", "vcpus": 2, "memory": "2 GB", "disk": "20 GB" }, "connectionPoints": [ { "id": "6-1", "name": "CP01", "ipAddress": { "address": "192.0.2.231", "network": "22_Data_IN(ONAP21)", "externalId": "c83177ff-632e-4a19-97a7-3539c96c3d4c" } }, { "id": "6-2", "name": "CP02", "ipAddress": { "address": "192.0.2.232", "network": "22_Data_OUT(ONAP21)", "externalId": "f937cdc6-11bb-42b7-9b9e-f9685f7b71e2" } }, { "id": "6-3", "name": "CP03", "ipAddress": { "address": "192.0.2.233", "network": "nfvo-poc3-mgmt(ONAP21)", "externalId": "c5272351-905d-47ca-b7ac-0f18f01d724d" } } ], "capabilities": [ { "serviceId": "24", "serviceName": "PRAYAVAR_Aug17_06_Capabilities_24", "serviceStatus": "PENDING_ASSIGN", "serviceDescriptorName": "Juniper_vSRX_Capabilities_ServiceDescriptor", "businessInteractionId": "50" } ] } ] } }
Retrieves the details about the networks within a network service.
GET
http://nso_host:port/ocnso/1.1/ns/networkServiceId/networks
where networkServiceId is the identifier of the network service.
{ "status": "SUCCESS", "code": "200", "data": { "id": "750001", "name": "NSO_NetworkService", "descriptorName": "NPaaS_NSD", "status": "IN_SERVICE", "networks": [ { "name": "750001_Data_IN(OpenStack)", "id": "750001_Data_IN(OpenStack)", "externalId": "b246b28c-9e98-490f-b046-4601da09a28a", "status": "REFERENCED", "subnets": [ { "startIP": "192.0.2.209", "prefix": "27", "externalId": "d8bb391a-f216-4fc2-8465-fec0cccbb5ef" } ] }, { "name": "nfvo-poc3-mgmt(OpenStack)", "id": "nfvo-poc3-mgmt(OpenStack)", "externalId": "109ae4cf-3cea-4729-a24f-957c4ed6d3c6", "status": "REFERENCED", "subnets": [ { "startIP": "192.0.2.208", "prefix": "24", "externalId": "fb791563-7c8b-454c-a1eb-87399e6837dc" } ] }, { "name": "750001_Data_OUT(OpenStack)", "id": "750001_Data_OUT(OpenStack)", "externalId": "ba96e7e3-4080-49c8-aa4d-e9af6e5ab2e9", "status": "REFERENCED", "subnets": [ { "startIP": "192.0.2.207", "prefix": "27", "externalId": "f88688ee-aecb-47fc-bb58-e48c6a277eb9" } ] } ] } }
Retrieves the details about the endpoints in a network service.
GET
http://nso_host:port/ocnso/1.1/ns/networkServiceId/endpoints
where networkServiceId is the identifier of the network service.
{ "status": "SUCCESS", "code": "200", "data": { "id": "22", "name": "NPaaS_Service", "descriptorName": "NPaaS_NSD", "status": "IN_SERVICE", "endpoints": [ { "id": "14", "name": "NSO_SGPcnsmr2", "descriptorName": "NSSubscriber", "ipAddress": "192.0.2.218", "forwardingGraphDescriptorName": "Data", "status": "Referenced", "serviceLocation": "MTRLPQ03" } ] } }
Retrieves the status information for a network service.
GET
http://nso_host:port/ocnso/1.1/ns/networkServiceId/status
where networkServiceId is the identifier of the network service whose status information you want to retrieve.
{ "status": "SUCCESS", "code": "200", "data": { "id": "22", "name": "Sample NS", "descriptorName": "NPaaS_NSD", "status": "IN_SERVICE", "businessInteractionId": "47", "businessInteractionStatus": "COMPLETED", "networks": [ { "name": "22_Data_OUT(ONAP21)", "status": "REFERENCED" }, { "name": "22_Data_IN(ONAP21)", "status": "REFERENCED" }, { "name": "nfvo-poc3-mgmt(ONAP21)", "status": "REFERENCED" } ], "endpoints": [ { "id": "14", "name": "NSO_smr2", "descriptorName": "NSSubscriber", "status": "Referenced" } ], "vnfs": [ { "id": "6", "name": "VNF-1_06", "status": "Assigned", "descriptorName": "Juniper_vSRX_VNFD", "vmStatus": "ACTIVE", "externalId": "6e941ad7-c45f-4dfb-bf26-2bb50234fadc" } ] } }
Terminates a network service. This API undeploys the constituent VNFs in the network service and releases all the resources that were allocated to the service.
DELETE
http://nso_host:port/ocnso/1.1/ns/networkServiceId
where networkServiceId is the identifier of the network service that you want to terminate.
This API does not require a request body. Specify the network service identifier in the URL.
{ "status": "SUCCESS", "code": "202", "message": "[INV-430907] Network Service termination is in progress.", "data": { "id": "750001", "name": "NSO_NPassService_1", "descriptorName": "NPaaS_NSD", "status": "PENDING_DISCONNECT", "businessInteractionId": "1275001", "businessInteractionStatus": "IN_PROGRESS", "serviceDeploymentFlavorName": "Juniper", "parameters": [ { "name": "vimId", "value": "OpenStack" }, { "name": "flavorName", "value": "Juniper" }, { "name": "dataCenterName", "value": "OpenStack" } ], "networks": [ { "name": "750001_Data_IN(OpenStack)", "status": "PENDING_UNREFERENCE" }, { "name": "nfvo-poc3-mgmt(OpenStack)", "status": "PENDING_UNREFERENCE" }, { "name": "750001_Data_OUT(OpenStack)", "status": "PENDING_UNREFERENCE" } ], "vnfs": [ { "id": "675001", "name": "Juniper VNF_10", "status": "Pending Unassign", "descriptorName": "Juniper_vSRX_VNFD", "vmStatus": "ACTIVE", "version": "1.0", "externalId": "db788029-e3cc-4651-bab7-da2511ff6e9b", "imageName": "vsrx-12.1X47-D20.7-npaas-v0.3", "availabilityZoneName": "CustomerTermination", "dataCenterName": "ONAP21", "host": "b73c2706400313820fd7db7086d90025ed6c2ab95a558d589c578c0a", "deploymentFlavorInfo": { "name": "vsrx.small", "vcpus": 2, "memory": "2 GB", "disk": "20 GB" } } ], "endpoints": [ { "id": "1", "name": "NSO_EP_2", "descriptorName": "NSSubscriber", "status": "PENDING_UNREFERENCE" } ] } }
Adds new VNFs to an existing network service.
POST
http://nso_host:port/ocnso/1.1/ns/networkServiceId/vnfs
where networkServiceId is the identifier of the existing network service to add the VNF to.
[ { "name": "VNF1", "flavorName": "vsrx.small", "descriptorName": "Juniper_vSRX_VNFD", "version": "1.0" } ]
{ "status": "SUCCESS", "code": "202", "message": "[INV-430903] Adding VNF to Network Service is in progress.", "data": { "id": "750001", "name": "NSO_NPassService_1", "descriptorName": "NPaaS_NSD", "status": "IN_SERVICE", "vnfs": [ { "id": "675004", "name": "VNF1", "status": "Pending Assign", "descriptorName": "Juniper_vSRX_VNFD" } ] } }
Terminate a VNF in an existing network service and undeploys it in the VIM.
DELETE
http://nso_host:port/ocnso/1.1/ns/networkServiceId/vnfs
where networkServiceId is the identifier of the existing network service for the VNF.
[ { "id": "675004" } ]
The input id is the identifier of the VNF to terminate, represented as a logical device in UIM.
{ "status": "SUCCESS", "code": "202", "message": "[INV-430904] Deleting VNF from Network Service is in progress.", "data": { "id": "450002", "name": "NSO_NPassService_1", "descriptorName": "NPaaS_NSD", "status": "IN_SERVICE", "vnfs": [ { "id": "675004", "name": "VNF1", "status": "Pending Unassign", "descriptorName": "Juniper_vSRX_VNFD" } ] } }
Heals a VNF by either rebooting or replacing the virtual machine on which the VNF is deployed.
POST
http://nso_host:port/ocnso/1.1/vnf/vnfId/heal?action=action
where:
vnfId is the required identifier of the VNF.
action is the optional action that you want to perform on the VNF. Specify one of the following values:
reboot: Reboots the virtual machine on which the VNF is deployed. This is the default action if the action is not specified.
replace: Undeploys the existing VNF and deploys a new VNF with the same attributes.
This API does not require a request body.
The following is a sample response when the action parameter in the URL is set to reboot:
{ "status": "SUCCESS", "code": "200", "message": "VNF has been rebooted successfully.", "data": { "id": "4", "name": "VNF_05", "status": "Assigned", "descriptorName": "Juniper_vSRX_VNFD", "vmStatus": "REBOOT", "version": "1.0", "externalId": "8d303b96-4f21-4172-aeaf-1b7ac36970e0", "imageName": "vsrx-12.1X47-D20.7-npaas-v0.3", "availabilityZoneName": "CustomerTermination", "dataCenterName": "ONAP21", "host": "b73c2706400313820fd7db7086d90025ed6c2ab95a558d589c578c0a", "deploymentFlavorInfo": { "name": "vsrx.small", "vcpus": 2, "memory": "2 GB", "disk": "20 GB" }, "connectionPoints": [ { "id": "4-1", "name": "CP01", "ipAddress": { "address": "192.0.2.168", "network": "18_Data_IN(ONAP21)", "externalId": "2c901de9-c868-401d-9238-4a880dd7c266" } }, { "id": "4-2", "name": "CP02", "ipAddress": { "address": "192.0.2.34", "network": "18_Data_OUT(ONAP21)", "externalId": "c7689e70-059a-437f-86d0-a5f773489dea" } }, { "id": "4-3", "name": "CP03", "ipAddress": { "address": "192.0.2.35", "network": "nfvo-poc3-mgmt(ONAP21)", "externalId": "7dce6c90-7aae-4c7e-829e-b8a35f806398" } } ] } }
The following is a sample response when the action parameter in the URL is set to replace:
{ "status": "SUCCESS", "code": "202", "message": "Replace VNF is in progress.", "data": { "id": "5", "name": "Juniper_vSRX_VNFD_1471", "status": "Assigned", "descriptorName": "Juniper_vSRX_VNFD", "vmStatus": "ACTIVE", "version": "1.0", "externalId": "5159e90e-4166-4d1e-879f-da1109e8073d", "imageName": "vsrx-12.1X47-D20.7-npaas-v0.3", "availabilityZoneName": "CustomerTermination", "dataCenterName": "ONAP21", "host": "b73c2706400313820fd7db7086d90025ed6c2ab95a558d589c578c0a", "deploymentFlavorInfo": { "name": "vsrx.small", "vcpus": 2, "memory": "2 GB", "disk": "20 GB" }, "connectionPoints": [ { "id": "5-1", "name": "CP01", "ipAddress": { "address": "192.0.2.87", "network": "18_Data_IN(ONAP21)", "externalId": "b4fe843c-e122-4f44-90ec-6853f6a939de" } }, { "id": "5-2", "name": "CP02", "ipAddress": { "address": "192.0.2.44", "network": "18_Data_OUT(ONAP21)", "externalId": "64409652-5f29-45ae-a26e-7170598409a7" } }, { "id": "5-3", "name": "CP03", "ipAddress": { "address": "192.0.2.4", "network": "nfvo-poc3-mgmt(ONAP21)", "externalId": "ba07082a-d8f7-48f0-9e7a-d38e8fcd9549" } } ] } }
Configures the capabilities of a VNF in a network service.
POST
http://nso_host:port/ocnso/1.1/vnf/configure
{ "id": "12345", "capabilities": [ { "name": "WebFilter", "parameters": [ { "name": "Id", "value": "WebFilter-vnfID" }, { "name": "Action", "value": "Create" } ], "configuration": { "items": [ { "name": "WebFilterRuleset", "parameters": [ { "name": "Id", "value": "WebFilter_RulesetvnfID" }, { "name": "Action", "value": "Add" } ], "items": [ { "name": "WebFilterRule", "parameters": [ { "name": "Id", "value": "WebFilter_Rule_UniqueNumber" }, { "name": "Action", "value": "Add" }, { "name": "BlockURL", "value": "www.example.com" } ] } ] } ] } } ] }
{ "status": "SUCCESS", "code": "200", "message": "VNF Configuration is in progress", "data": { "id": "123", "name": "Sample_VNF_Name_123", "status": "Assigned", "descriptorName": "Juniper_vSRX_VNFD", "capabilities": [ { "serviceId": "24", "serviceName": "Service_Capabilities_24", "serviceStatus": "PENDING_ASSIGN", "serviceDescriptorName": "Juniper_vSRX_Capabilities_ServiceDescriptor" } ] } }
Upgrades the software version of a VNF image in a network service.
PUT
http://nso_host:port/ocnso/1.1/vnf/vnfId/upgrade/vnfVersion
where:
vnfId is the required identifier of the VNF whose image you want to upgrade.
vnfVersion is the required version number of the VNF image that you want to upgrade to. The version number must already exist in the VNF descriptor file.
This API does not require a request body. Specify the VNF identifier and the VNF version number you want to upgrade to in the URL.
{ "status": "SUCCESS", "code": "202", "data": { "id": "675001", "businessInteractionId": "975001" } }
Retrieves the details about a VNF given the input VNF identifier.
GET
http://nso_host:port/ocnso/1.1/vnf/vnfId
where vnfId is the identifier of the VNF.
{ "status": "SUCCESS", "code": "200", "data": { "id": "6", "name": "VNF_17_06", "status": "Assigned", "descriptorName": "Juniper_vSRX_VNFD", "vmStatus": "ACTIVE", "version": "1.0", "externalId": "6e941ad7-c45f-4dfb-bf26-2bb50234fadc", "imageName": "vsrx-12.1X47-D20.7-npaas-v0.3", "availabilityZoneName": "CustomerTermination", "dataCenterName": "ONAP21", "host": "b73c2706400313820fd7db7086d90025ed6c2ab95a558d589c578c0a", "deploymentFlavorInfo": { "name": "vsrx.small", "vcpus": 2, "memory": "2 GB", "disk": "20 GB" }, "connectionPoints": [ { "id": "6-1", "name": "CP01", "ipAddress": { "address": "192.0.2.240", "network": "22_Data_IN(ONAP21)", "externalId": "c83177ff-632e-4a19-97a7-3539c96c3d4c" } }, { "id": "6-2", "name": "CP02", "ipAddress": { "address": "192.0.2.241", "network": "22_Data_OUT(ONAP21)", "externalId": "f937cdc6-11bb-42b7-9b9e-f9685f7b71e2" } }, { "id": "6-3", "name": "CP03", "ipAddress": { "address": "192.0.2.242", "network": "nfvo-poc3-mgmt(ONAP21)", "externalId": "c5272351-905d-47ca-b7ac-0f18f01d724d" } } ], "capabilities": [ { "serviceId": "24", "serviceName": "Capabilities_24", "serviceStatus": "PENDING_ASSIGN", "serviceDescriptorName": "Juniper_vSRX_Capabilities_ServiceDescriptor", "businessInteractionId": "50" } ] } }
Retrieves the status information of a VNF and the VIM given the input VNF identifier.
GET
http://nso_host:port/ocnso/1.1/vnf/vnfId/status
where vnfId is the identifier of the VNF.
{ "status": "SUCCESS", "code": "200", "data": { "id": "75085", "name": "ChkptVNF_CP_B253", "status": "Assigned", "descriptorName": "Checkpoint_NG_FW_VNFD" } }
Registers or creates a new PNF in inventory.
POST
http://nso_host:port/ocnso/1.1/pnfs
{
"name": "xtv59",
"descriptorName": "Cisco_xRV_PNFD",
"description": "",
"userName": "user",
"pswd": "password",
"sslEnabled": false,
"sshKey": "7b:ab:75:32:9e:b6:6c:4b:29:dc",
"ipAddress": "192.0.2.252",
"management": {
"id": "225001",
"name": "ems5111",
"mgmtInterface": "EMS",
"descriptorName": "Cisco_xRV_EMS"
},
"parameters": []
}
{
"status": "SUCCESS",
"code": "200",
"data": {
"id": "525003",
"name": "xtv598912",
"descriptorName": "Cisco_xRV_PNFD",
"description": "",
"ipAddress": "192.0.2.252",
"userName": "user",
"pswd": "password",
"sslEnabled": false,
"sshKey": "7b:ab:75:32:9e:b6:6c:4b:29:dc",
"parameters": [
{}
],
"management": {
"id": "225001",
"name": "ems5111",
"mgmtInterface": "EMS",
"descriptorName": "Cisco_xRV_EMS"
}
}
}
Updates an existing registered PNF. The update persists the new attribute values to the inventory database.
PUT
http://nso_host:port/ocnso/1.1/pnfs/pnfId
where pnfId is the identifier of the PNF that you want to update.
{
"pswd": "password",
"sshKey": "7b:ab:75:32:9e:b6:6c:4b:29:dc"
}
{
"status": "SUCCESS",
"code": "200",
"data": {
"id": "525003",
"name": "xtv598912",
"descriptorName": "Cisco_xRV_PNFD",
"description": "",
"ipAddress": "192.0.2.252",
"userName": "user",
"pswd": "password",
"sslEnabled": false,
"sshKey": "7b:ab:75:32:9e:b6:6c:4b:29:dc",
"parameters": [
{}
]
}
}
Retrieves the list of active PNFs that are related to the input PNF descriptor.
GET
http://nso_host:port/ocnso/1.1/pnfs?descriptorName=pnfdName
where pnfdName is the name of the PNF descriptor.
{ "status": "SUCCESS", "code": "200", "data": [ { "id": "22001", "name": "xtv0018", "descriptorName": "Cisco_xRV_PNFD", "ipAddress": "192.0.2.228", "userName": "user2", "pswd": "password", "sslEnabled": false, "sshKey": "", "parameters": [ {} ], "management": {} }, { "id": "300012", "name": "xtv592", "descriptorName": "Cisco_xRV_PNFD", "ipAddress": "192.0.2.226", "userName": "user8", "pswd": "password", "sslEnabled": false, "sshKey": "", "parameters": [ {} ], "management": { "id": "75007", "name": "ems363", "mgmtInterface": "EMS", "descriptorName": "Cisco_xRV_EMS" } }, { "id": "300016", "name": "xtv595", "descriptorName": "Cisco_xRV_PNFD", "ipAddress": "192.0.2.227", "userName": "user5", "pswd": "password", "sslEnabled": false, "sshKey": "", "parameters": [ {} ], "management": {} } ] }
Retrieves the details of a PNF given the PNF identifier.
GET
http://<host>:<port>/ocnso/1.1/pnfs/pnfId
where pnfdId is the identifier of the PNF that you want to retrieve.
{
"status": "SUCCESS",
"code": "200",
"data": {
"id": "525003",
"name": "xtv59",
"descriptorName": "Cisco_xRV_PNFD",
"description": "",
"ipAddress": "192.0.2.224",
"userName": "user",
"pswd": "password",
"sslEnabled": false,
"sshKey": "",
"parameters": [
{}
],
"management": {
"id": "225001",
"name": "ems5111",
"mgmtInterface": "EMS",
"descriptorName": "Cisco_xRV_EMS"
}
}
}
Unregisters an existing PNF. The request deletes the PNF matching the input identifier value from the inventory database.
DELETE
http://nso_host:port/ocnso/1.1/pnfs/pnfId
where pnfId is the identifier of the PNF that you want to unregister.
This API does not require a request body.
{ "status": "SUCCESS", "code": "200", "message": "[INV-430925] PNF 300007 is deleted successfully." }
Register or create a new EMS in inventory.
POST
http://nso_host:port/ocnso/1.1/ems
{
"name": "ems574",
"descriptorName": "Cisco_xRV_EMS",
"description": "Sample Description",
"userName": "user",
"pswd": "password",
"ipAddress": "192.0.2.212",
"port": "7001",
"sslEnabled": false,
"protocol": "REST"
}
{
"status": "SUCCESS",
"code": "200",
"data": {
"id": "375003",
"name": "ems574",
"descriptorName": "Cisco_xRV_EMS",
"description": "Sample Description",
"ipAddress": "192.0.2.212",
"port": "7001",
"userName": "user",
"pswd": "password",
"sslEnabled": false,
"protocol": "REST",
"parameters": [
{}
]
}
}
Updates the details of a registered EMS in inventory. The update persists the new attribute values to the inventory database.
PUT
http://nso_host:port/ocnso/1.1/ems/emsId
where emsId is the identifier of the EMS that you want to update.
{
"description": "New EMS description",
"userName": "sys_user_1",
"pswd": "password"
}
{
"status": "SUCCESS",
"code": "200",
"data": {
"id": "375003",
"name": "ems574236312",
"descriptorName": "Cisco_xRV_EMS",
"description": "New EMS description",
"ipAddress": "192.0.2.212",
"port": "7001",
"userName": "sys_user_1",
"pswd": "password",
"sslEnabled": false,
"protocol": "REST",
"parameters": [
{}
]
}
}
Retrieves the list of active EMSs that are related to the input EMS descriptor.
GET
http://nso_host:port/ocnso/1.1/ems?descriptorName=emsdName
where emsdName is the name of the EMS descriptor.
{ "status": "SUCCESS", "code": "200", "data": [ { "id": "225001", "name": "ems5111", "descriptorName": "Cisco_xRV_EMS", "description": "description", "ipAddress": "192.0.2.221", "port": "1234", "userName": "user", "pswd": "password", "sslEnabled": false, "protocol": "REST", "parameters": [ {} ] }, { "id": "375001", "name": "ems5742", "descriptorName": "Cisco_xRV_EMS", "description": "description", "ipAddress": "192.0.2.222", "port": "12345", "userName": "user", "pswd": "password", "sslEnabled": false, "protocol": "REST", "parameters": [ {} ] } ] }
Retrieves the details of an EMS given the EMS identifier.
GET
http://<host>:<port>/ocnso/1.1/ems/emsId
where emsId is the identifier of the EMS that you want to retrieve.
{
"status": "SUCCESS",
"code": "200",
"data": {
"id": "375003",
"name": "ems5742",
"descriptorName": "Cisco_xRV_EMS",
"description": "description",
"ipAddress": "192.0.2.220",
"port": "1234",
"userName": "user11",
"pswd": "password",
"sslEnabled": false,
"protocol": "REST",
"parameters": [
{}
]
}
}
Unregisters an existing EMS. The request deletes the EMS matching the input identifier value from the inventory database.
DELETE
http://nso_host:port/ocnso/1.1/ems/emsId
where emsId is the identifier of the EMS that you want to unregister.
This API does not require a request body.
{ "status": "SUCCESS", "code": "200", "message": "[INV-430936] EMS 75003 is deleted successfully." }
Retrieves a list of deployed network service descriptors.
GET
http://nso_host:port/ocnso/1.1/nsd
{ "status": "SUCCESS", "code": "200", "data": [ "NPaaS_NSD" ] }
Retrieves details about a specified network service descriptor.
GET
http://nso_host:port/ocnso/1.1/nsd/nsdName
where nsdName is the name of the network service descriptor.
{ "status": "SUCCESS", "code": "200", "data": { "referencedVnfds": [ "Checkpoint_NG_FW_VNFD", "Juniper_vSRX_VNFD" ], "serviceDeploymentFlavors": [ { "name": "Checkpoint", "constituentVNFDs": [ { "vnfd": { "name": "Checkpoint_NG_FW_VNFD", "vNetworkInterfaces": 0 }, "assuranceParameters": [ { "name": "Low CPU Utilization", "id": "cpu_util", "condition": "eq", "value": "0.0", "action": "heal" }, { "name": "High CPU Utilization", "id": "cpu_util", "condition": "gt", "value": "80.0", "action": "scale" } ] } ] }, { "name": "Juniper", "constituentVNFDs": [ { "vnfd": { "name": "Juniper_vSRX_VNFD", "vNetworkInterfaces": 0 }, "assuranceParameters": [ { "name": "Low CPU Utilization", "id": "cpu_util", "condition": "eq", "value": "0.0", "action": "heal" }, { "name": "High CPU Utilization", "id": "cpu_util", "condition": "gt", "value": "80.0", "action": "scale" } ] } ] } ] } }
Retrieves a list of VNF descriptors that a network service descriptor references.
GET
http://nso_host:port/ocnso/1.1/nsd/nsdName/vnfds
where nsdName is the name of the network service descriptor.
{ "status": "SUCCESS", "code": "200", "data": [ "Checkpoint_NG_FW_VNFD", "Juniper_vSRX_VNFD" ] }
Retrieves a list of deployment flavors for a specified network service descriptor.
GET
http://nso_host:port/ocnso/1.1/nsd/nsdName/flavors
where nsdName is the name of the network service descriptor.
{ "status": "SUCCESS", "code": "200", "data": [ { "name": "Checkpoint", "constituentVNFDs": [ { "vnfd": { "name": "Checkpoint_NG_FW_VNFD", "vNetworkInterfaces": 0 }, "assuranceParameters": [ { "name": "Low CPU Utilization", "id": "cpu_util", "condition": "eq", "value": "0.0", "action": "heal" }, { "name": "High CPU Utilization", "id": "cpu_util", "condition": "gt", "value": "80.0", "action": "scale" } ] } ] }, { "name": "Juniper", "constituentVNFDs": [ { "vnfd": { "name": "Juniper_vSRX_VNFD", "vNetworkInterfaces": 0 }, "assuranceParameters": [ { "name": "Low CPU Utilization", "id": "cpu_util", "condition": "eq", "value": "0.0", "action": "heal" }, { "name": "High CPU Utilization", "id": "cpu_util", "condition": "gt", "value": "80.0", "action": "scale" } ] } ] } ] }
Retrieves details about a specified VNF descriptor.
GET
http://nso_host:port/ocnso/1.1/vnfd/vnfdName
where vnfdName is the name of the VNF descriptor.
{ "status": "SUCCESS", "code": "200", "data": { "deploymentFlavors": [ { "name": "vsrx.small", "vcpus": 2, "memory": 2, "disk": 20 }, { "name": "vsrx.medium", "vcpus": 2, "memory": 4, "disk": 20 } ], "connectionPoints": [ { "name": "CP01", "isExternal": false, "order": -1 }, { "name": "CP02", "isExternal": false, "order": -1 } ], "versions": [ { "number": "1.0", "imageName": "vsrx-12.1X47-D20.7-npaas-v0.3", "imageUserName": "", "imagePasswd": "" }, { "number": "1.1", "imageName": "vsrx-12.1X47-D20.7-npaas-v0.4", "imageUserName": "", "imagePasswd": "" } ] } }
Retrieves the list of VNF versions of the specified VNF descriptor.
GET
http://nso_host:port/ocnso/1.1/vnfd/vnfdName/versions
where vnfdName is the name of the VNF descriptor.
{ "status": "SUCCESS", "code": "200", "data": [ { "number": "1.0", "imageName": "npaas-srx-poc3-nso", "imageUserName": "", "imagePasswd": "" }, { "number": "1.1", "imageName": "npaas-srx-poc3-nso2", "imageUserName": "", "imagePasswd": "" }, { "number": "1.3", "imageName": "vsrx-12.1X47-D20.7-npaas-v0.3", "imageUserName": "", "imagePasswd": "" }, { "number": "1.4", "imageName": "vsrx-npaas-v0.4", "imageUserName": "", "imagePasswd": "" } ] }
Retrieves the list of VNF flavors of a specified VNF descriptor.
GET
http://nso_host:port/ocnso/1.1/vnfd/vnfdName/flavors
where vnfdName is the name of the VNF descriptor.
{ "status": "SUCCESS", "code": "200", "data": [ { "name": "vsrx.small", "vcpus": 2, "memory": 2, "disk": 20 }, { "name": "vsrx.medium", "vcpus": 2, "memory": 4, "disk": 20 }, { "name": "m1.medium", "vcpus": 2, "memory": 4, "disk": 40 } ] }