summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorthmsdt <thomas.kulik@telekom.de>2023-07-04 09:28:47 +0200
committerthmsdt <thomas.kulik@telekom.de>2023-07-04 10:57:54 +0200
commitee1f0741561484298eba353969ce67d89ef98220 (patch)
tree5950b334a4f5bd7e2cd882900d08e3c4877f50d5
parent22f97cbfa5d8ed9a3e16720ebf87965a563cb94f (diff)
fix doc config files
Issue-ID: DOC-811 Signed-off-by: thmsdt <thomas.kulik@telekom.de> Change-Id: I1102b3fe581ff37859eb09259c33955b44f94283
-rw-r--r--.readthedocs.yaml12
-rw-r--r--docs/conf.py5
-rw-r--r--docs/files/VNFSDK-Marketplace-userguide-vendors.rst2
-rw-r--r--docs/files/csar-validation.rst4
-rw-r--r--docs/files/dictionary-validation.rst58
-rw-r--r--docs/files/marketplace-overview.rst2
-rw-r--r--docs/files/swagger.json831
-rw-r--r--docs/files/swagger.yaml565
-rw-r--r--docs/index.rst12
-rw-r--r--docs/release-notes.rst418
-rw-r--r--docs/tox.ini23
11 files changed, 1684 insertions, 248 deletions
diff --git a/.readthedocs.yaml b/.readthedocs.yaml
index 3797dc8..f56b3b7 100644
--- a/.readthedocs.yaml
+++ b/.readthedocs.yaml
@@ -3,18 +3,16 @@
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
-version: 2
-
-formats:
- - htmlzip
+version: 2
build:
- image: latest
+ os: ubuntu-20.04
+ tools:
+ python: "3.8"
python:
- version: 3.7
install:
- - requirements: docs/requirements-docs.txt
+ - requirements: docs/requirements-docs.txt
sphinx:
configuration: docs/conf.py
diff --git a/docs/conf.py b/docs/conf.py
index a9c42b6..943ddcd 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -52,5 +52,8 @@ def setup(app):
app.add_css_file("css/ribbon.css")
linkcheck_ignore = [
- r'http://localhost:\d+/'
+ r'http://localhost:\d+/',
+ r'https://WORKER_IP:*',
+ r'http://WORKER_IP:*',
+ r'http://hostIP:*'
]
diff --git a/docs/files/VNFSDK-Marketplace-userguide-vendors.rst b/docs/files/VNFSDK-Marketplace-userguide-vendors.rst
index 01d7b4c..b99636f 100644
--- a/docs/files/VNFSDK-Marketplace-userguide-vendors.rst
+++ b/docs/files/VNFSDK-Marketplace-userguide-vendors.rst
@@ -3,7 +3,7 @@
.. Copyright 2017 Huawei Technologies Co., Ltd.
VNF SDK Marketplace User Guide for VNF Suppliers
-==========================================
+================================================
The VNF SDK Marketplace helps vendors validate VNFs and connect with suppliers.
To upload and validate VNFs, vendors will use the web GUI.
diff --git a/docs/files/csar-validation.rst b/docs/files/csar-validation.rst
index 458dab2..4224218 100644
--- a/docs/files/csar-validation.rst
+++ b/docs/files/csar-validation.rst
@@ -59,9 +59,11 @@ Generate certificates
openssl req -nodes -x509 -sha256 -newkey rsa:4096 -keyout "pnf.key" -out "pnf.cert" -days 365 -subj "/C=NL/ST=Zuid Holland/L=Rotterdam/O=Sparkling Network/OU=IT Dept/CN=$(whoami)s Sign Key"
Sign csar file with the private key
--------------------------------
+-----------------------------------
+
openssl dgst -sha256 -sign "pnf.key" -out pnf.sha256.cms pnf.csar
Verify signature
----------------
+
openssl dgst -sha256 -verify <(openssl x509 -in "pnf.cert" -pubkey -noout) -signature pnf.sha256.cms pnf.csar
diff --git a/docs/files/dictionary-validation.rst b/docs/files/dictionary-validation.rst
index 6cfd67e..7dfc593 100644
--- a/docs/files/dictionary-validation.rst
+++ b/docs/files/dictionary-validation.rst
@@ -31,20 +31,20 @@ The standalone version of Dictionary validation library is available from Honolu
How to download standalone version
----------------------------------
-All available jars are available at
-::
- https://nexus.onap.org/#nexus-search;quick~validation-dictionary
+All available jars are available at::
+
+ https://nexus.onap.org/#nexus-search;quick~validation-dictionary
To download a standalone version of Dictionary validation library you need to prepare a link for selected version of file or
manually download the file from Nexus (Viewing Repository: Releases).
-Template
-::
- wget -O validation-dictionary-<VERSION>-standalone.jar https://nexus.onap.org/service/local/artifact/maven/redirect?r=releases&g=org.onap.vnfsdk.validation&a=validation-dictionary&v=<VERSION>&e=jar&c=standalone
+Template::
+
+ wget -O validation-dictionary-<VERSION>-standalone.jar https://nexus.onap.org/service/local/artifact/maven/redirect?r=releases&g=org.onap.vnfsdk.validation&a=validation-dictionary&v=<VERSION>&e=jar&c=standalone
-For example link for version 1.2.16 looks like
-::
- wget -O validation-dictionary-1.2.16-standalone.jar https://nexus.onap.org/service/local/artifact/maven/redirect?r=releases&g=org.onap.vnfsdk.validation&a=validation-dictionary&v=1.2.16&e=jar&c=standalone
+For example link for version 1.2.16 looks like::
+
+ wget -O validation-dictionary-1.2.16-standalone.jar https://nexus.onap.org/service/local/artifact/maven/redirect?r=releases&g=org.onap.vnfsdk.validation&a=validation-dictionary&v=1.2.16&e=jar&c=standalone
Application return codes
------------------------
@@ -74,19 +74,23 @@ How to run standalone application?
1. Install Java 11 JRE
2. Download standalone version of Dictionary YAML validation application
-For example
-::
- wget -O validation-dictionary-1.2.16-standalone.jar https://nexus.onap.org/service/local/artifact/maven/redirect?r=snapshots&g=org.onap.vnfsdk.validation&a=validation-dictionary&v=1.2.16&e=jar&c=standalone
+For example::
+
+ wget -O validation-dictionary-1.2.16-standalone.jar https://nexus.onap.org/service/local/artifact/maven/redirect?r=snapshots&g=org.onap.vnfsdk.validation&a=validation-dictionary&v=1.2.16&e=jar&c=standalone
-3. Go to folder with downloaded application and run it
-::
- java -jar validation-dictionary-1.2.16-standalone.jar <path to dictionary_file.yaml>
+3. Go to folder with downloaded application and run it.
+
+Code::
+
+ java -jar validation-dictionary-1.2.16-standalone.jar <path to dictionary_file.yaml>
Examples
--------
-1. Successful validation
-::
+1. Successful validation.
+
+Code::
+
❯ java -jar validation-dictionary-1.2.16-standalone.jar /home/username/yaml_schema/Simple_Valid_Schema.yaml
# Executing a 'Validate Dictionary yaml' operation ...
@@ -116,8 +120,10 @@ Examples
}
-2. Failing validation
-::
+2. Failing validation.
+
+Code::
+
❯ java -jar validation-dictionary-1.2.16-standalone.jar /home/username/yaml_schema/Dictionary.yaml
# Executing a 'Validate Dictionary yaml' operation ...
@@ -189,7 +195,9 @@ Examples
}
3. Validation internal error
-::
+
+Code::
+
❯ java -jar validation-dictionary-1.2.16-standalone.jar /home/username/Not_Yaml_File.txt
# Executing a 'Validate Dictionary yaml' operation ...
@@ -211,12 +219,14 @@ How to run Dictionary YAML validation as an Oclip command?
1. Run Oclip and execute a command:
-Command
-::
+Code::
+
oclip --product onap-honolulu dictionary-validate --yaml <path-to-yaml-file>
-For example
-::
+For example:
+
+Code::
+
vnfadmin@ddc559540515:/tmp$ oclip --product onap-honolulu dictionary-validate --yaml /tmp/Simple_Valid_Schema.yaml
{"file":"/tmp/Simple_Valid_Schema.yaml","date":"Mon Dec 28 07:38:43 UTC 2020","criteria":"PASS","errors":"[]"}
diff --git a/docs/files/marketplace-overview.rst b/docs/files/marketplace-overview.rst
index 0568bdc..ba1d92e 100644
--- a/docs/files/marketplace-overview.rst
+++ b/docs/files/marketplace-overview.rst
@@ -68,7 +68,7 @@ This will start two Docker containers:
Once started, access the Marketplace from your web browser.
-3. Connect to http://{host}:8702/onapui/vnfmarket to access the user interface
+3. Connect to http://hostIP:8702/onapui/vnfmarket to access the user interface
VNF SDK Tools
~~~~~~~~~~~~~
diff --git a/docs/files/swagger.json b/docs/files/swagger.json
new file mode 100644
index 0000000..e91b326
--- /dev/null
+++ b/docs/files/swagger.json
@@ -0,0 +1,831 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "description": "These are the APIs for the ONAP VNFSDK Marketplace. VNFSDK helps to package and validate VNFs for onboarding into ONAP. You can find out more about VNFSDK at [http://onap.readthedocs.io](http://onap.readthedocs.io/en/latest/submodules/vnfsdk/model.git/docs/files/vnfsdk-apis.html).",
+ "version": "1.0.0",
+ "title": "ONAP VNFSDK",
+ "contact": {
+ "email": "onap-discuss@lists.onap.org"
+ },
+ "license": {
+ "name": "Apache 2.0",
+ "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
+ }
+ },
+ "host": "onap.readthedocs.io",
+ "basePath": "/onapapi/marketplace/v1",
+ "tags": [
+ {
+ "name": "csars",
+ "description": "VNF CSAR information",
+ "externalDocs": {
+ "description": "Find out more",
+ "url": "http://wiki.onap.org"
+ }
+ },
+ {
+ "name": "VTP Scenario"
+ },
+ {
+ "name": "VTP Execution"
+ }
+ ],
+ "schemes": [
+ "http"
+ ],
+ "paths": {
+ "/csars": {
+ "get": {
+ "summary": "Query VNF Package by conditions",
+ "description": "Query VNF package",
+ "operationId": "queryVnf",
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "VNF package"
+ ],
+ "parameters": [
+ {
+ "name": "conditions",
+ "in": "query",
+ "description": "Conditions that need to be considered for filter",
+ "required": true,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Csars"
+ }
+ }
+ },
+ "400": {
+ "description": "Invalid status value"
+ }
+ }
+ },
+ "post": {
+ "summary": "Upload/Re-Upload VNF Package",
+ "description": "",
+ "operationId": "addVnf",
+ "consumes": [
+ "multipart/form-data"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "VNF package"
+ ],
+ "parameters": [
+ {
+ "in": "body",
+ "name": "body",
+ "description": "VNF objects to add to the Marketplace",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Csars"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/ApiResponse"
+ }
+ }
+ }
+ }
+ },
+ "/csars/{csarId}": {
+ "get": {
+ "tags": [
+ "csarId"
+ ],
+ "summary": "Find vnf by CSAR ID",
+ "description": "Returns a single vnf",
+ "operationId": "getVnfByCsarId",
+ "produces": [
+ "application/xml",
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "csarId",
+ "in": "path",
+ "description": "CSAR ID of VNF to return",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/Csars"
+ }
+ },
+ "400": {
+ "description": "Invalid ID supplied"
+ },
+ "404": {
+ "description": "VNF not found"
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "csarId"
+ ],
+ "summary": "Updates a VNF in the Marketplace with form data",
+ "description": "",
+ "operationId": "updateCsar",
+ "consumes": [
+ "application/x-www-form-urlencoded"
+ ],
+ "produces": [
+ "application/xml",
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "csarId",
+ "in": "path",
+ "description": "CSAR ID of VNF that needs to be updated",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "name",
+ "in": "formData",
+ "description": "Updated name of the VNF",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "fileNamee",
+ "in": "formData",
+ "description": "Updated filename of the csar",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "405": {
+ "description": "Invalid input"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "csarId"
+ ],
+ "summary": "Deletes a VNF",
+ "description": "",
+ "operationId": "deleteVnf",
+ "produces": [
+ "application/xml",
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "csarId",
+ "in": "path",
+ "description": "VNF CSAR ID to delete",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "400": {
+ "description": "Invalid ID supplied"
+ }
+ }
+ }
+ },
+ "/csars/{csarId}/files": {
+ "get": {
+ "tags": [
+ "csarId"
+ ],
+ "summary": "Download vnf",
+ "description": "Download a single vnf",
+ "operationId": "downloadVnf",
+ "produces": [
+ "application/xml",
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "csarId",
+ "in": "path",
+ "description": "CSAR ID of VNF to return",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/Csars"
+ }
+ },
+ "400": {
+ "description": "Invalid ID supplied"
+ },
+ "404": {
+ "description": "VNF not found"
+ }
+ }
+ }
+ },
+ "/vtp/scenarios/{scenario}/testsuites": {
+ "get": {
+ "tags": [
+ "VTP Scenario"
+ ],
+ "summary": " List available test suties in given scenario",
+ "description": "",
+ "operationId": "listTestSuties",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "scenario",
+ "in": "path",
+ "description": "Test scenario name",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VTPTestSuite"
+ }
+ }
+ },
+ "500": {
+ "description": "Failed to perform the operation",
+ "schema": {
+ "$ref": "#/definitions/VTPError"
+ }
+ }
+ }
+ }
+ },
+ "/vtp/scenarios/{scenario}/testcases": {
+ "get": {
+ "tags": [
+ "VTP Scenario"
+ ],
+ "summary": " List available test cases",
+ "description": "",
+ "operationId": "listTestcases",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "scenario",
+ "in": "path",
+ "description": "Test scenario name",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "testSuiteName",
+ "in": "query",
+ "description": "Test suite name",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VTPTestCase"
+ }
+ }
+ },
+ "500": {
+ "description": "Failed to perform the operation",
+ "schema": {
+ "$ref": "#/definitions/VTPError"
+ }
+ }
+ }
+ }
+ },
+ "/vtp/scenarios/{scenario}/testsuites/{testSuiteName}/testcases/{testCaseName}": {
+ "get": {
+ "tags": [
+ "VTP Scenario"
+ ],
+ "summary": "Retrieve test cases details like inputs outputs and test suite name",
+ "description": "",
+ "operationId": "getTestcase",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "scenario",
+ "in": "path",
+ "description": "Test scenario name",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "testSuiteName",
+ "in": "path",
+ "description": "Test case name",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "testCaseName",
+ "in": "path",
+ "description": "Test case name",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/VTPTestCase"
+ }
+ },
+ "404": {
+ "description": "Test case does not exist",
+ "schema": {
+ "$ref": "#/definitions/VTPError"
+ }
+ },
+ "500": {
+ "description": "Failed to perform the operation",
+ "schema": {
+ "$ref": "#/definitions/VTPError"
+ }
+ }
+ }
+ }
+ },
+ "/vtp/executions/{executionId}": {
+ "get": {
+ "tags": [
+ "VTP Execution"
+ ],
+ "summary": " Retrieve test execution complete details",
+ "description": "",
+ "operationId": "getTestExecution",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "executionId",
+ "in": "path",
+ "description": "Test execution Id",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/VTPTestExecution"
+ }
+ },
+ "500": {
+ "description": "Failed to perform the operation",
+ "schema": {
+ "$ref": "#/definitions/VTPError"
+ }
+ }
+ }
+ }
+ },
+ "/vtp/scenarios": {
+ "get": {
+ "tags": [
+ "VTP Scenario"
+ ],
+ "summary": " List available test scenarios",
+ "description": "",
+ "operationId": "listTestScenarios",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VTPTestScenario"
+ }
+ }
+ },
+ "500": {
+ "description": "Failed to perform the operation",
+ "schema": {
+ "$ref": "#/definitions/VTPError"
+ }
+ }
+ }
+ }
+ },
+ "/vtp/executions": {
+ "get": {
+ "tags": [
+ "VTP Execution"
+ ],
+ "summary": " List test executions",
+ "description": "",
+ "operationId": "listTestExecutions",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "requestId",
+ "in": "query",
+ "description": "Test request Id",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "scenario",
+ "in": "query",
+ "description": "Test scenario name",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "testsuiteName",
+ "in": "query",
+ "description": "Test suite name",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "testcaseName",
+ "in": "query",
+ "description": "Test case name",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "profileName",
+ "in": "query",
+ "description": "Test profile name",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "startTime",
+ "in": "query",
+ "description": "Test execution start time",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "endTime",
+ "in": "query",
+ "description": "Test execution end time",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VTPTestExecution"
+ }
+ }
+ },
+ "500": {
+ "description": "Failed to perform the operation",
+ "schema": {
+ "$ref": "#/definitions/VTPError"
+ }
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "VTP Execution"
+ ],
+ "summary": "Execute the test case with given inputs in 'executions' form-data as key-value pair of parameter's name vs parameter's value. If parameter is binary type thenmulti-part form-data 'file' should be used to feed the binary file content and it can be more than once. To use the given file as input parameter, prefix the value with file://<filename>.",
+ "description": "",
+ "operationId": "executeTestcases1",
+ "consumes": [
+ "multipart/form-data"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "requestId",
+ "in": "query",
+ "description": "Request Id",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "file",
+ "in": "formData",
+ "description": "Testcase File arguments",
+ "required": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FormDataBodyPart"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "name": "executions",
+ "in": "formData",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VTPTestExecution"
+ }
+ }
+ },
+ "500": {
+ "description": "Failed to perform the operation",
+ "schema": {
+ "$ref": "#/definitions/VTPError"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Csars": {
+ "type": "object",
+ "required": [
+ "csarId"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "example": "CSAR"
+ },
+ "name": {
+ "type": "string",
+ "example": "NanocellGateway"
+ },
+ "fileName": {
+ "type": "string"
+ },
+ "creationDate": {
+ "type": "string"
+ },
+ "modificationDate": {
+ "type": "string"
+ },
+ "readDate": {
+ "type": "string"
+ },
+ "size": {
+ "type": "string",
+ "example": "37 MB"
+ },
+ "provider": {
+ "type": "string",
+ "example": "XYZ"
+ },
+ "version": {
+ "type": "string",
+ "example": "v1.0.0"
+ },
+ "createTime": {
+ "type": "string"
+ },
+ "modifyTime": {
+ "type": "string"
+ },
+ "downloadUri": {
+ "type": "string",
+ "example": "http://msb_ip:msb_port/files/marketplace/CSAR/XYZ/NanocellGW/v1.0"
+ },
+ "shortdesc": {
+ "type": "string",
+ "example": "XYZ Nanocell Gateway VNF"
+ },
+ "details": {
+ "type": "string"
+ },
+ "csarId": {
+ "type": "string",
+ "example": "78ede6f3-66cc-46ab-b748-38a6c010d272"
+ },
+ "parameters": {
+ "type": "array",
+ "xml": {
+ "name": "parameters",
+ "wrapped": true
+ },
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "xml": {
+ "name": "Csars"
+ }
+ },
+ "ApiResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "type": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ }
+ }
+ },
+ "VTPTestSuite": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ }
+ }
+ },
+ "VTPError": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ },
+ "httpStatus": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ "VTPTestCase": {
+ "type": "object",
+ "properties": {
+ "scenario": {
+ "type": "string"
+ },
+ "testCaseName": {
+ "type": "string"
+ },
+ "testSuiteName": {
+ "type": "string"
+ },
+ "descripton": {
+ "type": "string"
+ },
+ "author": {
+ "type": "string"
+ },
+ "inputs": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VTPTestCaseInput"
+ }
+ },
+ "outputs": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VTPTestCaseOutput"
+ }
+ }
+ }
+ },
+ "VTPTestCaseInput": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "defaultValue": {
+ "type": "string"
+ },
+ "isOptional": {
+ "type": "boolean"
+ },
+ "metadata": "type:object"
+ }
+ },
+ "VTPTestCaseOutput": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ }
+ }
+ },
+ "VTPTestExecution": {
+ "type": "object",
+ "properties": {
+ "scenario": {
+ "type": "string"
+ },
+ "testCaseName": {
+ "type": "string"
+ },
+ "testSuiteName": {
+ "type": "string"
+ },
+ "executionId": {
+ "type": "string"
+ },
+ "requestId": {
+ "type": "string"
+ },
+ "profile": {
+ "type": "string"
+ },
+ "parameters": {
+ "$ref": "#/definitions/JsonNode"
+ },
+ "results": {
+ "$ref": "#/definitions/JsonNode"
+ },
+ "status": {
+ "type": "string"
+ },
+ "startTime": {
+ "type": "string"
+ },
+ "endTime": {
+ "type": "string"
+ }
+ }
+ },
+ "VTPTestScenario": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "externalDocs": {
+ "description": "Find out more about VNFSDK",
+ "url": "https://onap.readthedocs.io/en/latest/submodules/vnfsdk/model.git/docs/index.html"
+ }
+} \ No newline at end of file
diff --git a/docs/files/swagger.yaml b/docs/files/swagger.yaml
new file mode 100644
index 0000000..83780c1
--- /dev/null
+++ b/docs/files/swagger.yaml
@@ -0,0 +1,565 @@
+swagger: "2.0"
+info:
+ description: "These are the APIs for the ONAP VNFSDK Marketplace. VNFSDK helps to package and validate VNFs for onboarding into ONAP. You can find out more about VNFSDK at [http://onap.readthedocs.io](http://onap.readthedocs.io/en/latest/submodules/vnfsdk/model.git/docs/files/vnfsdk-apis.html)."
+ version: "1.0.0"
+ title: "ONAP VNFSDK"
+ contact:
+ email: "onap-discuss@lists.onap.org"
+ license:
+ name: "Apache 2.0"
+ url: "http://www.apache.org/licenses/LICENSE-2.0.html"
+host: "onap.readthedocs.io"
+basePath: "/onapapi/marketplace/v1"
+tags:
+- name: "csars"
+ description: "VNF CSAR information"
+ externalDocs:
+ description: "Find out more"
+ url: "http://wiki.onap.org"
+- name: VTP Scenario
+- name: VTP Execution
+schemes:
+- "http"
+paths:
+ /csars:
+ get:
+ summary: "Query VNF Package by conditions"
+ description: "Query VNF package"
+ operationId: "queryVnf"
+ produces:
+ - "application/json"
+ tags:
+ - "VNF package"
+ parameters:
+ - name: "conditions"
+ in: "query"
+ description: "Conditions that need to be considered for filter"
+ required: true
+ type: "array"
+ items:
+ type: "string"
+ collectionFormat: "multi"
+ responses:
+ 200:
+ description: "successful operation"
+ schema:
+ type: "array"
+ items:
+ $ref: "#/definitions/Csars"
+ 400:
+ description: "Invalid status value"
+ post:
+ summary: "Upload/Re-Upload VNF Package"
+ description: ""
+ operationId: "addVnf"
+ consumes:
+ - "multipart/form-data"
+ produces:
+ - "application/json"
+ tags:
+ - "VNF package"
+ parameters:
+ - in: "body"
+ name: "body"
+ description: "VNF objects to add to the Marketplace"
+ required: true
+ schema:
+ $ref: "#/definitions/Csars"
+ responses:
+ 200:
+ description: "successful operation"
+ schema:
+ $ref: "#/definitions/ApiResponse"
+ /csars/{csarId}:
+ get:
+ tags:
+ - "csarId"
+ summary: "Find vnf by CSAR ID"
+ description: "Returns a single vnf"
+ operationId: "getVnfByCsarId"
+ produces:
+ - "application/xml"
+ - "application/json"
+ parameters:
+ - name: "csarId"
+ in: "path"
+ description: "CSAR ID of VNF to return"
+ required: true
+ type: "string"
+ responses:
+ 200:
+ description: "successful operation"
+ schema:
+ $ref: "#/definitions/Csars"
+ 400:
+ description: "Invalid ID supplied"
+ 404:
+ description: "VNF not found"
+ post:
+ tags:
+ - "csarId"
+ summary: "Updates a VNF in the Marketplace with form data"
+ description: ""
+ operationId: "updateCsar"
+ consumes:
+ - "application/x-www-form-urlencoded"
+ produces:
+ - "application/xml"
+ - "application/json"
+ parameters:
+ - name: "csarId"
+ in: "path"
+ description: "CSAR ID of VNF that needs to be updated"
+ required: true
+ type: "string"
+ - name: "name"
+ in: "formData"
+ description: "Updated name of the VNF"
+ required: false
+ type: "string"
+ - name: "fileNamee"
+ in: "formData"
+ description: "Updated filename of the csar"
+ required: false
+ type: "string"
+ responses:
+ 405:
+ description: "Invalid input"
+ delete:
+ tags:
+ - "csarId"
+ summary: "Deletes a VNF"
+ description: ""
+ operationId: "deleteVnf"
+ produces:
+ - "application/xml"
+ - "application/json"
+ parameters:
+ - name: "csarId"
+ in: "path"
+ description: "VNF CSAR ID to delete"
+ required: true
+ type: "string"
+ responses:
+ 400:
+ description: "Invalid ID supplied"
+ /csars/{csarId}/files:
+ get:
+ tags:
+ - "csarId"
+ summary: "Download vnf"
+ description: "Download a single vnf"
+ operationId: "downloadVnf"
+ produces:
+ - "application/xml"
+ - "application/json"
+ parameters:
+ - name: "csarId"
+ in: "path"
+ description: "CSAR ID of VNF to return"
+ required: true
+ type: "string"
+ responses:
+ 200:
+ description: "successful operation"
+ schema:
+ $ref: "#/definitions/Csars"
+ 400:
+ description: "Invalid ID supplied"
+ 404:
+ description: "VNF not found"
+ '/vtp/scenarios/{scenario}/testsuites':
+ get:
+ tags:
+ - VTP Scenario
+ summary: ' List available test suties in given scenario'
+ description: ''
+ operationId: listTestSuties
+ produces:
+ - application/json
+ parameters:
+ - name: scenario
+ in: path
+ description: Test scenario name
+ required: true
+ type: string
+ responses:
+ '200':
+ description: successful operation
+ schema:
+ type: array
+ items:
+ $ref: '#/definitions/VTPTestSuite'
+ '500':
+ description: Failed to perform the operation
+ schema:
+ $ref: '#/definitions/VTPError'
+
+ '/vtp/scenarios/{scenario}/testcases':
+ get:
+ tags:
+ - VTP Scenario
+ summary: ' List available test cases'
+ description: ''
+ operationId: listTestcases
+ produces:
+ - application/json
+ parameters:
+ - name: scenario
+ in: path
+ description: Test scenario name
+ required: true
+ type: string
+ - name: testSuiteName
+ in: query
+ description: Test suite name
+ required: false
+ type: string
+ responses:
+ '200':
+ description: successful operation
+ schema:
+ type: array
+ items:
+ $ref: '#/definitions/VTPTestCase'
+ '500':
+ description: Failed to perform the operation
+ schema:
+ $ref: '#/definitions/VTPError'
+ '/vtp/scenarios/{scenario}/testsuites/{testSuiteName}/testcases/{testCaseName}':
+ get:
+ tags:
+ - VTP Scenario
+ summary: Retrieve test cases details like inputs outputs and test suite name
+ description: ''
+ operationId: getTestcase
+ produces:
+ - application/json
+ parameters:
+ - name: scenario
+ in: path
+ description: Test scenario name
+ required: true
+ type: string
+ - name: testSuiteName
+ in: path
+ description: Test case name
+ required: true
+ type: string
+ - name: testCaseName
+ in: path
+ description: Test case name
+ required: true
+ type: string
+ responses:
+ '200':
+ description: successful operation
+ schema:
+ $ref: '#/definitions/VTPTestCase'
+ '404':
+ description: Test case does not exist
+ schema:
+ $ref: '#/definitions/VTPError'
+ '500':
+ description: Failed to perform the operation
+ schema:
+ $ref: '#/definitions/VTPError'
+ '/vtp/executions/{executionId}':
+ get:
+ tags:
+ - VTP Execution
+ summary: ' Retrieve test execution complete details'
+ description: ''
+ operationId: getTestExecution
+ produces:
+ - application/json
+ parameters:
+ - name: executionId
+ in: path
+ description: Test execution Id
+ required: true
+ type: string
+ responses:
+ '200':
+ description: successful operation
+ schema:
+ $ref: '#/definitions/VTPTestExecution'
+ '500':
+ description: Failed to perform the operation
+ schema:
+ $ref: '#/definitions/VTPError'
+ /vtp/scenarios:
+ get:
+ tags:
+ - VTP Scenario
+ summary: ' List available test scenarios'
+ description: ''
+ operationId: listTestScenarios
+ produces:
+ - application/json
+ parameters: []
+ responses:
+ '200':
+ description: successful operation
+ schema:
+ type: array
+ items:
+ $ref: '#/definitions/VTPTestScenario'
+ '500':
+ description: Failed to perform the operation
+ schema:
+ $ref: '#/definitions/VTPError'
+ /vtp/executions:
+ get:
+ tags:
+ - VTP Execution
+ summary: ' List test executions'
+ description: ''
+ operationId: listTestExecutions
+ produces:
+ - application/json
+ parameters:
+ - name: requestId
+ in: query
+ description: Test request Id
+ required: false
+ type: string
+ - name: scenario
+ in: query
+ description: Test scenario name
+ required: false
+ type: string
+ - name: testsuiteName
+ in: query
+ description: Test suite name
+ required: false
+ type: string
+ - name: testcaseName
+ in: query
+ description: Test case name
+ required: false
+ type: string
+ - name: profileName
+ in: query
+ description: Test profile name
+ required: false
+ type: string
+ - name: startTime
+ in: query
+ description: Test execution start time
+ required: false
+ type: string
+ - name: endTime
+ in: query
+ description: Test execution end time
+ required: false
+ type: string
+ responses:
+ '200':
+ description: successful operation
+ schema:
+ type: array
+ items:
+ $ref: '#/definitions/VTPTestExecution'
+ '500':
+ description: Failed to perform the operation
+ schema:
+ $ref: '#/definitions/VTPError'
+ post:
+ tags:
+ - VTP Execution
+ summary: 'Execute the test case with given inputs in ''executions'' form-data as key-value pair of parameter''s name vs parameter''s value. If parameter is binary type thenmulti-part form-data ''file'' should be used to feed the binary file content and it can be more than once. To use the given file as input parameter, prefix the value with file://<filename>.'
+ description: ''
+ operationId: executeTestcases1
+ consumes:
+ - multipart/form-data
+ produces:
+ - application/json
+ parameters:
+ - name: requestId
+ in: query
+ description: Request Id
+ required: false
+ type: string
+ - name: file
+ in: formData
+ description: Testcase File arguments
+ required: false
+ type: array
+ items:
+ $ref: '#/definitions/FormDataBodyPart'
+ collectionFormat: multi
+ - name: executions
+ in: formData
+ required: false
+ type: string
+ responses:
+ '200':
+ description: successful operation
+ schema:
+ type: array
+ items:
+ $ref: '#/definitions/VTPTestExecution'
+ '500':
+ description: Failed to perform the operation
+ schema:
+ $ref: '#/definitions/VTPError'
+definitions:
+ Csars:
+ type: "object"
+ required:
+ - "csarId"
+ properties:
+ type:
+ type: "string"
+ example: "CSAR"
+ name:
+ type: "string"
+ example: "NanocellGateway"
+ fileName:
+ type: "string"
+ creationDate:
+ type: "string"
+ modificationDate:
+ type: "string"
+ readDate:
+ type: "string"
+ size:
+ type: "string"
+ example: "37 MB"
+ provider:
+ type: "string"
+ example: "XYZ"
+ version:
+ type: "string"
+ example: "v1.0.0"
+ createTime:
+ type: "string"
+ modifyTime:
+ type: "string"
+ downloadUri:
+ type: "string"
+ example: "http://msb_ip:msb_port/files/marketplace/CSAR/XYZ/NanocellGW/v1.0"
+ shortdesc:
+ type: "string"
+ example: "XYZ Nanocell Gateway VNF"
+ details:
+ type: "string"
+ csarId:
+ type: "string"
+ example: "78ede6f3-66cc-46ab-b748-38a6c010d272"
+ parameters:
+ type: "array"
+ xml:
+ name: "parameters"
+ wrapped: true
+ items:
+ type: "string"
+ xml:
+ name: "Csars"
+ ApiResponse:
+ type: "object"
+ properties:
+ code:
+ type: "integer"
+ format: "int32"
+ type:
+ type: "string"
+ message:
+ type: "string"
+ VTPTestSuite:
+ type: object
+ properties:
+ name:
+ type: string
+ VTPError:
+ type: object
+ properties:
+ code:
+ type: string
+ message:
+ type: string
+ httpStatus:
+ type: integer
+ format: int32
+ VTPTestCase:
+ type: object
+ properties:
+ scenario:
+ type: string
+ testCaseName:
+ type: string
+ testSuiteName:
+ type: string
+ descripton:
+ type: string
+ author:
+ type: string
+ inputs:
+ type: array
+ items:
+ $ref: '#/definitions/VTPTestCaseInput'
+ outputs:
+ type: array
+ items:
+ $ref: '#/definitions/VTPTestCaseOutput'
+ VTPTestCaseInput:
+ type: object
+ properties:
+ name:
+ type: string
+ description:
+ type: string
+ type:
+ type: string
+ defaultValue:
+ type: string
+ isOptional:
+ type: boolean
+ metadata:
+ type:object
+ VTPTestCaseOutput:
+ type: object
+ properties:
+ name:
+ type: string
+ description:
+ type: string
+ type:
+ type: string
+
+ VTPTestExecution:
+ type: object
+ properties:
+ scenario:
+ type: string
+ testCaseName:
+ type: string
+ testSuiteName:
+ type: string
+ executionId:
+ type: string
+ requestId:
+ type: string
+ profile:
+ type: string
+ parameters:
+ $ref: '#/definitions/JsonNode'
+ results:
+ $ref: '#/definitions/JsonNode'
+ status:
+ type: string
+ startTime:
+ type: string
+ endTime:
+ type: string
+ VTPTestScenario:
+ type: object
+ properties:
+ name:
+ type: string
+
+
+externalDocs:
+ description: "Find out more about VNFSDK"
+ url: "https://onap.readthedocs.io/en/latest/submodules/vnfsdk/model.git/docs/index.html" \ No newline at end of file
diff --git a/docs/index.rst b/docs/index.rst
index dad3d0f..cba5c13 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -10,13 +10,17 @@ VNFSDK Documentation
:maxdepth: 1
:titlesonly:
+ release-notes
files/vnfsdk-apis
- :download:`swagger json <files/swagger.json>`
- :download:`swagger yaml <files/swagger.yaml>`
-
files/vnf-packaging-model-blueprint
files/marketplace-overview
+
+Files for download:
+ :download:`swagger json <files/swagger.json>`
+
+ :download:`swagger yaml <files/swagger.yaml>`
+
User Guides
===========
@@ -33,4 +37,4 @@ User Guides
files/Dovetail
files/VNFSDK-LFN-CVC
files/VNFSDK-Marketplace-userguide-installation
- files/VNFSDK-PMValidation-userguide.rst
+
diff --git a/docs/release-notes.rst b/docs/release-notes.rst
index 465ef2c..71bae3d 100644
--- a/docs/release-notes.rst
+++ b/docs/release-notes.rst
@@ -15,271 +15,258 @@ Release Notes
* developing validation and testing tools
Istanbul Maintenance release
----------------------------------
+----------------------------
-As following VNFSDK components are having log4j transitive dependencies, they are verified for log4j vulnerability and no issues identified:
+As following VNFSDK components are having log4j transitive dependencies, they
+are verified for log4j vulnerability and no issues identified:
* refrepo
* validation
Version: 10.0.0 (Jakarta)
---------------------------
+-------------------------
-:Release Date: 2022-06-09
+Release Date: 2022-06-09
no updates in this release
+
Version: 1.6.3
--------------
- :Release Date: 2021-04-01
- :Docker Version: 1.6.3
+Release Date: 2021-04-01
- **New Features**
+Docker Version: 1.6.3
- * Test cases are supported to add anotation about the release specific details
- * CSAR validation is updated to report the table of test cases supported
+**New Features**
- **Bug Fixes**
+* Test cases are supported to add anotation about the release specific details
- N/A
+* CSAR validation is updated to report the table of test cases supported
- **Known Issues**
+**Bug Fixes**
- N/A
+N/A
- **Security Notes**
+**Known Issues**
- *Fixed Security Issues*
+N/A
- N/A
+**Security Notes**
- *Known Security Issues*
+*Fixed Security Issues*
- N/A
+N/A
+
+*Known Security Issues*
+
+N/A
+
+*Known Vulnerabilities in Used Modules*
- *Known Vulnerabilities in Used Modules*
+N/A
- N/A
+**Upgrade Notes**
- **Upgrade Notes**
+N/A
- N/A
+**Deprecation Notes**
- **Deprecation Notes**
+N/A
- N/A
+**Other**
- **Other**
+N/A
- N/A
+Version: 1.6.2
+--------------
+Release Date: 2020-11-03
- Version: 1.6.2
- --------------
+Docker Version: 1.6.2
- :Release Date: 2020-11-03
- :Docker Version: 1.6.2
+**New Features**
- **New Features**
+* Added active scenario and profile management support
- * Added active scenario and profile management support
- * Added integration with Robot CSIT tests
- * Enabled auto discovery of test cases from 3rd party tool integration
- * Added support for cnf-conformance test support
+* Added integration with Robot CSIT tests
- **Bug Fixes**
+* Enabled auto discovery of test cases from 3rd party tool integration
- * Fix oclip issue and set OCLIP version used during docker image build, to 6.0.0
- - https://jira.onap.org/browse/CLI-325
- * Fix JSON parsing error returned from GET request
- - https://jira.onap.org/browse/VNFSDK-697
- * Fixed rule R130206 handling of CSARs with no TOSCA meta and no Certificate in root directory
- - https://jira.onap.org/browse/VNFSDK-481
- * Fixed rule R816745 that was not reporting error when CMS and TOSCA meta file were present,
- however TOSCA did not contain ETSI-Entry-Certificate
- - https://jira.onap.org/browse/VNFSDK-660
+* Added support for cnf-conformance test support
- **Known Issues**
+**Bug Fixes**
- N/A
+* Fix oclip issue and set OCLIP version used during docker image build, to 6.0.0
- **Security Notes**
+ - https://jira.onap.org/browse/CLI-325
- *Fixed Security Issues*
+* Fix JSON parsing error returned from GET request
- N/A
+ - https://jira.onap.org/browse/VNFSDK-697
- *Known Security Issues*
+* Fixed rule R130206 handling of CSARs with no TOSCA meta and no Certificate in root directory
- N/A
+ - https://jira.onap.org/browse/VNFSDK-481
- *Known Vulnerabilities in Used Modules*
+* Fixed rule R816745 that was not reporting error when CMS and TOSCA meta file were present,
+ however TOSCA did not contain ETSI-Entry-Certificate
- N/A
+ - https://jira.onap.org/browse/VNFSDK-660
- **Upgrade Notes**
+**Known Issues**
- N/A
+N/A
- **Deprecation Notes**
+**Security Notes**
- N/A
+*Fixed Security Issues*
- **Other**
+N/A
- N/A
+*Known Security Issues*
+N/A
- Version: 1.6.0
- --------------
+*Known Vulnerabilities in Used Modules*
- :Release Date: 2020-10-06
- :Docker Version: 1.6.0
+N/A
+**Upgrade Notes**
- **New Features**
- * R-972082: The PNF software information file is included in the package and it MUST be compliant to:
- The file extension which contains the PNF software version must be .yaml
- The PNF software version information must be specified as following: onap_pnf_sw_information: pnf_software_version: "<version>"
- * R-130206: The VNF/PNF package shall contain a Digest (a.k.a. hash) for each of the components of the VNF package.
- The table of hashes is included in the manifest file, which is signed with the VNF provider private key.
- In addition, the VNF provider shall include a signing certificate that includes the VNF provider public key,
- following a pre-defined naming convention and located either at the root of the archive or in a predefined location (e.g. directory).
- * R-816745: The VNF or PNF PROVIDER MUST provide the Service Provider with PM Meta Data (PM Dictionary)
- to support the analysis of PM events delivered to DCAE. The PM Dictionary is to be provided as a separate YAML artifact at onboarding and must follow
- the VES Event Listener Specification and VES Event Registration Specification
- which contain the format and content required.
- * Add new field called "warnings" to oclip json response. All ignored errors are now reported as warnings.
+N/A
+**Deprecation Notes**
- **Bug Fixes**
+N/A
- * Fixed package integrity issue with non mano arifacts.
- - https://jira.onap.org/browse/VNFSDK-581
- * Fixed VNF/PNF package integrity issue with CMS signature not containing certificate.
- - https://jira.onap.org/browse/VNFSDK-582
- * Fixed bug that was showing errors during validation of CSAR,
- when any other non_mano_artifact_set than onap_pnf_sw_information was present in manifest file.
- - https://jira.onap.org/browse/VNFSDK-585
- * Fixed bug that was generating invalid report when user run validation with all rules and single validation fails.
- - https://jira.onap.org/browse/VNFSDK-586
- * Fixed bug that was causing problem with loading rules properties.
- - https://jira.onap.org/browse/VNFSDK-587
- * Fixed package security SOL004 Option 1 make rule less restrictive as this rule is not implemented in SDC Onboarding
- - https://jira.onap.org/browse/VNFSDK-595
- * Fixed VNFSDK doesn't check if all files in package are listed in manifest file
- - https://jira.onap.org/browse/VNFSDK-583
- * Fixed rule R01123 that was reporting all files in ZIP as not present in manifest
- - https://jira.onap.org/browse/VNFSDK-583
- * Fixed rule R816745 that wasn't sending all exceptions connected with YAML parsing as validation error
- - https://jira.onap.org/browse/VNFSDK-644
- * Fixed rule R816745 that was searching for the path to PM_Dictionary in manifest file under name source,
- instead of Source (starting with a capital letter).
- Now both versions (source and Source) are accepted by this rule.
- - https://jira.onap.org/browse/VNFSDK-645
- * Fixed rule R130206 CMS and certificate searching and validation mechanism
- - https://jira.onap.org/browse/VNFSDK-595
+**Other**
+N/A
- **Known Issues**
- N/A
+Version: 1.6.0
+--------------
- **Security Notes**
+Release Date: 2020-10-06
- * Fixed Security Issues*
+Docker Version: 1.6.0
- * Upgraded from java 8 to java 11
- - https://jira.onap.org/browse/VNFSDK-646
- * Added non-vulnerable log4j version
- - https://jira.onap.org/browse/VNFSDK-553
- * Update certs expiration date from default 30 days to 730 days (2 years)
- - https://jira.onap.org/browse/VNFSDK-650
+**New Features**
+* R-972082: The PNF software information file is included in the package and it MUST be compliant to:
+ The file extension which contains the PNF software version must be .yaml
+ The PNF software version information must be specified as following: onap_pnf_sw_information: pnf_software_version: "<version>"
- *Known Security Issues*
+* R-130206: The VNF/PNF package shall contain a Digest (a.k.a. hash) for each of the components of the VNF package.
+ The table of hashes is included in the manifest file, which is signed with the VNF provider private key.
+ In addition, the VNF provider shall include a signing certificate that includes the VNF provider public key,
+ following a pre-defined naming convention and located either at the root of the archive or in a predefined location (e.g. directory).
- N/A
+* R-816745: The VNF or PNF PROVIDER MUST provide the Service Provider with PM Meta Data (PM Dictionary)
+ to support the analysis of PM events delivered to DCAE. The PM Dictionary is to be provided as a separate YAML artifact at onboarding and must follow
+ the VES Event Listener Specification and VES Event Registration Specification
+ which contain the format and content required.
- *Known Vulnerabilities in Used Modules*
+* Add new field called "warnings" to oclip json response. All ignored errors are now reported as warnings.
- **Upgrade Notes**
+**Bug Fixes**
- N/A
+* Fixed package integrity issue with non mano arifacts.
- **Deprecation Notes**
+ - https://jira.onap.org/browse/VNFSDK-581
- N/A
+* Fixed VNF/PNF package integrity issue with CMS signature not containing certificate.
- **Other**
+ - https://jira.onap.org/browse/VNFSDK-582
- N/A
+* Fixed bug that was showing errors during validation of CSAR,
+ when any other non_mano_artifact_set than onap_pnf_sw_information was present in manifest file.
+ - https://jira.onap.org/browse/VNFSDK-585
- Version: 1.5.2
- --------------
+* Fixed bug that was generating invalid report when user run validation with all rules and single validation fails.
- :Release Date: 2020-05-26
- :Docker Version: 1.5.2
+ - https://jira.onap.org/browse/VNFSDK-586
+* Fixed bug that was causing problem with loading rules properties.
+ - https://jira.onap.org/browse/VNFSDK-587
- **New Features**
- * Pods are enabled to run as non root user
- * Direct Vulnerability issues are addressed
- * HTTPS enabled in OOM deployment
- * Added VTP2OVP result translation tool to support OVP 2019.12
- * VTP architecture is contributed into LFN CNTT under VNF testing framework
- * VTP REST API is contributed to TMF v19.5 specifications 704, 706, 707, 708, 709, 710
+* Fixed package security SOL004 Option 1 make rule less restrictive as this rule is not implemented in SDC Onboarding
+ - https://jira.onap.org/browse/VNFSDK-595
+* Fixed VNFSDK doesn't check if all files in package are listed in manifest file
+ - https://jira.onap.org/browse/VNFSDK-583
- **Bug Fixes**
+* Fixed rule R01123 that was reporting all files in ZIP as not present in manifest
+ - https://jira.onap.org/browse/VNFSDK-583
- N/A
+* Fixed rule R816745 that wasn't sending all exceptions connected with YAML parsing as validation error
+ - https://jira.onap.org/browse/VNFSDK-644
- **Known Issues**
+* Fixed rule R816745 that was searching for the path to PM_Dictionary in manifest file under name source,
+ instead of Source (starting with a capital letter).
+ Now both versions (source and Source) are accepted by this rule.
- N/A
+ - https://jira.onap.org/browse/VNFSDK-645
- **Security Notes**
+* Fixed rule R130206 CMS and certificate searching and validation mechanism
- *Fixed Security Issues*
+ - https://jira.onap.org/browse/VNFSDK-595
- *Known Security Issues*
+**Known Issues**
- N/A
+N/A
- *Known Vulnerabilities in Used Modules*
+**Security Notes**
- **Upgrade Notes**
+* Fixed Security Issues*
- N/A
+ * Upgraded from java 8 to java 11
- **Deprecation Notes**
+ - https://jira.onap.org/browse/VNFSDK-646
- N/A
+ * Added non-vulnerable log4j version
- **Other**
+ - https://jira.onap.org/browse/VNFSDK-553
- N/A
+ * Update certs expiration date from default 30 days to 730 days (2 years)
+ - https://jira.onap.org/browse/VNFSDK-650
-Version: 1.4.0
---------------
+*Known Security Issues*
+N/A
-:Release Date: 2019-10-07
-:Docker Version: 1.4.0
+*Known Vulnerabilities in Used Modules*
+**Upgrade Notes**
+N/A
+
+**Deprecation Notes**
+
+N/A
+
+**Other**
+
+N/A
+
+Version: 1.5.2
+--------------
+
+Release Date: 2020-05-26
+
+Docker Version: 1.5.2
**New Features**
- * TOSCA based VNF validation enabled for supporting OVP & CVC
- * TOSCA based VNF compliance check based on some operators requirements
- * SDC now integrated VNFSDK VTP on VNF validation
- * ETSI SOL004 security check (CMS signature validation) enabled
- * Code quality improvement(e.g. replace the Jackson to Gson, sonar issue fix)
- * A C++ implement of VES spec 7.0.1 on ves-agent.
+
+* Pods are enabled to run as non root user
+* Direct Vulnerability issues are addressed
+* HTTPS enabled in OOM deployment
+* Added VTP2OVP result translation tool to support OVP 2019.12
+* VTP architecture is contributed into LFN CNTT under VNF testing framework
+* VTP REST API is contributed to TMF v19.5 specifications 704, 706, 707, 708, 709, 710
**Bug Fixes**
@@ -295,8 +282,7 @@ N/A
*Known Security Issues*
- * In default deployment VNFSDK (refrepo) exposes HTTP port 30297 outside of cluster. [`OJSI-154 <https://jira.onap.org/browse/OJSI-154>`_]
- * CVE-2019-12126 - demo-vnfsdk-vnfsdk exposes JDWP port 8000 on localhost which allows to gain root privileges inside the container [`OJSI-88 <https://jira.onap.org/browse/OJSI-88>`_]
+N/A
*Known Vulnerabilities in Used Modules*
@@ -313,19 +299,21 @@ N/A
N/A
-Version: 1.3.0
+Version: 1.4.0
--------------
+Release Date: 2019-10-07
-:Release Date: 2019-05-31
-
-
+Docker Version: 1.4.0
**New Features**
- * VTP (VNF Test Platform) is enabled with scenario and test case execution management
- * ONAP SDC is integrated with VTP for providing the validation as part of VSP on-boarding
- * CSAR validation is enabled with PNF and VNF compliance check for SOL004, SOL001 and VNFREQS
- *
+
+* TOSCA based VNF validation enabled for supporting OVP & CVC
+* TOSCA based VNF compliance check based on some operators requirements
+* SDC now integrated VNFSDK VTP on VNF validation
+* ETSI SOL004 security check (CMS signature validation) enabled
+* Code quality improvement(e.g. replace the Jackson to Gson, sonar issue fix)
+* A C++ implement of VES spec 7.0.1 on ves-agent.
**Bug Fixes**
@@ -341,8 +329,8 @@ N/A
*Known Security Issues*
- * In default deployment VNFSDK (refrepo) exposes HTTP port 30297 outside of cluster. [`OJSI-154 <https://jira.onap.org/browse/OJSI-154>`_]
- * CVE-2019-12126 - demo-vnfsdk-vnfsdk exposes JDWP port 8000 on localhost which allows to gain root privileges inside the container [`OJSI-88 <https://jira.onap.org/browse/OJSI-88>`_]
+* In default deployment VNFSDK (refrepo) exposes HTTP port 30297 outside of cluster. [`OJSI-154 <https://jira.onap.org/browse/OJSI-154>`_]
+* CVE-2019-12126 - demo-vnfsdk-vnfsdk exposes JDWP port 8000 on localhost which allows to gain root privileges inside the container [`OJSI-88 <https://jira.onap.org/browse/OJSI-88>`_]
*Known Vulnerabilities in Used Modules*
@@ -358,22 +346,63 @@ N/A
N/A
-Version: 1.2.0
+
+Version: 1.3.0
--------------
+Release Date: 2019-05-31
-:Release Date: 2018-11-30
+**New Features**
+* VTP (VNF Test Platform) is enabled with scenario and test case execution management
+* ONAP SDC is integrated with VTP for providing the validation as part of VSP on-boarding
+* CSAR validation is enabled with PNF and VNF compliance check for SOL004, SOL001 and VNFREQS
+*
+**Bug Fixes**
+N/A
+
+**Known Issues**
+
+N/A
+
+**Security Notes**
+
+*Fixed Security Issues*
+
+*Known Security Issues*
+
+* In default deployment VNFSDK (refrepo) exposes HTTP port 30297 outside of cluster. [`OJSI-154 <https://jira.onap.org/browse/OJSI-154>`_]
+* CVE-2019-12126 - demo-vnfsdk-vnfsdk exposes JDWP port 8000 on localhost which allows to gain root privileges inside the container [`OJSI-88 <https://jira.onap.org/browse/OJSI-88>`_]
+
+*Known Vulnerabilities in Used Modules*
+
+**Upgrade Notes**
+
+N/A
+
+**Deprecation Notes**
+
+N/A
+
+**Other**
+
+N/A
+
+Version: 1.2.0
+--------------
+
+Release Date: 2018-11-30
**New Features**
- * LFN CVC test support
- * Introduce VTP (VNF Test Platform) framework for test
- * Better integration with OPNFV Dovetail (VTP)
- * Experimental integration with OPNFV Dovetail
- * Preliminary implementation of VNF requirements
- * Support CSAR packaging SOL-004 option 1 (CSAR with TOSCA-Metadata directory)
- * Support HPA schema validation
+
+* LFN CVC test support
+* Introduce VTP (VNF Test Platform) framework for test
+* Better integration with OPNFV Dovetail (VTP)
+* Experimental integration with OPNFV Dovetail
+* Preliminary implementation of VNF requirements
+* Support CSAR packaging SOL-004 option 1 (CSAR with TOSCA-Metadata directory)
+* Support HPA schema validation
**Bug Fixes**
@@ -392,7 +421,7 @@ Quick Links:
- `Passing Badge information for VNFSDK <https://bestpractices.coreinfrastructure.org/en/projects/1588>`_
- - `Project Vulnerability Review Table for VNFSDK <https://wiki.onap.org/pages/viewpage.action?pageId=45298880>`_
+ - `Project Vulnerability Review Table for VNFSDK <https://wiki.onap.org/pages/viewpage.action?pageId=45298880>`__
**Upgrade Notes**
@@ -409,21 +438,20 @@ N/A
Version: 1.1.0
--------------
-
-:Release Date: 2018-06-07
-
-
+Release Date: 2018-06-07
**New Features**
- * Integration with SDC for VNF Onboarding
- * Functional test support
- * Incorporation of ICE tools for HEAT validation
- * Experimental integration with OPNFV Dovetail
- * Preliminary support for SOL-004
- * Support for HTTPS
+
+* Integration with SDC for VNF Onboarding
+* Functional test support
+* Incorporation of ICE tools for HEAT validation
+* Experimental integration with OPNFV Dovetail
+* Preliminary support for SOL-004
+* Support for HTTPS
**Bug Fixes**
- * Fix localization support
+
+* Fix localization support
**Known Issues**
@@ -431,14 +459,18 @@ N/A
**Security Notes**
-VNFSDK code has been formally scanned during build time using NexusIQ and all Critical vulnerabilities have been addressed, items that remain open have been assessed for risk and determined to be false positive. The VNFSDK open Critical security vulnerabilities and their risk assessment have been documented as part of the `project <https://wiki.onap.org/pages/viewpage.action?pageId=28377592>`_.
+VNFSDK code has been formally scanned during build time using NexusIQ and all
+Critical vulnerabilities have been addressed, items that remain open have been
+assessed for risk and determined to be false positive. The VNFSDK open critical
+security vulnerabilities and their risk assessment have been documented as part
+of the `project <https://wiki.onap.org/pages/viewpage.action?pageId=28377592>`__.
Quick Links:
- `VNFSDK project page <https://wiki.onap.org/display/DW/VNF+SDK+Project>`_
- `Passing Badge information for VNFSDK <https://bestpractices.coreinfrastructure.org/en/projects/1588>`_
- - `Project Vulnerability Review Table for VNFSDK <https://wiki.onap.org/pages/viewpage.action?pageId=28377592>`_
+ - `Project Vulnerability Review Table for VNFSDK <https://wiki.onap.org/pages/viewpage.action?pageId=28377592>`__
**Upgrade Notes**
* Updated to use Swagger for APIs
diff --git a/docs/tox.ini b/docs/tox.ini
index 71c6957..ce836cb 100644
--- a/docs/tox.ini
+++ b/docs/tox.ini
@@ -1,6 +1,6 @@
[tox]
minversion = 1.6
-envlist = docs,
+envlist = docs,docs-linkcheck,docs-spellcheck
skipsdist = true
[testenv:docs]
@@ -8,24 +8,18 @@ basepython = python3.8
deps =
-r{toxinidir}/requirements-docs.txt
-chttps://raw.githubusercontent.com/openstack/requirements/stable/yoga/upper-constraints.txt
- -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt
+ -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt?h=master
commands =
- sphinx-build -b html -n -d {envtmpdir}/doctrees ./ {toxinidir}/_build/html
- echo "Generated docs available in {toxinidir}/_build/html"
-whitelist_externals =
- echo
- git
- sh
+ sphinx-build -W -q -b html -n -d {envtmpdir}/doctrees {toxinidir} {toxinidir}/_build/html
[testenv:docs-linkcheck]
basepython = python3.8
deps =
-r{toxinidir}/requirements-docs.txt
-chttps://raw.githubusercontent.com/openstack/requirements/stable/yoga/upper-constraints.txt
- -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt
-commands = echo "Link Checking not enforced"
-#commands = sphinx-build -b linkcheck -d {envtmpdir}/doctrees ./ {toxinidir}/_build/linkcheck
-whitelist_externals = echo
+ -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt?h=master
+commands =
+ sphinx-build -W -q -b linkcheck -d {envtmpdir}/doctrees {toxinidir} {toxinidir}/_build/linkcheck
[testenv:docs-spellcheck]
basepython = python3.8
@@ -34,7 +28,4 @@ deps =
-chttps://raw.githubusercontent.com/openstack/requirements/stable/yoga/upper-constraints.txt
-chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt?h=master
commands =
- sphinx-build -W -q -b spelling -d {envtmpdir}/doctrees {toxinidir} {toxinidir}/_build/spellcheck
-
-
-
+ sphinx-build -q -b spelling -d {envtmpdir}/doctrees {toxinidir} {toxinidir}/_build/spellcheck