This chapter provides reference information about the Oracle Communications Network Service Orchestration Solution RESTful APIs.
The Network Service Orchestration RESTful APIs provide the northbound interface to the Network Service Orchestration solution. Operation Support Systems (OSS) and VNF managers query data from the solution's resource inventory.
The solution's RESTful APIs 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 host name
port is the port number of the machine on which Oracle Communications Unified Inventory Management (UIM) is installed
ssl_port is the SSL port number 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 Oracle WebLogic Server documentation for information about configuring TrustStore.Table 7-1 lists the Network Service Orchestration RESTful API resources.
Table 7-1 Network Service Orchestration Solution RESTful API Resources
Task | Method | Resource | Description |
---|---|---|---|
Register a Virtual Infrastructure Manager (VIM) |
POST |
/ocnso/1.1/vim |
Registers the IP address, port, username and password of the VIM with the solution. |
Discover VIM resources |
POST |
/ocnso/1.1/vim/discover/vim_name |
Discovers the resources of the registered VIM into the solution. |
Instantiate a network service |
POST |
/ocnso/1.1/ns |
Instantiates a network service and its constituent VNFs. |
Terminate a network service |
DELETE |
/ocnso/1.1/ns/networkServiceId |
Terminates a network service and the constituent VNFs. |
Update VNF software version |
POST |
/ocnso/1.1/ns/networkServiceId/upgrade |
Updates the software image version of a VNF. |
Heal a VNF |
POST |
/ocnso/1.1/vnf/vmId/heal /ocnso/1.1/vnf/heal |
Heals a VNF by rebooting or replacing the VM. Available values for the action parameter are:
|
Add VNFs to a network service |
POST |
/ocnso/1.1/ns/networkServiceId/vnfs |
Adds VNFs to a network service. |
Delete a VNF from a network service |
DELETE |
/ocnso/1.1/ns/networkServiceId/vnfs |
Deletes a VNF from a network service. |
Get network service information |
GET |
/ocnso/1.1/nsd/networkServiceId |
Returns information about a network service. |
Get a list of all network service descriptors that are deployed in the solution |
GET |
/ocnso/1.1/nsd |
Returns a list of all network service descriptors that are deployed in the solution. |
Get details about a network service descriptor |
GET |
/ocnso/1.1/nsd/nsdName |
Returns details about a network service descriptor. |
Get a list of VNF Descriptors in a network service descriptor |
GET |
/ocnso/1.1/nsd/nsdName/vnfds |
Returns a list of VNF descriptors in a network service descriptor. |
Get Network Service descriptor deployment flavors |
GET |
/ocnso/1.1/nsd/nsdName/flavors |
Returns a list of all constituent service flavors that are defined for a network service descriptor. |
Get details about a VNF Descriptor |
GET |
/ocnso/1.1/vnfd/vnfdName |
Returns details about a VNF descriptor. |
Get a list of VNF Descriptors in a network service descriptor |
GET |
/ocnso/1.1/nsd/nsdName/vnfds |
Returns a list of VNF descriptors in a network service descriptor. |
Get a list of supported versions for a VNF Descriptor |
GET |
/ocnso/1.1/vnfd/vnfdName/versions |
Returns a list of supported versions for a VNF descriptor. |
Get VNF Descriptor deployment flavors |
GET |
/ocnso/1.1/vnfd/vnfdName/flavors |
Returns a list of deployment flavors that are defined for a VNF descriptor. |
Get a list of all active network services that are created based on a specific Network Service descriptor |
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 details about a network service |
GET |
/ocnso/1.1/ns/networkServiceId |
Returns details about a network service. |
Get details about VNFs in a network service |
GET |
/ocnso/1.1/ns/networkServiceId/vnfs |
Returns details about VNFs in a network service. |
Get details about networks in a network service |
GET |
/ocnso/1.1/ns/networkServiceId/networks |
Returns details about networks in a network service. |
Get details about endpoints in a network service |
GET |
/ocnso/1.1/ns/networkServiceId/endPoints |
Returns details about endpoints in a network service. |
Get status information of a network service |
GET |
/ocnso/1.1/ns/networkServiceId/status |
Returns status information of a network service. |
Get details about a VNF |
GET |
/ocnso/1.1/ns/vnf/vnfId |
Returns details about a VNF. |
Get status information of a VNF |
GET |
/ocnso/1.1/ns/vnfId/status |
Returns status information about a VNF. |
Table 7-2 describes the HTTP response status codes for the GET (retrieve), POST (create), PUT (modify), and DELETE operations of the Network Service Orchestration Solution RESTful APIs.
Table 7-2 HTTP Response Status Codes for the Network Service Orchestration Solution RESTful APIs
Response Code | Description |
---|---|
200 OK |
The request is successful. The information returned in the response is dependent on the method used in the request. For example:
|
202 Accepted |
The request has been accepted for processing, but the processing has not completed. The request might or might not eventually be acted upon, as it might be disallowed when processing actually takes place. There is no facility for re-sending a status code from an asynchronous operation such as this. |
400 Bad Request |
The request could not be understood by the server due to incorrect syntax. Do not repeat the request without correcting the syntax. |
404 Not Found |
The server has not found a matching request or URI. |
500 Internal Server Error |
The server encountered an unexpected condition which prevented it from fulfilling the request. |
The following sections provide sample JSON requests and responses for the Network Service Orchestration solution RESTful API resources.
Registers the following details about the VIM with the Network Service Orchestration solution:
IP address
Port
Username
Password
{ "name":"vimDataCenter", "host":"11.111.111.1", "port":"12345", "userName":"nso", "pswd":"***", "projectName":"test", "domainName":"default" "vimType":"default" }
Table 7-3 describes the parameters in the request.
Parameter | Value | Required | Description |
---|---|---|---|
name |
String |
Yes |
Name of the VIM. |
vimType |
String |
No |
Type of the VIM. The default is OpenStack. |
host |
String |
Yes |
IP address or host name of the VIM. |
port |
String |
Yes |
Port number of the VIM. |
userName |
String |
Yes |
Username of the VIM. |
pswd |
String |
Yes |
Password of the VIM. |
projectName |
String |
Yes |
Name of the project. |
domainName |
String |
Yes |
Name of the domain. |
Discovers the resources that are available on the VIM. In UIM, creates the following resources as custom objects:
Availability zones
Flavors
Hosts
Virtual Data Center (VDC)
Creates networks and the constituent resources and starts the VNFs in the network service.
{ "nsName":"NSO_NPassService_1", "nsDescriptorName":"NPaaS_NSD", "serviceDeploymentFlavorName":"Checkpoint", "vnfs":[ { "vnfName":"NSO_CheckPointVNF_1", "deploymentFlavorName":"checkpoint", "vnfDescriptorName":"Checkpoint_NG_FW_VNFD", "version":"1.0" } ], "endPoints":[ { "name":"NSO_SGPcnsmr2", "flowPath":"Red", "parameters": [ { "name": "ipAddress", "value": "207.123.34.2" }, { "name": "vlanId", "value": "101" }, { "name": "serviceLocation", "value": "CityPQ03" } ] } ] }
Table 7-4 describes the parameters in the request.
Parameter Name | Value | Required | Description |
---|---|---|---|
nsName |
String |
Yes |
Name of the network service that you want to instantiate. |
nsDescriptorName |
String |
Yes |
Name of the network service descriptor. |
serviceDeploymentFlavorName |
String |
Yes |
Name of the Network Service deployment flavor. |
vnfs:[ vnfName |
String |
Yes |
Name of the VNF in the network service that you want to instantiate. |
vnfs:[ deploymentFlavorName |
String |
Yes |
Name of the deployment flavor of the VNF service. |
vnfs:[ vnfDescriptorName |
String |
Yes |
Name of the VNF descriptor that contains the descriptor of the VNF. |
vnf:[ version |
String |
Yes |
Version number of the VNF image. |
endPoints:[ name |
String |
Yes |
Name of the endpoint. |
endPoints:[ forwardingGraphDescriptorName |
String |
Yes |
Name identifier that is defined in the Network Service meta-data descriptor for which a sequence of VNFDs is defined for flow. |
endPoints:[ parameters:[ name |
String |
Yes |
Dynamic parameter that can be sent from the request to implement custom logic by using the extensions in the solution. |
endPoints:[ parameters:[ value |
String |
Yes |
Actual value of the customer-side end point termination points. |
{ "networkServiceName": "24_11.6_AMns_Service", "networkServiceId": "975022", "networkServiceStatus": "PENDING", "message": "Network Service Instantiation is in progress", "status": 202, "vnfs": [ { "vnfId": "1050008", "vnfName": "24_11.6_AMvnf", "vnfStatus": "INSTALLED", "vnfDescriptor": "Juniper_vSRX_VNFD", "vnfServiceId": "975021", "vnfServiceName": "24_11.6_AMvnf_Juniper_vSRX_VNFD_Service", "vnfServiceStatus": "PENDING_ASSIGN", "vnfServiceDescriptor": "Juniper_vSRX_ServiceDescriptor", "message": null, "status": 0, "capabilities": [] } ] }
Terminates a network service. Undeploys the constituent VNFs in the network service and releases all the resources that were allocated to the service.
Upgrades the software version of a VNF image in a network service.
{ "vnfName":"01.9_vSRXA_002", "upgradeToVersion":"1.6" // Upgrades to the version defined in VNF descriptor }
Table 7-5 describes the parameters in the request.
Parameter Name | Value | Required | Description |
---|---|---|---|
vnfName |
String |
Yes |
Name of the VNF whose image you want to upgrade. |
upgradeToVersion |
String |
Yes |
Version number of the VNF image that you want to upgrade to. This version number should already be defined in the VNF descriptor file. |
Heals a VNF by either rebooting or replacing a VNF in the VIM.
http://nso_host_name:port/ocnso/1.1/vnf/vnfExternalId/heal
where vnfExternalId is the VNF external ID
Adds VNFs to an existing network service.
[ { "vnfName":"VNF1", "deploymentFlavorName":"checkpoint", "vnfDescriptorName":"Checkpoint_NG_FW_VNFD", "version":"1.0" }, { "vnfName":"VNF2", "deploymentFlavorName":"checkpoint", "vnfDescriptorName":"Checkpoint_NG_FW_VNFD", "version":"1.0" } ]
Table 7-7 describes the parameters in the request.
Parameter Name | Value | Required | Description |
---|---|---|---|
vnfName |
String |
Yes |
Name of the VNF that you want to add. |
deploymentFlavorName |
String |
Yes |
Name of the VNF deployment flavor. |
vnfDescriptorName |
String |
Yes |
Name of the VNF descriptor. |
version |
String |
Yes |
Version number of the VNF image. |
Deletes a VNF from an existing network service and undeploys it in the VIM.
Retrieves the details of a network service.
http://nso_host_name:port/ocnso/1.1/ns/networkServiceId
where networkServiceId is the network service ID
{ "nsID": "975022", "nsName": "24_11.6_AMns_Service", "status": "IN_SERVICE", "aIPAddress": null, "zIPAddress": null, "aIPDomain": null, "zIPDomain": null, "vimName": "datacntr_test_2", "biID": "975023", "networks": [ { "networkName": "nfvo-poc3-pkt-in", "networkID": "nfvo-poc3-pkt-in", "externalID": "cf8d4e3d-2775-4b8a-b38a-25410e8bbba4", "subnets": [ { "startIP": "192.0.2.0", "prefix": "24", "externalID": "576a7110-d628-455c-932b-9586f688c22c" } ] }, { "networkName": "nfvo-poc3-mgmt", "networkID": "nfvo-poc3-mgmt", "externalID": "109ae4cf-3cea-4729-a24f-957c4ed6d3c6", "subnets": [ { "startIP": "192.0.2.0", "prefix": "24", "externalID": "fb791563-7c8b-454c-a1eb-87399e6837dc" } ] }, { "networkName": "nfvo-poc3-pkt-out", "networkID": "nfvo-poc3-pkt-out", "externalID": "14403e50-4f3d-484c-9743-82cdde768ece", "subnets": [ { "startIP": "192.0.2.0", "prefix": "24", "externalID": "a0790554-6a67-42c4-a2f4-c1b1ddfa5800" } ] } ], "vnfs": [ { "vnfId": "1050008", "vnfName": "24_11.6_AMvnf", "vnfStatus": "INSTALLED", "vnfDescriptor": "Juniper_vSRX_VNFD", "vnfServiceId": "975021", "vnfServiceName": "24_11.6_AMvnf_Juniper_vSRX_VNFD_Service", "vnfServiceStatus": "ASSIGNED", "vnfServiceDescriptor": "Juniper_vSRX_ServiceDescriptor", "biID": "975024", "deploymentFlavorInfo": { "name": "m1.medium", "vcpus": 2, "memory": "4 MB", "disk": "40 GB" }, "connectionPoints": [ { "id": "1050008-1", "name": "CP01", "ipAddress": { "address": "111.111.1.11", "network": "nfvo-poc3-pkt-in", "externalID": "3ffdad5d-83cb-42cb-a389-179bae00b255" } }, { "id": "1050008-2", "name": "CP02", "ipAddress": { "address": "111.111.1.11", "network": "nfvo-poc3-pkt-out", "externalID": "07249a45-4c18-4f01-9c6b-8c61bc5ae4e2" } }, { "id": "1050008-3", "name": "CP03", "ipAddress": { "address": "111.111.1.11", "network": "nfvo-poc3-mgmt", "externalID": "f6e17f07-d956-4c97-b036-60777df8a429" } } ], "capabilityServices": null } ], "consumers": [ { "name": "24_11.6_AMcnsmr", "ipAddress": "111.111.11.1", "ipDomain": null, "flowPathName": "", "flowPath": "24_11.6_AMvnf", "status": "REFERENCED" } ] }
Retrieves details about a specified network service descriptor.
http://nso_host_name:port/ocnso/1.1/nsd/nsdName
where nsdName is the name of the Network Service descriptor
{ "referencedVnfds": [ "Juniper_vSRX_VNFD", "Checkpoint_NG_FW_VNFD" ], "serviceFlavors": [ { "name": "S1", "constituentVNFDs": [ { "name": "Juniper_vSRX_VNFD", "maxInstances": "5", "maxConsumersServed": "2" }, { "name": "Checkpoint_NG_FW_VNFD", "maxInstances": "5", "maxConsumersServed": null } ] }, { "name": "S2", "constituentVNFDs": [ { "name": "Juniper_vSRX_VNFD", "maxInstances": "5", "maxConsumersServed": "2" } ] } ] }
Retrieves a list of VNF descriptors that a network service descriptor references.
Retrieves a list of deployment flavors for a specified network service descriptor.
http://nso_host_name:port/ocnso/1.1/nsd/nsdName/flavors
where nsdName is the name of the network service descriptor
{ "name": "S1", "constituentVNFDs": [ { "name": "Juniper_vSRX_VNFD", "maxInstances": "5", "maxConsumersServed": "2" }, { "name": "Checkpoint_NG_FW_VNFD", "maxInstances": "5", "maxConsumersServed": null } ] }, { "name": "S2", "constituentVNFDs": [ { "name": "Juniper_vSRX_VNFD", "maxInstances": "5", "maxConsumersServed": "2" } ] }
Retrieves details about a specified VNF descriptor.
http://nso_host_name:port/ocnso/1.1/vnfd/vnfdName
where vnfdName is the name of the VNF descriptor
{ "deploymentFlavours": [ { "vcpus": 2, "memory": 4, "disk": 20, "name": "vsrx.medium" }, { "vcpus": 2, "memory": 4, "disk": 40, "name": "m1.medium" } ], "connectionPoints": [ { "name": "CP01", "isExternal": false }, { "name": "CP02", "isExternal": false }, { "name": "CP03", "isExternal": false } ], "versions": [ { "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 details about the versions of a specified VNF descriptor.
http://nso_host_name:port/ocnso/1.1/vnfd/vnfdName/versions
where vnfdName is the name of the VNF descriptor
{ "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 flavors of a specified VNF descriptor.
Retrieves the list of active network services that are defined in a network service descriptor.
Retrieves the details about a network service.
http://nso_host_name:port/ocnso/1.1/ns/networkServiceId
where networkServiceId is the ID of the network service
{ "nsID": "375005", "nsdName": "NPaaS_NSD", "nsName": "29_1.3_AMns_Service", "status": "IN_SERVICE", "vimName": "OpenStack", "networks": [ { "networkName": "nfvo-poc3-mgmt" }, { "networkName": "nfvo-demo-pkt-in-v2" }, { "networkName": "nfvo-demo-pkt-out-v2" } ], "vnfs": [ { "vnfServiceId": "375006", "vnfServiceName": "29_1.3_AMvnf_Juniper_vSRX_VNFD_Service", "vnfServiceDescriptor": "Juniper_vSRX_ServiceDescriptor", "vmId": "3479b080-6341-425c-b242-ecd14b1dcef8" } ], "endPoints": [ { "name": "29_1.3_AMcnsmr" } ] }
Retrieves the details about the VNFs in a network service.
http://nso_host_name:port/ocnso/1.1/ns/networkServiceId/vnfs
where networkServiceId is the ID of the network service
{ "nsID": "375005", "nsdName": "NPaaS_NSD", "nsName": "29_1.3_AMns_Service", "vnfs": [ { "vnfId": "300003", "vnfName": "29_1.3_AMvnf", "vnfStatus": "INSTALLED", "vnfDescriptor": "Juniper_vSRX_VNFD", "vnfServiceId": "375006", "vnfServiceName": "29_1.3_AMvnf_Juniper_vSRX_VNFD_Service", "vnfServiceStatus": "IN_SERVICE", "vnfServiceDescriptor": "Juniper_vSRX_ServiceDescriptor", "vmId": "3479b080-6341-425c-b242-ecd14b1dcef8", "biID": "375006", "deploymentFlavorInfo": { "name": "m1.medium", "vcpus": 2, "memory": "4 MB", "disk": "40 GB" }, "connectionPoints": [ { "id": "300003-1", "name": "CP01", "ipAddress": { "address": "192.0.2.132", "network": "nfvo-demo-pkt-in-v2", "externalID": "8f2468de-c4b1-4656-b23f-ccd5c26b9d83" } }, { "id": "300003-2", "name": "CP02", "ipAddress": { "address": "192.0.2.120", "network": "nfvo-demo-pkt-out-v2", "externalID": "8ab6b415-b04a-458c-97bc-d4ef2eb550c3" } }, { "id": "300003-3", "name": "CP03", "ipAddress": { "address": "192.0.2.8", "network": "nfvo-poc3-mgmt", "externalID": "9e32e48a-439c-4292-a308-9eafa0beeb78" } } ] } ] }
Retrieves the details about the networks in a network service.
http://nso_host_name:port/ocnso/1.1/ns/networkServiceId/networks
where networkServiceId is the ID of the network service
{ "nsID": "375005", "nsdName": "NPaaS_NSD", "nsName": "29_1.3_AMns_Service", "networks": [ { "networkName": "nfvo-poc3-mgmt", "networkID": "nfvo-poc3-mgmt", "externalID": "109ae4cf-3cea-4729-a24f-957c4ed6d3c6", "subnets": [ { "startIP": "192.0.2.0", "prefix": "24", "externalID": "fb791563-7c8b-454c-a1eb-87399e6837dc" } ] }, { "networkName": "nfvo-demo-pkt-in-v2", "networkID": "nfvo-demo-pkt-in-v2", "externalID": "2277b6e2-eb2d-4cc2-b80c-6d6c38f35ab0", "subnets": [ { "startIP": "192.0.2.128", "prefix": "25", "externalID": "d47bf43a-57bd-4b17-b559-505a426d7359" } ] }, { "networkName": "nfvo-demo-pkt-out-v2", "networkID": "nfvo-demo-pkt-out-v2", "externalID": "3b45febc-4531-4751-ac55-9e43bd53897a", "subnets": [ { "startIP": "192.0.2.0", "prefix": "25", "externalID": "c04bb488-73cc-4e93-bcab-156030a63a0c" } ] } ] }
Retrieves the details about the endpoints in a network service.
Retrieves the status information about a network service.
Retrieves the details about a VNF.
{ "vnfId": "300003", "vnfName": "29_1.3_AMvnf", "vnfStatus": "INSTALLED", "vnfDescriptor": "Juniper_vSRX_VNFD", "vnfServiceId": "375006", "vnfServiceName": "29_1.3_AMvnf_Juniper_vSRX_VNFD_Service", "vnfServiceStatus": "IN_SERVICE", "vnfServiceDescriptor": "Juniper_vSRX_ServiceDescriptor", "biID": "375006", "deploymentFlavorInfo": { "name": "m1.medium", "vcpus": 2, "memory": "4 MB", "disk": "40 GB" }, "connectionPoints": [ { "id": "300003-1", "name": "CP01", "ipAddress": { "address": "192.0.2.132", "network": "nfvo-demo-pkt-in-v2", "externalID": "8f2468de-c4b1-4656-b23f-ccd5c26b9d83" } }, { "id": "300003-2", "name": "CP02", "ipAddress": { "address": "192.0.2.120", "network": "nfvo-demo-pkt-out-v2", "externalID": "8ab6b415-b04a-458c-97bc-d4ef2eb550c3" } }, { "id": "300003-3", "name": "CP03", "ipAddress": { "address": "192.0.2.8", "network": "nfvo-poc3-mgmt", "externalID": "9e32e48a-439c-4292-a308-9eafa0beeb78" } } ] }