RO Northbound Interface: Difference between revisions
| Line 797: | Line 797: | ||
"instances": [ | "instances": [ | ||
{ | { | ||
"description": null, | |||
"tenant_id": "2db5634e-6604-11e6-950f-0800273e724c", | |||
"created_at": "2016-08-19T13:58:16", | |||
"scenario_id": "34752430-6604-11e6-950f-0800273e724c", | |||
"name": "simple-instance", | |||
"uuid": "369ac0d0-6604-11e6-950f-0800273e724c" | |||
}, | }, | ||
{ | { | ||
"description": null, | |||
"tenant_id": "2db5634e-6604-11e6-950f-0800273e724c", | |||
"created_at": "2016-08-19T13:58:26", | |||
"scenario_id": "349ce93e-6604-11e6-950f-0800273e724c", | |||
"name": "complex2-instance", | |||
"uuid": "3cf18d42-6604-11e6-950f-0800273e724c" | |||
} | } | ||
] | ] | ||
} | } | ||
====GET /openmano/{tenant_id}/instances/{instance_id}==== | ====GET /openmano/{tenant_id}/instances/{instance_id}==== | ||
Revision as of 13:48, 19 August 2016
Introduction
This document describes the northbound interface of RO (openmano) Release 1.
The Northbound interface is based on REST and it allows performing actions over the following entities:
- Tenant: Intended to create groups of resources. In this version no security mechanisms are implemented.
- Datacenters: Represents the VIM information stored by openmano.
- VIMs: used to perform an action over a datacenter (specific pool of resources)
- VNFs: SW-based network function, composed of one or several VM that can be deployed on an NFV datacenter.
- Scenarios: topologies of VNFs and their interconnections.
- Instances: Each one of the Scenarios deployed in a datacenter.
Details
HTTP protocol details
- The HTTP HEADER "X-Auth-Token" is ignored in this version, though it will be available in future. Current version does not support security and authentication
- Server supports JSON (by default), and YAML. Use HTTP HEADER "Content-Type:
application/FORMAT" for specifying the input format and HTTP HEADER "Accept: application/FORMAT" for the wanted output format. In this version it does not support the URL suffix .yaml or .json as for example openstack neutron does.
- Server supports URL Query String filters. For example:
HTTP GET /whatever?name1=value1&name2=value2" Will filter by "name1=value1 AND name2=value2"
- In a near future version it will support pagination using limit, market, page_reverse and field filtering in the same way as openstack neutron.
- Possible responses of HTTP Commands are:
200 Ok 400 Bad Request 404 Not Found 405 Method Not Allowed 409 Conflict 503 Service Unavailable 500 Internal Server Error
Openmano Server primitives
Tenants
GET /openmano/tenants
Gets a list of all tenants
Params: None
Response: Content-type: application/json
{
"tenants": [
{
"created_at": "2015-08-06T10:38:07",
"description": "tenant_de_prueba",
"uuid": "76094a2a-3c16-11e5-9fb6-5254004aea96",
"name": "tenanttest"
},
{
"created_at": "2015-12-04T13:06:54",
"description": "A description...",
"uuid": "8293285c-9a7f-11e5-bc4f-5254004aea96",
"name": "John Doe"
}
]
}
GET /openmano/tenants/{tenant_id}
Get the full description of the tenant identified by tenant_id (tenant´s name or uuid)
Params: None
Response: Content-type: application/json
{
"tenant": {
"created_at": "2015-12-04T13:06:54",
"description": "A description...",
"modified_at": null,
"uuid": "8293285c-9a7f-11e5-bc4f-5254004aea96",
"name": "John Doe"
}
}
POST/openmano/tenants
Create new tenant
Params: (Extra parameters are ignored) Content-type: application/json
- name: tenant name provided by the client
- description: (optional) tenant description provided by the client
{
"tenant":
{
"name": "John Doe",
"description": "A description..."
}
}
Response: Content-type: application/json
{
"tenant": {
"created_at": "2015-12-04T13:06:54",
"description": "A description...",
"modified_at": null,
"uuid": "8293285c-9a7f-11e5-bc4f-5254004aea96",
"name": "John Doe"
}
}
PUT /openmano/tenants/{tenant_id}
Update tenant identified by tenant_id (tenant´s name or uuid)
Params: (Extra parameters are ignored) Content-type: application/json
- name: tenant name provided by the client
- description: (optional) tenant description provided by the client
{
"tenant":
{
"name": "John Doe",
"description": " Unknown person..."
}
}
Response: Content-type: application/json
{
"tenant": {
"created_at": "2015-12-04T13:06:54",
"description": " Unknown person...",
"modified_at": null,
"uuid": "8293285c-9a7f-11e5-bc4f-5254004aea96",
"name": "John Doe"
}
}
DELETE /openmano/tenants/{tenant_id}
Delete a tenant identified by tenant_id (tenant´s name or uuid)
Params: none
Response: Content-type: application/json
{
"result": "tenant 9767ac6e-9a82-11e5-bc4f-5254004aea96 deleted"
}
Datacenters
These commands does not affect a concrete VIM, but the openmano information of a VIM
GET /openmano/{tenant_id}/datacenters
Get a list of datacenters attached to the tenant identified by tenant_id (tenant´s name or uuid). The parameter 'tenant_id' can be replaced by 'any' to get a list of all datacenters of all tenants.
Params: none.
Response: Content-type: application/json
{
"datacenters": [
{
"vim_url": "http://localhost:9080/openvim",
"created_at": "2015-12-09T10:10:00",
"type": "openvim",
"uuid": "a01a4b34-9e54-11e5-bc4f-5254004aea96",
"name": "John_Doe_data_center"
}
]
}
GET /openmano/{tenant\_id}/datacenters/{datacenter_id}
Get a the parameters of a datacenter attached to a tenant identified by tenant_id. The parameter 'tenant_id' can be replaced by 'any' to look for the datacenter_id in all tenants.
Params:none
Response Content-type: application/json
{
"datacenter": {
"vim_url": "http://localhost:9080/openvim",
"vim_url_admin": null,
"created_at": "2015-12-09T10:10:00",
"uuid": "a01a4b34-9e54-11e5-bc4f-5254004aea96",
"name": "John_Doe_data_center",
"type": "openvim",
"description": null,
"config": null,
}
}
POST /openmano/datacenters
Create a new datacenter
Params: Content-type: application/json
- name: name of the datacenter to create
- vim_url: url of the machine where is hold VIM (Openvim) (TBC)
- type: can be openvim, openstack, ...
- config: extra configuration needed by the specific VIM connectors
- description: descriptive text
{
"datacenter":{
"name": "John_Doe_data_center",
"vim_url": "http://localhost:9080/openvim"
}
}
Response: Content-type: application/json
{
"datacenter": {
"vim_url": "http://localhost:9080/openvim",
"vim_url_admin": null,
"created_at": "2015-12-09T10:10:00",
"uuid": "a01a4b34-9e54-11e5-bc4f-5254004aea96",
"name": "John_Doe_data_center",
"type": "openvim",
"description": null,
"config": null,
}
}
PUT /openmano/datacenters/{datacenter\_id_name}
Modify a datacenter.
Params: Content-type: application/json
Params that can be changed are:
- name: datacenter name
- vim_url: vim url
{
"datacenter":{
"name": "new_datacenter_name",
"vim_url": "http://localhost:9080/openvim"
}
}
Response:
If no error, same as "Post /openmano/datacenters"
GET /openmano/datacenters/{datacenter_id}/networks
Deprecated: see RO_Northbound_Interface#VIMs
POST /openmano/{tenant\_id}/datacenters/{datacenter_id}/action
Deprecated: see RO_Northbound_Interface#VIMs
DELETE /openmano/datacenters/{datacenter_id}
Delete a datacenter
Params:none
Response Content-type: application/json
{
"result": "datacenter e3042842-9e78-11e5-bc4f-5254004aea96 deleted"
}
POST /openmano/<tenant\_id>/datacenters/{datacenter_id}
Attach the datacenter identifiedby datacenter_id and openvim tenant to the openmano tenant
Params: none
Response
If no error, same as GET /openmano/{tenant\_id}/datacenters/{datacenter_id}
DELETE /openmano/<tenant\_id>/datacenters/{datacenter_id}
Detach a datacenter and this tenant
Params: none
Response
If no error, same as GET /openmano/{tenant\_id}/datacenters/{datacenter_id}
VIMs
These commands make actions over a VIM (datacenter)
GET /openmano/{tenant_id}/vim/{datacenter_id}/networks
Get a list of VIM networks.
Params: none
Response: Content-type: application/json
{
"networks": [
{
"status": "ACTIVE",
"provider:physical": "macvtap:em1",
"name": "macvtap:em1",
"admin_state_up": true,
"shared": true,
"type": "bridge_man",
"id": "7a6c5bae-65d5-11e6-b9c7-0800273e724c"
},
{
"status": "ACTIVE",
"name": "complex-instance.dataconn1",
"admin_state_up": true,
"tenant_id": "8850b260-65d5-11e6-b9c7-0800273e724c",
"provider:vlan": 3000,
"shared": false,
"type": "ptp",
"id": "8c0e199c-65d5-11e6-b9c7-0800273e724c"
},
{
"status": "ACTIVE",
"name": "complex2-instance.datanet",
"admin_state_up": true,
"tenant_id": "8850b260-65d5-11e6-b9c7-0800273e724c",
"provider:vlan": 3008,
"shared": false,
"type": "data",
"id": "8d764b7e-65d5-11e6-b9c7-0800273e724c"
}
]
}
GET /openmano/{tenant_id}/vim/{datacenter_id}/{vim_network_id}
Get details over a VIM network.
Params: none
Response: Content-type: application/json
{
"network": {
"status": "ACTIVE",
"provider:physical": "openflow:port1/8:vlan",
"name": "data_net",
"admin_state_up": true,
"provider:vlan": 3001,
"shared": true,
"type": "data",
"id": "7ab198cc-65d5-11e6-b9c7-0800273e724c"
}
}
POST /openmano/{tenant_id}/vim/{datacenter_id}/networks
Add a network at VIM
Params: Content-type: application/json
- name: name of the network
- type: type of network (data, ptp, bridge), To be changed to ETSI notation E-LAN, E-LINE
- shared: available for all tenants or private
{
"network":{
"name": "mynet",
"type": "data"
}
}
Response: Content-type: application/json
{
"network": {
"status": "ACTIVE",
"name": "mynet",
"admin_state_up": true,
"tenant_id": "8850b260-65d5-11e6-b9c7-0800273e724c",
"provider:vlan": 3009,
"shared": false,
"type": "data",
"id": "a8ac819e-65d8-11e6-b9c7-0800273e724c"
}
}
DELETE /openmano/{tenant_id}/vim/{datacenter_id}/networks/{vim_network_id}
Delete a VIM network
Params: none
Response: Content-type: application/json
{
"result": "network e97b7158-65d8-11e6-b9c7-0800273e724c mynet deleted"
}
VNFs
GET /openmano/{tenant_id}/vnfs
Get a list of vnfs. The parameter 'tenant_id' can be replaced by 'any' to obtain also from all tenants.
Params: none
Response Content-type: application/json
{
"vnfs": [
{
"description": "VNF1 description",
"created_at": "2015-08-24T13:41:20",
"uuid": "09c7209c-4a55-11e5-9f62-5254004aea96",
"name": "VNF1",
"path": "/path/to/VNF1.vnfd",
"public": true,
"physical": false
},
{
"description": "VNF1 description"",
"created_at": "2015-09-15T13:22:24",
"uuid": "09d14bf0-5b9c-11e5-a873-5254004aea96",
"name": "VNF2",
"path": "/path/to/VNF2.vnfd",
"public": true,
"physical": false
}
]
}
GET /openmano/{tenant_id}/vnfs/{vnf_id}
Get vnf details. The parameter 'tenant_id' can be replaced by 'any' to obtain also from all tenants.
Params: none
Response: Content-type: application/json
- VNFC: Array of virtual machines which compose the vnf
- External-connections: array of vnf's connections
* vm_name: name of the internal virtual machine which this connections is connected * external_name: name of the conection to show in the interface * type: type of connection * vpci: Virtual PCI address * bw: bandwidth * internal_name: local iface name of the VM
{
"vnf": {
"VNFC": [
{
"description": "VM 1 in the MultiVM template",
"uuid": "09c73a00-4a55-11e5-9f62-5254004aea96",
"name": "VM1"
}
],
"description": "VNF1 description",
"created_at": "2015-08-24T13:41:20",
"uuid": "09c7209c-4a55-11e5-9f62-5254004aea96",
"external-connections": [
{
"vm_name": "VM1",
"external_name": "bridge",
"uuid": "09c75562-4a55-11e5-9f62-5254004aea96",
"type": "bridge",
"vpci": null,
"bw": null,
"internal_name": "eth0",
"vm_id": "09c73a00-4a55-11e5-9f62-5254004aea96"
}
],
"path": "/home/psa/openmano/openmano/vnfrepo/VNF1.vnfd",
"physical": false,
"nets": [],
"public": true,
"name": "VNF1"
}
}
POST /openmano/{tenant\_id}/vnfs
Insert a vnf into the catalogue. Try to create the needed flavors and images at all attached VIM, and creates the VNF and its internal structure in the OPENMANO DB
Params:
See at code /vnfs/vnf-template-2vm.yaml and /vnfs/vnf-template.yaml
- vnf:
* name (required): vnf name
* description (optional): vnf description
* class (optional): Used to organize VNFs
* public (optional): boolean
* physical (optional): boolean
* external-connections (required): array of objects. Each one describe a connection that the vnf expose to the outside.
* name (required): connection name
* type (required): type of connection. Types availables are: "mgmt","bridge","data"
* VNFC (required): Name of the internal VM to which this connection is connected. Must match with one of the VM name of the VNF section
* local\_iface_name (required): interface name of the VM. Must match with one of the interfaces described in the VM description.
* description (optional): Connection description.
* internal-connections (optional): Array of objects which describes inner connections between VMs that the vnf contains
* name (required): inner connection name
* description (optional): inner connection description
* type (required): type of connection. Types availables are: "bridge","data","ptp"
* elements (required): Array of objects. Describes end points of the inner connection
* VNFC: Name of the internal VM to which this connection is connected. Must match with one of the VM name of the VNF section
* local\_iface_name: interface name of the VM. Must match with one of the interfaces described in the VM description.
* VNFC: Array of objects that describes each of the inner VMs. Must contain at least one.
* name (required): Name of the VM
* description (optional): Description of the VM
* VNFC image (required): Path of the image location
* image metadata (optional)
* architecture
* use_incremental: "yes" or "no"
* vpci:
* os_distro:
* os_type:
* os_version:
* bus:
* processor (optional)
* model (required)
* features
* hypervisor
* type
* version
* ram: RAM memory of the VM. Only for traditional cloud VMs. Memory in MBytes (not from hugepages, oversubscription is allowed)
* vcpus: Only for traditional cloud VMs. Number of virtual CPUs (oversubscription is allowed).
* disk: disk size in GiB, by default 1
* numas: Array of numa nodes description
* memory: memory in GBytes
* cores | paired-threads | threads (only use one)
* cores-id (optional): array of integer to specify each core
* paired-threads-id (optional): Array of paired threads. (i.e:[ [0,1], [2,3], [4,5], [6,7], [8,9] ]) By default follows incremental order
* threads-id (optional): array of integer to specify each thread
* interfaces
* name (required): interface name
* dedicated (required): available options are "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)
* bandwidth (required): bandwidth in Mbps or Gbps.
* vpci (optional): Virtual PCI address
* mac_address (optional): avoid this option if possible
* bridge-ifaces
* name (required): bridge interface name
* bandwidth (Optional): Informative only
* vpci (optional): Virtual PCI address
* mac_address (optional): avoid this option if possible
* model (optional): ("virtio","e1000","ne2k_pci","pcnet","rtl8139") By default, it is automatically filled by libvirt
* devices: extra devices asigned to the VM. The order determines device letter asignation (hda, hdb, ...)
* type: ("disk","cdrom","xml")
* image: path to image
* image metadata: device image metadata.
* architecture
* use_incremental
* vpci
* os_distro
* os_type
* os_version
* bus
* vpci (optional): depending on the device type (not needed for disk or cdrom)
* xml: xml text for XML described devices
Response: Content-type: application/json
DELETE /openmano/{tenant_id}/vnfs/{vnf_id}
Deletes a vnf from database, and images and flavors in VIM when appropriate. The parameter 'tenant_id' can be replaced by 'any' when vnf belong to other tenant.
Params: none
Response: Content-type: application/json
{
"result": "VNF 1ec2cdac-6779-11e5-bc4f-5254004aea96 deleted"
}
POST /openmano/{tenant_id}/topology/verify
Deprecated
Scenarios===
POST /openmano/{tenant_id}/scenarios
(TBC)
Add a scenario into the catalogue. Creates the scenario and its internal structure in the OPENMANO DB
Params:
see at code /scenarios/scenario-template.yaml
POST /openmano/{tenant_id}/scenarios/{scenario_id}/action
Deprecated: use POST /openmano/{tenant_id}/instances instead Take an action over a scenario
Params:
- Deploy an scenario: deploy all VNFs of the scenario. Creates a new instance scenario
* instance_name (required): name of the scenario to deploy * description (optional): a description * datacenter (optional): name of the datacenter where the scenario will be deployed.
Content-type: application/json:
{
"deploy": {
"instance_name": "scenario1",
"description" : "a description...",
"datacenter" : "mydc"
}
}
- Start an scenario: Equivalent to deploy
* instance_name (required): name of the scenario to start * description (optional): a description * datacenter (optional): name of the datacenter where the scenario will be started.
Content-type: application/json:
{
"start": {
"instance_name": "scenario1",
"description" : "a description...",
"datacenter" : "mydc"
}
}
- Reserve an scenario: Launch a new instance of the scenario without starting virtual machines.
* instance_name (required): name of the scenario to launch * description (optional): a description * datacenter (optional): name of the datacenter where the scenario will be launched.
Content-type: application/json:
{
"reserve": {
"instance_name": "scenario1",
"description" : "a description...",
"datacenter" : "mydc"
}
}
- Verify an scenario: deploy and destroy an scenario to check that there is room for it.
* instance_name (required): name of the scenario to verify * description (optional): a description * datacenter (optional): name of the datacenter where the scenario will be verified.
Content-type: application/json:
{
"verify": {
"instance_name": "scenario1",
"description" : "a description...",
"datacenter" : "mydc"
}
}
GET /openmano/{tenant_id}/scenarios
Get a list of existing scenarios for a tenant identified by tenant_id. The parameter 'tenant_id' can be replaced by 'any' to obtain also from all tenants.
Params: none
Response Content-type: application/json
{
"scenarios": [
{
"created_at": "2015-09-15T13:02:07",
"description": "Scenario1 test",
"public": false,
"uuid": "34c4db72-5b99-11e5-a873-5254004aea96",
"name": "Scenario1"
},
{
"created_at": "2015-09-15T09:49:47",
"description": "Scenario2 test",
"public": false,
"uuid": "5638c64e-5b7e-11e5-a873-5254004aea96",
"name": "Scenario2"
}
]
}
GET /openmano/{tenant_id}/scenarios/{scenario_id}
Get details about a scenario. The parameter 'tenant_id' can be replaced by 'any' to obtain also from all tenants.
Params: none
Response: Content-type: application/json
{
"scenario": {
"description": "Pconcepto-x",
"created_at": "2015-09-15T13:02:07",
"modified_at": null,
"name": "Pconcepto-x",
"vnfs": [
{
"vnf_id": "1f3d9aca-5b7e-11e5-a873-5254004aea96",
"description": "VNF prueba concepto1",
"interfaces": [
{
"sce_net_id": "34c4f26a-5b99-11e5-a873-5254004aea96",
"uuid": "34c5147a-5b99-11e5-a873-5254004aea96",
"interface_id": "1f3dce50-5b7e-11e5-a873-5254004aea96"
}
],
"name": "VNF-pconcepto1",
"nets": [],
"vms": [
{
"description": "prueba para demo",
"interfaces": [
{
"external_name": "bridge",
"uuid": "1f3dce50-5b7e-11e5-a873-5254004aea96",
"vpci": null,
"bw": null,
"internal_name": "eth0",
"model": null,
"type": "bridge",
"net_id": null
},
{
"external_name": "eth1",
"uuid": "1f3de232-5b7e-11e5-a873-5254004aea96",
"vpci": null,
"bw": null,
"internal_name": "eth1",
"model": null,
"type": "bridge",
"net_id": null
}
],
"name": "VMF-pconcepto1",
"image_id": "bbecf86a-5b7a-11e5-a873-5254004aea96",
"flavor_id": "09c350f2-4a55-11e5-9f62-5254004aea96",
"uuid": "1f3db2e4-5b7e-11e5-a873-5254004aea96"
}
],
"uuid": "34c4fefe-5b99-11e5-a873-5254004aea96"
}
],
"nfvo_tenant_id": "76094a2a-3c16-11e5-9fb6-5254004aea96",
"nets": [
{
"description": null,
"vim_id": null,
"name": "default",
"external": true,
"type": "bridge",
"uuid": "34c4f26a-5b99-11e5-a873-5254004aea96"
}
],
"public": false,
"uuid": "34c4db72-5b99-11e5-a873-5254004aea96"
}
}
DELETE /openmano/{tenant_id}/scenarios/{scenario_id}
Delete a scenario from database. The parameter 'tenant_id' can be replaced by 'any' if this scenario does not belong to this tenant.
Params: none
Response Content-type: application/json
{
"result": "Scenario 5638c64e-5b7e-11e5-a873-5254004aea96 Scenario2 deleted"
}
PUT /openmano/{tenant_id}/scenarios/{scenario_id}
Edit an existing scenario. Only can be edited the scenario name, scenario description, graphical topology of the VNFs and VNF name and description.
Params:
(TBC)
Response Content-type: application/json
Instances
GET /openmano/{tenant_id}/instances
Get instance list
Params: none
Response: Content-type: application/json
{
"instances": [
{
"description": null,
"tenant_id": "2db5634e-6604-11e6-950f-0800273e724c",
"created_at": "2016-08-19T13:58:16",
"scenario_id": "34752430-6604-11e6-950f-0800273e724c",
"name": "simple-instance",
"uuid": "369ac0d0-6604-11e6-950f-0800273e724c"
},
{
"description": null,
"tenant_id": "2db5634e-6604-11e6-950f-0800273e724c",
"created_at": "2016-08-19T13:58:26",
"scenario_id": "349ce93e-6604-11e6-950f-0800273e724c",
"name": "complex2-instance",
"uuid": "3cf18d42-6604-11e6-950f-0800273e724c"
}
]
}
GET /openmano/{tenant_id}/instances/{instance_id}
Get instances details. The parameter 'tenant_id' can be replaced by 'any' to obtain also from all tenants.
Params: none
Response: Content-type: application/json
{
"uuid": "06e9f0ea-a23c-11e5-bc4f-5254004aea96",
"description": "Instance x description",
"scenario_id": "cd4cf84e-5b7a-11e5-a873-5254004aea96",
"datacenter_id": "487c6844-40df-11e5-aaa7-5254004aea96",
"vnfs": [
{
"vnf_name": "VNF1",
"vnf_id": "bbf04ac4-5b7a-11e5-a873-5254004aea96",
"uuid": "06ea139a-a23c-11e5-bc4f-5254004aea96",
"vms": [
{
"status": "INACTIVE",
"uuid": "06ea4aae-a23c-11e5-bc4f-5254004aea96",
"vim_vm_id": "06e7ca2c-a23c-11e5-92d5-5254004aea96",
"created_at": "2015-12-14T09:24:00",
"interfaces": [],
"name": "VMF1"
}
]
}
],
"scenario_name": "Scenario x",
"nfvo_tenant_id": "76094a2a-3c16-11e5-9fb6-5254004aea96",
"nets": [],
"created_at": "2015-12-14T09:24:00",
"name": "Instance x"
}
DELETE /openmano/{tenant_id}/instances/{instance_id}
Delete instance from VIM and from database.
Params: none
Response Content-type: application/json
{
"result": "instance c8d1fca2-677c-11e5-bc4f-5254004aea96 deleted"
}
POST /openmano/{tenant\_id}/instances/{instance_id}/action
take an action over a scenario instance
Params: Content-type: application/json
No extra parameters are allowed. For reboot, the "type" is ignored
To start an instance:
{
"start": null
}
To pause an instance:
{
"pause": null
}
To resume an instance:
{
"resume": null
}
To shutoff an instance:
{
"shutoff": null
}
To shutdown an instance:
{
"shutdown": null
}
To forceOff an instance:
{
"forceOff": null
}
To rebuild an instance:
{
"rebuild": null
}
To reboot an instance:
{
"reboot": {
"type": "SOFT"
}
To obtain a console:
{
"console": "novnc"
}
Openmano response: Content-type: application/json
{
"3cf35eba-6604-11e6-950f-0800273e724c": {
"vim_result": 200,
"description": "https://alf-vdevelop2:9096/vnc_auto.html?token=548f5442-32ce-4ffa-b95c-f1d483520cc9",
"name": "VNF_2VMs-VM2"
},
"3cf40ee6-6604-11e6-950f-0800273e724c": {
"vim_result": 200,
"description": "https://alf-vdevelop2:9096/vnc_auto.html?token=67451dd3-c039-44f6-9860-1a69aad5338c",
"name": "VNF_2VMs-VM1"
},
"3cf26f78-6604-11e6-950f-0800273e724c": {
"vim_result": 200,
"description": "https://alf-vdevelop2:9096/vnc_auto.html?token=31f392f0-fee8-4d91-80a0-437b1149cbf8",
"name": "dataplaneVNF3-VM"
}
}
Miscellaneous
Physicalview
GET /openmano/{tenant_id}/physicalview/{datacenter}
Deprecated
Topology
POST /openmano/{tenant_id}/topology/deploy
Deprecated