Tacker API Overview

Tacker API provides REST API end-points based on ETSI NFV MANO standards. 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 Tacker API version.

Response:
{
    "versions": [
        {
            "status": "CURRENT",
            "id": "v1.0",
            "links": [
                {
                    "href": "http://10.18.160.13:9890/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": "",
            "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": "",
        "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": {
        "service_types": [{"service_type": "vnfd"}],
        "tenant_id": "bb6a3be1021a4746ab727a6c9296e797",
        "description": "OpenWRT router",
        "attributes": {
            "vnfd": "template_name: sample-vnfd\ndescription: demo-example\n\nservice_properties:\n  Id: sample-vnfd\n  vendor: tacker\n  version: 1\n\nvdus:\n  vdu1:\n    id: vdu1\n    vm_image: cirros-0.3.4-x86_64-uec\n    instance_type: m1.tiny\n\n    network_interfaces:\n      management:\n        network: net_mgmt\n        management: true\n      pkt_in:\n        network: net0\n      pkt_out:\n        network: net1\n\n    placement_policy:\n      availability_zone: nova\n\n    auto-scaling: noop\n\n    config:\n      param0: key0\n      param1: key1\n"
        },
        "name": "OpenWRT"
    }
}
Response:
{
   "vnfd": {
       "service_types": [
           {
               "service_type": "vnfd",
               "id": "336fe422-9fba-47c7-87fb-d48475c3e0ce"
           }
       ],
       "description": "OpenWRT router",
       "tenant_id": "4dd6c1d7b6c94af980ca886495bcfed0",
       "mgmt_driver": "noop",
       "infra_driver": "",
       "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": {
        "attributes": {},
        "vim_id": "",
        "description": "demo-example",
        "vnfd_id": "ad0c2c7c-825e-43c5-a402-b5710902b408",
        "name": "demo-vnf"
    }
}
Response:
{
    "vnf": {
        "status": "PENDING_CREATE",
        "description": "demo-example",
        "tenant_id": "bb6a3be1021a4746ab727a6c9296e797",
        "vim_id": "c91413b9-eaf9-47f7-86b6-3f3a3e29261e",
        "name": "demo-vnf",
        "instance_id": "050f4d0e-ff7c-4a5d-9dba-dbe238b3348b",
        "mgmt_url": null,
        "placement_attr": {
            "vim_name": "VIM0"
        },
        "error_reason": 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.