Files
tacker/doc/source/devref/mano_api.rst
gong yong sheng 447ed4a394 Fix tacker doc reference links
This fixes also the wrong MANO reference.

Change-Id: Ib6eac344e9d48b33a1ebf45f1ddb68e5cf55ea49
Closes-bug: 1515147
2015-11-16 15:31:31 +08:00

8.2 KiB

Tacker MANO API Overview

Tacker MANO API introduces new REST API end-points based on ETSI NFV MANO standards1. The two new resources introduced are 'vnfd' and 'vnf' for describing the 'vnfm' extension. The resources request and response formats are described in below sections.

API versions

Lists information for Tacker API version.

GET /

List API versions - Lists information about all Networking API versions.

:

Response:
    {
        "versions": [
            {
                "status": "CURRENT",
                "id": "v1.0",
                "links": [
                    {
                        "href": "http://10.18.160.13:8888/v1.0",
                        "rel": "self"
                    }
                ]
            }
        ]
    }

Vnfds

GET /v1.0/vnfds

List vnfds - List vnfds stored in the VNF catalog.

Response:
{
    "vnfds": [
        {
            "service_types": [
                {
                    "service_type": "vnfd",
                    "id": "378b774d-89f5-4634-9c65-9c49ed6f00ce"
                }
            ],
            "description": "OpenWRT with services",
            "tenant_id": "4dd6c1d7b6c94af980ca886495bcfed0",
            "mgmt_driver": "openwrt",
            "infra_driver": "heat",
            "attributes": {
                "vnfd": "template_name: OpenWRT\r\ndescription:
                template_description <sample_vnfd_template>"
            },
            "id": "247b045e-d64f-4ae0-a3b4-8441b9e5892c",
            "name": "openwrt_services"
        }
    ]
}

GET /v1.0/vnfds/{vnfd_id}

Show vnfd - Show information for a specified vnfd id.

Response:
{
    "vnfd": {
        "service_types": [
            {
                "service_type": "vnfd",
                "id": "378b774d-89f5-4634-9c65-9c49ed6f00ce"
            }
        ],
        "description": "OpenWRT with services",
        "tenant_id": "4dd6c1d7b6c94af980ca886495bcfed0",
        "mgmt_driver": "openwrt",
        "infra_driver": "heat",
        "attributes": {
            "vnfd": "template_name: OpenWRT\r\ndescription:
            template_description <sample_vnfd_template>"
        },
        "id": "247b045e-d64f-4ae0-a3b4-8441b9e5892c",
        "name": "openwrt_services"
    }
}

POST /v1.0/vnfds

Create vnfd - Create a vnfd entry based on the vnfd template.

Request:
    {"auth": {"tenantName": "admin", "passwordCredentials": {"username": "admin",
    "password": "devstack"}}, "vnfd": {"attributes": {"vnfd": "template_name:
    OpenWRT \r\ndescription: OpenWRT router\r\n\r\nservice_properties:\r\n  Id:
    sample-vnfd\r\n  vendor: tacker\r\n  version: 1\r\n\r\nvdus:\r\n  vdu1:\r\n
    id: vdu1\r\n    vm_image: cirros-0.3.2-x86_64-uec\r\n    instance_type:
    m1.tiny\r\n\r\n    network_interfaces:\r\n      management:\r\n        network:
     net_mgmt\r\n        management: true\r\n      pkt_in:\r\n        network:
     net0\r\n      pkt_out:\r\n        network: net1\r\n\r\n    placement_policy:
     \r\n      availability_zone: nova\r\n\r\n    auto-scaling: noop\r\n
     monitoring_policy: noop\r\n    failure_policy: noop\r\n\r\n    config:\r\n
     param0: key0\r\n      param1: key1"}, "service_types": [{"service_type":
     "vnfd"}], "mgmt_driver": "noop", "infra_driver": "heat"}}
Response:
 {
    "vnfd": {
        "service_types": [
            {
                "service_type": "vnfd",
                "id": "336fe422-9fba-47c7-87fb-d48475c3e0ce"
            }
        ],
        "description": "OpenWRT router",
        "tenant_id": "4dd6c1d7b6c94af980ca886495bcfed0",
        "mgmt_driver": "noop",
        "infra_driver": "heat",
        "attributes": {
            "vnfd": "template_name: OpenWRT \r\ndescription:
            template_description <sample_vnfd_template>"
        },
        "id": "ab10a543-22ee-43af-a441-05a9d32a57da",
        "name": "OpenWRT"
    }
}

DELETE /v1.0/vnfds/{vnfd_id}

Delete vnfd - Deletes a specified vnfd_id from the VNF catalog.

This operation does not accept a request body and does not return a response body.

Vnfs

GET /v1.0/vnfs

List vnfs - Lists instantiated vnfs in VNF Manager

Response:
    {
        "vnfs": [
            {
                "status": "ACTIVE",
                "name": "open_wrt",
                "tenant_id": "4dd6c1d7b6c94af980ca886495bcfed0",
                "instance_id": "f7c93726-fb8d-4036-8349-2e82f196e8f6",
                "mgmt_url": "{\"vdu1\": \"192.168.120.3\"}",
                "attributes": {
                    "service_type": "firewall",
                    "param_values": "",
                    "heat_template": "description: sample_template_description
                        type: OS::Nova::Server\n",
                    "monitoring_policy": "noop",
                    "failure_policy": "noop"
                },
                "id": "c9b4f5a5-d304-473a-a57e-b665b1f9eb8f",
                "description": "OpenWRT with services"
            }
        ]
    }

GET /v1.0/vnfs/{vnf_id}

Show vnf - Show information for a specified vnf_id.

Response:
    {
        "vnf": [
            {
                "status": "ACTIVE",
                "name": "open_wrt",
                "tenant_id": "4dd6c1d7b6c94af980ca886495bcfed0",
                "instance_id": "f7c93726-fb8d-4036-8349-2e82f196e8f6",
                "mgmt_url": "{\"vdu1\": \"192.168.120.3\"}",
                "attributes": {
                    "service_type": "firewall",
                    "param_values": "",
                    "heat_template": "description: OpenWRT with services\n
                    sample_template_description    type: OS::Nova::Server\n",
                    "monitoring_policy": "noop", "failure_policy": "noop"
                },
                "id": "c9b4f5a5-d304-473a-a57e-b665b1f9eb8f",
                "description": "OpenWRT with services"
            }
        ]
    }

POST /v1.0/vnfs

Create vnf - Create a vnf based on the vnfd template id.

Request:
    {"auth": {"tenantName": "admin", "passwordCredentials": {"username": "admin",
    "password": "devstack"}}, "vnf":
    {"vnfd_id": "d770ddd7-6014-4191-92d8-a2cd7a6cecd8"}}
Response:
    {
        "vnf": {
            "status": "PENDING_CREATE",
            "name": "",
            "tenant_id": "4dd6c1d7b6c94af980ca886495bcfed0",
            "description": "OpenWRT with services",
            "instance_id": "4f0d6222-afa0-4f02-8e19-69e7e4fd7edc",
            "mgmt_url": null,
            "attributes": {
                "service_type": "firewall",
                "heat_template": "description: OpenWRT with services\n
                <sample_heat_template> type: OS::Nova::Server\n",
                "monitoring_policy": "noop",
                "failure_policy": "noop"
            },
            "id": "e3158513-92f4-4587-b949-70ad0bcbb2dd",
            "vnfd_id": "247b045e-d64f-4ae0-a3b4-8441b9e5892c"
        }
    }

PUT /v1.0/vnfs/{vnf_id}

Update vnf - Update a vnf based on user config file or data.

Request:
    {"auth": {"tenantName": "admin", "passwordCredentials": {"username": "admin",
    "password": "devstack"}}, "vnf": {"attributes": {"config": "vdus:\n  vdu1:
    <sample_vdu_config> \n\n"}}}
Response:
    {
        "vnf": {
            "status": "PENDING_UPDATE",
            "name": "",
            "tenant_id": "4dd6c1d7b6c94af980ca886495bcfed0",
            "instance_id": "4f0d6222-afa0-4f02-8e19-69e7e4fd7edc",
            "mgmt_url": "{\"vdu1\": \"192.168.120.4\"}",
            "attributes": {
                "service_type": "firewall",
                "monitoring_policy": "noop",
                "config": "vdus:\n  vdu1:\n    config: {<sample_vdu_config>
                 type: OS::Nova::Server\n",
                "failure_policy": "noop"
            },
            "id": "e3158513-92f4-4587-b949-70ad0bcbb2dd",
            "description": "OpenWRT with services"
        }
    }

DELETE /v1.0/vnfs/{vnf_id}

Delete vnf - Deletes a specified vnf_id from the VNF list.

References


  1. ETSI NFV MANO↩︎