Add vnf packages documentation

Following are the list of documents updated for vnf package feature
usage:

1. api-reference document
2. release notes

Partial-Implements: blueprint tosca-csar-mgmt-driver
Change-Id: I82fc2e9d3f39e78b24eeb8034b0f611798c1aeb8
This commit is contained in:
bhagyashris 2019-09-06 13:02:25 +05:30
parent 4fa204b370
commit d7ca6c5f9b
8 changed files with 553 additions and 1 deletions

View File

@ -19,3 +19,4 @@ NFV Orchestration API v1.0
.. include:: classifiers.inc
.. include:: nsds.inc
.. include:: nss.inc
.. include:: vnf_packages.inc

View File

@ -55,6 +55,12 @@ vnf_id_path:
in: path
required: true
type: string
vnf_package_id_path:
description: |
The UUID of the VNF Package.
in: path
required: true
type: string
vnfd_id_path:
description: |
The UUID of the VNFD.
@ -77,6 +83,13 @@ vnffgd_id_path:
# variables in query
# variables in body
addressInformation:
description: |
Address information of the VNF package content. The NFVO can use this address
to obtain the VNF package.
in: body
required: true
type: string
alias:
description: |
The alias for the extension. For example,
@ -354,6 +367,37 @@ nss:
in: body
required: true
type: array
onboardingState:
description: |
On-boarding state of the VNF package.
The on-boarding state is represented by the "onboardingState" attribute in the "VnfPkgInfo"
information element with below values:
CREATED: The VNF Package information object is created.
UPLOADING: The VNF Package is being uploaded.
PROCESSING: The VNF Package is being processed, e.g. validation.
ONBOARDED: The VNF Package is successfully on-boarded.
in: body
required: true
type: string
operationalState:
description: |
Operational state of the VNF package.
The operational state is represented by the "operationalState" attribute in the "VnfPkgInfo"
information element with below values:
ENABLED: The VNF Package is enabled.
DISABLED: The VNF Package is disabled.
If the value of the onboardingState attribute is not equal to "ONBOARDED", the value of
the operationalState attribute shall be equal to "DISABLED".
in: body
required: true
type: string
password:
description: |
Password to be used for authentication. Shall be present if password is needed but
has not been provisioned out of band.
in: body
required: true
type: string
service_types:
description: |
A list of service type.
@ -417,6 +461,15 @@ sfcs:
in: body
required: true
type: array
software_images:
description: |
Information about VNF package artifacts that are software images.
This attribute shall not be present before the VNF package content is on-boarded.
Otherwise, this attribute shall be present unless it has been requested to be
excluded per attribute selector.
in: body
required: true
type: array
symmetrical:
description: |
Indicate whether reverse traffic should also flow through the path.
@ -453,6 +506,31 @@ updated_at:
in: body
required: true
type: string
usageState:
description: |
Usage state of the VNF package.
The usage state is represented by the "usageState" attribute in the "VnfPkgInfo" information
element with below values:
IN_USE: The VNF Package is in use.
NOT_IN_USE: The VNF Package is not in use.
If the value of the onboardingState attribute is not equal to "ONBOARDED", the value of
the usageState attribute shall be equal to "NOT_IN_USE".
in: body
required: true
type: string
userDefinedData:
description: |
User defined data for the VNF package.
in: body
required: true
type: object
userName:
description: |
User name to be used for authentication. Shall be present if user name is needed
but has not been provisioned out of band.
in: body
required: true
type: string
version_href:
description: |
Link to the API.
@ -708,6 +786,12 @@ vnf_monitoring_policy:
in: body
required: true
type: string
vnf_package_id:
description: |
Identifier of the VNF package. This identifier is allocated by the NFVO.
in: body
required: true
type: string
vnf_param_values:
description: |
VNF parameter object. These parameters will be substituted for VNF
@ -728,6 +812,28 @@ vnf_param_values_opt:
in: body
required: false
type: object
vnf_pkg_content:
description: |
A VNF Package is a tar-archive containing all the information required for managing
the lifecycle of a VNF.
The "Content-Type" HTTP header should be set to "application/zip".
in: body
required: true
type: object
vnf_pkg_links:
description: |
Links to resources related to this resource.
in: body
required: true
type: object
vnf_pkg_vnfd_id:
description: |
This identifier, which is managed by the VNF provider, identifies the VNF package and the VNFD
in a globally unique way. It is copied from the VNFD of the onboarded VNF package. It shall be
present after the VNF package content has been on-boarded and absent otherwise.
in: body
required: true
type: string
vnf_placement_attr:
description: |
VNF placement information object. This object includes ``region_name``
@ -741,6 +847,21 @@ vnf_placement_attr_opt:
in: body
required: false
type: object
vnf_product_name:
description: |
Name to identify the VNF product. Invariant for the VNF product lifetime.
This information is copied from the VNFD. It shall be present after the VNF
package content has been on-boarded and absent otherwise.
in: body
required: true
type: string
vnf_provider:
description: |
Provider of the VNF package and the VNFD. This information is copied from the VNFD.
It shall be present after the VNF package content has been on-boarded and absent otherwise.
in: body
required: true
type: string
vnf_resource_id:
description: |
The UUID of the VNF resource. This is equivalent to Heat stack resource ID.
@ -785,6 +906,15 @@ vnf_scale_type:
in: body
required: true
type: string
vnf_software_version:
description: |
Software version of the VNF. This is changed when there is any change to the software
included in the VNF package.
This information is copied from the VNFD. It shall be present after the VNF package
content has been on-boarded and absent otherwise.
in: body
required: true
type: string
vnf_status:
description: |
Status of the VNF.
@ -829,6 +959,14 @@ vnfd_template_source:
in: body
required: false
type: string
vnfd_version:
description: |
The version of the VNFD. This information is copied from the VNFD.
It shall be present after the VNF package content has been on-boarded
and absent otherwise.
in: body
required: true
type: string
vnfds:
description: |
A list of ``vnfd`` objects.
@ -899,4 +1037,3 @@ vnfs:
in: body
required: true
type: array

View File

@ -0,0 +1,5 @@
{
"userDefinedData":{
"abc":"xyz"
}
}

View File

@ -0,0 +1,20 @@
{
"usageState":"NOT_IN_USE",
"userDefinedData":{
"abc":"xyz"
},
"_links":{
"packageContent":{
"href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb/package_content"
},
"self":{
"href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb"
},
"vnfd":{
"href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb/vnfd"
}
},
"onboardingState":"CREATED",
"operationalState":"DISABLED",
"id":"4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb"
}

View File

@ -0,0 +1,69 @@
{
"vnf_packages":[
{
"vnfSoftwareVersion":"1.0",
"usageState":"NOT_IN_USE",
"vnfProductName":"Sample VNF",
"softwareImages":[
{
"imagePath":"",
"diskFormat":"qcow2",
"userMetadata":{
},
"id":"VirtualStorage",
"size":2,
"name":"VrtualStorage",
"checksum":{
"hash":"b9c3036539fd7a5f87a1bf38eb05fdde8b556a1a7e664dbeda90ed3cd74b4f9d",
"algorithm":"sha-256"
},
"minDisk":2,
"version":"0.4.0",
"provider":"provider",
"minRam":8192,
"containerFormat":"bare"
},
{
"imagePath":"",
"diskFormat":"qcow2",
"userMetadata":{
},
"id":"VDU1",
"size":1,
"name":"Software of VDU1",
"checksum":{
"hash":"b9c3036539fd7a5f87a1bf38eb05fdde8b556a1a7e664dbeda90ed3cd74b4f9d",
"algorithm":"sha-256"
},
"minDisk":1,
"version":"0.4.0",
"provider":"provider",
"minRam":0,
"containerFormat":"bare"
}
],
"vnfProvider":"Test VNF Provider",
"userDefinedData":{
"abc":"xyz"
},
"vnfdId":"b3ab49d6-389d-46f9-8650-d0bf778b5e92",
"_links":{
"packageContent":{
"href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb/package_content"
},
"self":{
"href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb"
},
"vnfd":{
"href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb/vnfd"
}
},
"vnfdVersion":"1.0",
"onboardingState":"ONBOARDED",
"operationalState":"DISABLED",
"id":"4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb"
}
]
}

View File

@ -0,0 +1,65 @@
{
"vnfSoftwareVersion":"1.0",
"usageState":"NOT_IN_USE",
"vnfProductName":"Sample VNF",
"softwareImages":[
{
"imagePath":"",
"diskFormat":"qcow2",
"userMetadata":{
},
"id":"VirtualStorage",
"size":2,
"name":"VrtualStorage",
"checksum":{
"hash":"b9c3036539fd7a5f87a1bf38eb05fdde8b556a1a7e664dbeda90ed3cd74b4f9d",
"algorithm":"sha-256"
},
"minDisk":2,
"version":"0.4.0",
"provider":"provider",
"minRam":8192,
"containerFormat":"bare"
},
{
"imagePath":"",
"diskFormat":"qcow2",
"userMetadata":{
},
"id":"VDU1",
"size":1,
"name":"Software of VDU1",
"checksum":{
"hash":"b9c3036539fd7a5f87a1bf38eb05fdde8b556a1a7e664dbeda90ed3cd74b4f9d",
"algorithm":"sha-256"
},
"minDisk":1,
"version":"0.4.0",
"provider":"provider",
"minRam":0,
"containerFormat":"bare"
}
],
"vnfProvider":"Test VNF Provider",
"userDefinedData":{
"abc":"xyz"
},
"vnfdId":"b3ab49d6-389d-46f9-8650-d0bf778b5e92",
"_links":{
"packageContent":{
"href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb/package_content"
},
"self":{
"href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb"
},
"vnfd":{
"href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb/vnfd"
}
},
"vnfdVersion":"1.0",
"onboardingState":"ONBOARDED",
"operationalState":"DISABLED",
"id":"4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb"
}

View File

@ -0,0 +1,243 @@
.. -*- rst -*-
====================================================
Virtualized Network Function Packages (VNF packages)
====================================================
Manages Virtualized Network Function Packages (VNF Packages) and their resources.
A VNF Package is a tar-archive containing all the information required for managing
the lifecycle of a VNF.
Create VNF Package
==================
.. rest_method:: POST /vnfpkgm/v1/vnf_packages
Creates a VNF Package.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 201
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- userDefinedData: userDefinedData
Request Example
---------------
.. literalinclude:: samples/vnf_packages/vnf-packages-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- id: vnf_package_id
- _links: vnf_pkg_links
- onboardingState: onboardingState
- operationalState: operationalState
- usageState: usageState
- userDefinedData: userDefinedData
Response Example
----------------
.. literalinclude:: samples/vnf_packages/vnf-packages-create-response.json
:language: javascript
List VNF Packages
=================
.. rest_method:: GET /vnfpkgm/v1/vnf_packages
Lists VNF Packages.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 200
.. rest_status_code:: error status.yaml
- 401
- 403
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- id: vnf_package_id
- vnfdId: vnf_pkg_vnfd_id
- vnfProvider: vnf_provider
- vnfProductName: vnf_product_name
- vnfSoftwareVersion: vnf_software_version
- vnfdVersion: vnfd_version
- softwareImages: software_images
- onboardingState: onboardingState
- operationalState: operationalState
- usageState: usageState
- userDefinedData: userDefinedData
- _links: vnf_pkg_links
Response Example
----------------
.. literalinclude:: samples/vnf_packages/vnf-packages-list-response.json
:language: javascript
Show VNF Package
=================
.. rest_method:: GET /vnfpkgm/v1/vnf_packages/{vnf_package_id}
Shows information of a given VNF Package.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 200
.. rest_status_code:: error status.yaml
- 401
- 403
- 404
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- vnf_package_id: vnf_package_id_path
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- id: vnf_package_id
- vnfdId: vnf_pkg_vnfd_id
- vnfProvider: vnf_provider
- vnfProductName: vnf_product_name
- vnfSoftwareVersion: vnf_software_version
- vnfdVersion: vnfd_version
- softwareImages: software_images
- onboardingState: onboardingState
- operationalState: operationalState
- usageState: usageState
- userDefinedData: userDefinedData
- _links: vnf_pkg_links
Response Example
----------------
.. literalinclude:: samples/vnf_packages/vnf-packages-show-response.json
:language: javascript
Delete VNF Package
==================
.. rest_method:: DELETE /vnfpkgm/v1/vnf_packages/{vnf_package_id}
Deletes a given VNF Package.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 204
.. rest_status_code:: error status.yaml
- 401
- 403
- 404
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- vnf_package_id: vnf_package_id_path
Upload VNF Package from content
===============================
.. rest_method:: PUT /vnfpkgm/v1/vnf_packages/{vnf_package_id}/package_content
Upload a given VNF Package from content.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 202
.. rest_status_code:: error status.yaml
- 401
- 403
- 404
- 409
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- vnf_package_id: vnf_package_id_path
- vnf_package_content: vnf_pkg_content
Upload VNF Package from uri
===========================
.. rest_method:: POST /vnf_packages/{vnf_package_id}/package_content/upload_from_uri
Upload a given VNF Package from content.
Response Codes
--------------
.. rest_status_code:: success status.yaml
- 202
.. rest_status_code:: error status.yaml
- 401
- 400
- 403
- 404
- 409
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- vnf_package_id: vnf_package_id_path
- addressInformation: addressInformation
- userName: userName
- password: password

View File

@ -0,0 +1,12 @@
---
features:
- |
Added new RESTful APIs for managing VNF packages required for managing the
lifecycle of a VNF. See the `spec`_ for more details.
.. note:: VNF create API can create a VNF using a VNFD registered by
VNFD create API only. VNF creation and instantiation using VNF package
will be made available in future release.
.. _spec : https://specs.openstack.org/openstack/tacker-specs/specs/train/vnf_package_support.html