diff options
author | Niamh Core <niamh.core@est.tech> | 2021-09-14 14:48:01 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2021-09-14 14:48:01 +0000 |
commit | a73d90d02462ec0b09402917102dd2be8cd59df9 (patch) | |
tree | f79bc2a7641a52859084dbdcd0c632539e203f9d | |
parent | 1c9896a1905584150a720d14d745762f1014315c (diff) | |
parent | 3d1579cb8cfe7fe924181bc3e02c570dca6ae081 (diff) |
Merge "Create preliminary documentation for ONAP DMI-Plugin"
-rw-r--r-- | docs/_static/css/ribbon.css | 63 | ||||
-rw-r--r-- | docs/_static/dmi-plugin-modeling-concepts.png | bin | 0 -> 70110 bytes | |||
-rw-r--r-- | docs/_static/dmi-plugin-r9-arch-diagram.PNG | bin | 0 -> 28969 bytes | |||
-rw-r--r-- | docs/_static/favicon.ico | bin | 0 -> 2102 bytes | |||
-rw-r--r-- | docs/_static/logo_onap_2017.png | bin | 0 -> 12278 bytes | |||
-rw-r--r-- | docs/architecture.rst | 40 | ||||
-rw-r--r-- | docs/conf.py | 112 | ||||
-rw-r--r-- | docs/conf.yaml | 25 | ||||
-rw-r--r-- | docs/deployment.rst | 15 | ||||
-rw-r--r-- | docs/design.rst | 40 | ||||
-rw-r--r-- | docs/index.rst | 41 | ||||
-rw-r--r-- | docs/modeling.rst | 18 | ||||
-rw-r--r-- | docs/openapi/openapi.yaml | 428 | ||||
-rw-r--r-- | docs/overview.rst | 21 | ||||
-rw-r--r-- | docs/release-notes.rst | 129 | ||||
-rw-r--r-- | docs/requirements-docs.txt | 15 | ||||
-rw-r--r-- | docs/tox.ini | 22 | ||||
-rw-r--r-- | pom.xml | 137 |
18 files changed, 1105 insertions, 1 deletions
diff --git a/docs/_static/css/ribbon.css b/docs/_static/css/ribbon.css new file mode 100644 index 00000000..6008cb1a --- /dev/null +++ b/docs/_static/css/ribbon.css @@ -0,0 +1,63 @@ +.ribbon { + z-index: 1000; + background-color: #a00; + overflow: hidden; + white-space: nowrap; + position: fixed; + top: 25px; + right: -50px; + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); + -webkit-box-shadow: 0 0 10px #888; + -moz-box-shadow: 0 0 10px #888; + box-shadow: 0 0 10px #888; + +} + +.ribbon a { + border: 1px solid #faa; + color: #fff; + display: block; + font: bold 81.25% 'Helvetica Neue', Helvetica, Arial, sans-serif; + margin: 1px 0; + padding: 10px 50px; + text-align: center; + text-decoration: none; + text-shadow: 0 0 5px #444; + transition: 0.5s; +} + +.ribbon a:hover { + background: #c11; + color: #fff; +} + + +/* override table width restrictions */ +@media screen and (min-width: 767px) { + + .wy-table-responsive table td, .wy-table-responsive table th { + /* !important prevents the common CSS stylesheets from overriding + this as on RTD they are loaded after this stylesheet */ + white-space: normal !important; + } + + .wy-table-responsive { + overflow: visible !important; + } +} + +@media screen and (max-width: 767px) { + .wy-table-responsive table td { + white-space: nowrap; + } +} + +/* fix width of the screen */ + +.wy-nav-content { + max-width: none; +} diff --git a/docs/_static/dmi-plugin-modeling-concepts.png b/docs/_static/dmi-plugin-modeling-concepts.png Binary files differnew file mode 100644 index 00000000..77817e4e --- /dev/null +++ b/docs/_static/dmi-plugin-modeling-concepts.png diff --git a/docs/_static/dmi-plugin-r9-arch-diagram.PNG b/docs/_static/dmi-plugin-r9-arch-diagram.PNG Binary files differnew file mode 100644 index 00000000..a7910819 --- /dev/null +++ b/docs/_static/dmi-plugin-r9-arch-diagram.PNG diff --git a/docs/_static/favicon.ico b/docs/_static/favicon.ico Binary files differnew file mode 100644 index 00000000..cb712ebd --- /dev/null +++ b/docs/_static/favicon.ico diff --git a/docs/_static/logo_onap_2017.png b/docs/_static/logo_onap_2017.png Binary files differnew file mode 100644 index 00000000..5d064f43 --- /dev/null +++ b/docs/_static/logo_onap_2017.png diff --git a/docs/architecture.rst b/docs/architecture.rst new file mode 100644 index 00000000..65125764 --- /dev/null +++ b/docs/architecture.rst @@ -0,0 +1,40 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. Copyright (C) 2021 Nordix Foundation +.. _architecture: + +DMI Plugin Architecture +####################### + +.. warning:: draft + +.. toctree:: + :maxdepth: 1 + + +High Level Component Definition and Architectural Relationships +=============================================================== + +The DMI plugin provides a gateway for registration of CM Handles within CPS + +Project implementation proposal page describing scope is here: +`CPS-390 Spike: Define and Agree DMI Plugin REST Interface <https://wiki.onap.org/display/DW/CPS-390+Spike%3A+Define+and+Agree+DMI+Plugin+REST+Interface>`_ + +This page reflects the state for Istanbul-R9 release. + +.. image:: _static/dmi-plugin-r9-arch-diagram.PNG + +API definitions +=============== + +The DMI plugin provides following interfaces. + +.. list-table:: + :header-rows: 0 + + * - Interface name + - Interface definition + - Interface capabilities + - Protocol + +The DMI plugin Basic Concepts are described in :doc:`modeling`. diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 00000000..3aaddd19 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,112 @@ +# ============LICENSE_START======================================================= +# Copyright (C) 2021 Nordix Foundation +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# ============LICENSE_END========================================================= + + +from docutils.parsers.rst import directives +from docs_conf.conf import * + +branch = 'latest' +doc_url = 'https://docs.onap.org/projects' +master_doc = 'index' + +intersphinx_mapping = {} + +# Latest (change to branch) +intersphinx_mapping['onap-cps'] = ('{}/onap-cps/en/%s'.format(doc_url) % branch, None) + +linkcheck_ignore = [ + 'http://localhost', + 'https://example.com', + 'about:config', + # this URL is not directly reachable and must be configured in the system hosts file. + 'https://portal.api.simpledemo.onap.org:30225/ONAPPORTAL/login.htm', + # anchor issues + 'https://docs.onap.org/projects/onap-integration/en/latest/docs_usecases_release.html#.*', + 'https://docs.linuxfoundation.org/docs/communitybridge/easycla/contributors/contribute-to-a-gerrit-project#.*', + 'https://docs.onap.org/projects/onap-integration/en/latest/docs_robot.html#docs-robot', + 'https://docs.onap.org/projects/onap-integration/en/latest/docs_usecases_release.html#docs-usecases-release', + 'https://docs.onap.org/projects/onap-integration/en/latest/docs_usecases.html#docs-usecases', + 'https://docs.onap.org/projects/onap-integration/en/latest/usecases/release_non_functional_requirements.html#release-non-functional-requirements', +] + + +html_last_updated_fmt = '%d-%b-%y %H:%M' + + +def setup(app): + app.add_css_file("css/ribbon.css") + + +needs_extra_options = { + "target": directives.unchanged, + "keyword": directives.unchanged, + "introduced": directives.unchanged, + "updated": directives.unchanged, + "impacts": directives.unchanged, + "validation_mode": directives.unchanged, + "validated_by": directives.unchanged, + "test": directives.unchanged, + "test_case": directives.unchanged, + "test_file": directives.unchanged, + "notes": directives.unchanged, +} + +needs_id_regex = "^[A-Z0-9]+-[A-Z0-9]+" +needs_id_required = True +needs_title_optional = True + +needs_template_collapse = """ +.. _{{id}}: + +{% if hide == false -%} +.. role:: needs_tag +.. role:: needs_status +.. role:: needs_type +.. role:: needs_id +.. role:: needs_title + +.. rst-class:: need +.. rst-class:: need_{{type_name}} + +.. container:: need + + `{{id}}` - {{content|indent(4)}} + + .. container:: toggle + + .. container:: header + + Details + +{% if status and status|upper != "NONE" and not hide_status %} | status: :needs_status:`{{status}}`{% endif %} +{% if tags and not hide_tags %} | tags: :needs_tag:`{{tags|join("` :needs_tag:`")}}`{% endif %} +{% if keyword %} | keyword: `{{keyword}}` {% endif %} +{% if target %} | target: `{{target}}` {% endif %} +{% if introduced %} | introduced: `{{introduced}}` {% endif %} +{% if updated %} | updated: `{{updated}}` {% endif %} +{% if impacts %} | impacts: `{{impacts}}` {% endif %} +{% if validation_mode %} | validation mode: `{{validation_mode}}` {% endif %} +{% if validated_by %} | validated by: `{{validated_by}}` {% endif %} +{% if test %} | test: `{{test}}` {% endif %} +{% if test_case %} | test case: {{test_case}} {% endif %} +{% if test_file %} | test file: `{{test_file}}` {% endif %} +{% if notes %} | notes: `{{notes}}` {% endif %} + | children: :need_incoming:`{{id}}` + | parents: :need_outgoing:`{{id}}` +{% endif -%} +""" diff --git a/docs/conf.yaml b/docs/conf.yaml new file mode 100644 index 00000000..8425e089 --- /dev/null +++ b/docs/conf.yaml @@ -0,0 +1,25 @@ +# ============LICENSE_START======================================================= +# Copyright (C) 2021 Nordix Foundation +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# ============LICENSE_END========================================================= + +--- +project_cfg: onap +project: onap + +# Change this to ReleaseBranchName to modify the header +default-version: latest +# diff --git a/docs/deployment.rst b/docs/deployment.rst new file mode 100644 index 00000000..0f53898b --- /dev/null +++ b/docs/deployment.rst @@ -0,0 +1,15 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. Copyright (C) 2021 Nordix Foundation + +.. DO NOT CHANGE THIS LABEL FOR RELEASE NOTES - EVEN THOUGH IT GIVES A WARNING +.. _deployment: + + +DMI Plugin Deployment +##################### + +.. warning:: draft + +.. toctree:: + :maxdepth: 1
\ No newline at end of file diff --git a/docs/design.rst b/docs/design.rst new file mode 100644 index 00000000..e65c5aed --- /dev/null +++ b/docs/design.rst @@ -0,0 +1,40 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. Copyright (C) 2021 Nordix Foundation + +.. DO NOT CHANGE THIS LABEL FOR RELEASE NOTES - EVEN THOUGH IT GIVES A WARNING +.. _design: + + +DMI Plugin Design +################# + +.. warning:: draft + +.. toctree:: + :maxdepth: 1 + +Offered APIs +============ + +The DMI Plugin supports the public APIs listed in the link below: + +:download:`DMI Rest OpenApi Specification <openapi/openapi.yml>` + +Exposed API +----------- + +The standard for API definition in the RESTful API world is the OpenAPI Specification (OAS). +The OAS 3, which is based on the original "Swagger Specification", is being widely used in API developments. + +Specification can be accessed using following URI: + +.. code-block:: bash + + “http://<hostname>:<port>/v3/api-docs?group=dmi-plugin-docket” + +DMI Plugin CM Handles +===================== + +Several DMI Plugin APIs use the cm-handle parameter. +The DMI Plugin CM Handles are described in detail in :doc:`dmi-plugin-cm-handle`. diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 00000000..bc299aeb --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,41 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. Copyright (C) 2021 Nordix Foundation + +.. DO NOT CHANGE THIS LABEL FOR RELEASE NOTES - EVEN THOUGH IT GIVES A WARNING +.. _dmi: + +.. THIS IS USED INTERNALLY IN CPS ONLY +.. _dmi-framework-doc: + +DMI Plugin Documentation for the Istanbul-R9 Release +---------------------------------------------------- + +.. warning:: draft + +.. toctree:: + :maxdepth: 1 + + overview.rst + architecture.rst + design.rst + modeling.rst + deployment.rst + release-notes.rst + + +CPS-Core Documentation for the Istanbul-R9 Release +--------------------------------------------------------- + +.. toctree:: + :maxdepth: 3 + +* `CPS Core(placeholder) `_ + +CPS-Temporal Documentation for the Istanbul-R9 Release +------------------------------------------------------ + +.. toctree:: + :maxdepth: 1 + +* `CPS Temporal(placeholder) `_
\ No newline at end of file diff --git a/docs/modeling.rst b/docs/modeling.rst new file mode 100644 index 00000000..63f25b7c --- /dev/null +++ b/docs/modeling.rst @@ -0,0 +1,18 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. Copyright (C) 2021 Nordix Foundation +.. _modeling: + +DMI Plugin Modeling +################### + +.. warning:: draft + +.. toctree:: + :maxdepth: 1 + +Basic Concepts +============== + +.. image:: _static/dmi-plugin-modeling-concepts.png + :alt: Basic entities relationship diff --git a/docs/openapi/openapi.yaml b/docs/openapi/openapi.yaml new file mode 100644 index 00000000..082df223 --- /dev/null +++ b/docs/openapi/openapi.yaml @@ -0,0 +1,428 @@ +openapi: 3.0.1 +info: + title: NCMP DMI Plugin + description: Adds Data Model Inventory Registry capability for ONAP + version: 1.0.0 +servers: +- url: //localhost:8088/ +tags: +- name: dmi-plugin-internal + description: DMI plugin internal rest apis +- name: dmi-plugin + description: DMI plugin rest apis +paths: + /v1/ch/{cmHandle}/modules: + post: + tags: + - dmi-plugin + summary: Get all modules for cm handle + description: Get all modules for given cm handle + operationId: getModulesForCmHandle + parameters: + - name: cmHandle + in: path + description: The cm handle to fetch all the modules + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ModuleSet' + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + /v1/inventory/cmHandles: + post: + tags: + - dmi-plugin-internal + summary: register given list of cm handles (internal use only) + description: register given list of cm handles (internal use only) + operationId: registerCmHandles + requestBody: + description: list of cm handles + content: + application/json: + schema: + $ref: '#/components/schemas/CmHandles' + required: true + responses: + "201": + description: Created + content: + text/plain: + schema: + type: string + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + x-api-audience: component-internal + /v1/ch/{cmHandle}/moduleResources: + post: + tags: + - dmi-plugin + summary: Retrieve module resources + description: Retrieve module resources for one or more modules + operationId: retrieveModuleResources + parameters: + - name: cmHandle + in: path + description: The identifier for a network function, network element, subnetwork, + or any other cm object by managed Network CM Proxy + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DmiReadRequestBody' + required: true + responses: + "200": + description: OK + content: + application/json: + schema: + type: object + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + /v1/ch/{cmHandle}/data/ds/ncmp-datastore:passthrough-operational/{resourceIdentifier}: + put: + tags: + - dmi-plugin + summary: Get resource data from passthrough-operational for cm handle + description: Get resource data from passthrough-operational for cm handle + operationId: getResourceDataOperationalForCmHandle + parameters: + - name: cmHandle + in: path + description: The identifier for a network function, network element, subnetwork, + or any other cm object by managed Network CM Proxy + required: true + schema: + type: string + - name: resourceIdentifier + in: path + description: Resource identifier to get/set the resource data + required: true + schema: + type: string + - name: accept + in: header + description: Accept parameter for response, if accept parameter is null, that + means client can accept any format. + schema: + type: string + enum: + - application/json + - application/yang-data+json + - name: fields + in: query + description: Fields parameter to filter resource + required: false + schema: + type: string + - name: depth + in: query + description: Depth parameter for response + required: false + schema: + minimum: 1 + type: integer + requestBody: + description: Operational body + content: + application/json: + schema: + $ref: '#/components/schemas/DataAccessReadRequest' + responses: + "200": + description: OK + content: + application/json: + schema: + type: object + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + /v1/ch/{cmHandle}/data/ds/ncmp-datastore:passthrough-running/{resourceIdentifier}: + put: + tags: + - dmi-plugin + summary: Get resource data from passthrough-running for cm handle + description: Get resource data from passthrough-running for cm handle + operationId: getResourceDataPassthroughRunningForCmHandle + parameters: + - name: cmHandle + in: path + description: The identifier for a network function, network element, subnetwork, + or any other cm object by managed Network CM Proxy + required: true + schema: + type: string + - name: resourceIdentifier + in: path + description: Resource identifier to get/set the resource data + required: true + schema: + type: string + - name: accept + in: header + description: Accept parameter for response, if accept parameter is null, that + means client can accept any format. + schema: + type: string + enum: + - application/json + - application/yang-data+json + - name: fields + in: query + description: Fields parameter to filter resource + required: false + schema: + type: string + - name: depth + in: query + description: Depth parameter for response + required: false + schema: + minimum: 1 + type: integer + requestBody: + description: Operational body + content: + application/json: + schema: + $ref: '#/components/schemas/DataAccessReadRequest' + responses: + "200": + description: OK + content: + application/json: + schema: + type: object + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + post: + tags: + - dmi-plugin + summary: Write data for a cmHandle + description: Write data for a cmHandle using passthrough-running + operationId: writeDataByPassthroughRunningForCmHandle + parameters: + - name: cmHandle + in: path + description: The identifier for a network function, network element, subnetwork, + or any other cm object by managed Network CM Proxy + required: true + schema: + type: string + - name: resourceIdentifier + in: path + description: Resource identifier to get/set the resource data + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataAccessWriteRequest' + required: true + responses: + "200": + description: OK + content: + application/json: + schema: + type: object + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' +components: + schemas: + ModuleSet: + type: object + properties: + schemas: + type: array + items: + $ref: '#/components/schemas/ModuleSet_schemas' + ErrorMessage: + title: Error + type: object + properties: + status: + type: string + message: + type: string + details: + type: string + CmHandles: + type: object + properties: + cmHandles: + type: array + items: + type: string + DmiReadRequestBody: + type: object + properties: + operation: + type: string + enum: + - read + data: + $ref: '#/components/schemas/DmiReadRequestBody_data' + cmHandleProperties: + type: object + additionalProperties: + type: string + example: system-001 + DataAccessReadRequest: + type: object + properties: + operation: + type: string + enum: + - read + cmHandleProperties: + type: object + additionalProperties: + type: string + DataAccessWriteRequest: + type: object + properties: + operation: + type: string + enum: + - create + dataType: + type: string + data: + type: object + cmHandleProperties: + type: object + additionalProperties: + type: string + ModuleSet_schemas: + type: object + properties: + moduleName: + type: string + revision: + type: string + namespace: + type: string + DmiReadRequestBody_data_modules: + type: object + properties: + name: + type: string + revision: + type: string + DmiReadRequestBody_data: + type: object + properties: + modules: + type: array + items: + $ref: '#/components/schemas/DmiReadRequestBody_data_modules' diff --git a/docs/overview.rst b/docs/overview.rst new file mode 100644 index 00000000..c2e670c6 --- /dev/null +++ b/docs/overview.rst @@ -0,0 +1,21 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. Copyright (C) 2021 Nordix Foundation +.. _overview: + +DMI Plugin Overview +=================== + +.. warning:: draft + +The DMI Plugin is used to allow the DMI API's access to the corresponding NCMP API's. + +DMI Plugin Interface +-------------------- + +Implementation Proposal: `DMI Plugin Interface <https://wiki.onap.org/display/DW/CPS-390+Spike%3A+Define+and+Agree+DMI+Plugin+REST+Interface>`_ + +Contact Information +------------------- + +onap-discuss@lists.onap.org diff --git a/docs/release-notes.rst b/docs/release-notes.rst new file mode 100644 index 00000000..8e9a91a7 --- /dev/null +++ b/docs/release-notes.rst @@ -0,0 +1,129 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + +.. DO NOT CHANGE THIS LABEL FOR RELEASE NOTES - EVEN THOUGH IT GIVES A WARNING +.. _release_notes: + + + +======================== +DMI Plugin Release Notes +======================== + +.. warning:: draft + +.. contents:: + :depth: 2 +.. + +.. ======================== +.. * * * ISTANBUL * * * +.. ======================== + +Version: 1.0.0 +============== + +Abstract +-------- + +This document provides the release notes for Istanbul release. + +Release Data +------------ + ++--------------------------------------+--------------------------------------------------------+ +| **CPS Project** | | +| | | ++--------------------------------------+--------------------------------------------------------+ +| **Docker images** | placeholder | +| | | ++--------------------------------------+--------------------------------------------------------+ +| **Release designation** | 1.0.0 Istanbul | +| | | ++--------------------------------------+--------------------------------------------------------+ +| **Release date** | 2021-14-10 | +| | | ++--------------------------------------+--------------------------------------------------------+ + +Features +-------- +* Implement plugin registration. +* Retrieve data from cmHandles using ncmp-datastores passthorugh. +* Retrieve Yang Resources from one or more modules of a CM Handle. + +.. _istanbul_deliverable: + +Deliverables +------------ + +Software Deliverables + +.. csv-table:: + :header: "Repository", "SubModules", "Version & Docker Image (if applicable)" + :widths: auto + + "cps/ncmp-dmi-plugin", "", "placeholder" + +Bug Fixes +--------- + +This document provides the release notes for Istanbul release. + +Summary +------- + +Following DMI plugin components are available with default ONAP/DMI-plugin installation. + + + * Platform components + + * Service components + + * Additional resources that CPS utilizes deployed using ONAP common charts + +Below service components (mS) are available to be deployed on-demand. + +Under OOM (Kubernetes) all CPS component containers are deployed as Kubernetes Pods/Deployments/Services into Kubernetes cluster. + +Known Limitations, Issues and Workarounds +----------------------------------------- + +*System Limitations* + +*Known Vulnerabilities* + +None + +*Workarounds* + +Security Notes +-------------- + +*Fixed Security Issues* + +*Known Security Issues* + +Test Results +------------ + * `Integration tests` + +References +---------- + +For more information on the ONAP Honolulu release, please see: + +#. `ONAP Home Page`_ +#. `ONAP Documentation`_ +#. `ONAP Release Downloads`_ +#. `ONAP Wiki Page`_ + + +.. _`ONAP Home Page`: https://www.onap.org +.. _`ONAP Wiki Page`: https://wiki.onap.org +.. _`ONAP Documentation`: https://docs.onap.org +.. _`ONAP Release Downloads`: https://git.onap.org + +Quick Links: + + - `Dmi Plugin implementation page <https://wiki.onap.org/display/DW/CPS-390+Spike%3A+Define+and+Agree+DMI+Plugin+REST+Interface>`_ + - `Passing Badge information for CPS <https://bestpractices.coreinfrastructure.org/en/projects/4398>`_ diff --git a/docs/requirements-docs.txt b/docs/requirements-docs.txt new file mode 100644 index 00000000..b3188ddd --- /dev/null +++ b/docs/requirements-docs.txt @@ -0,0 +1,15 @@ +tox +Sphinx +doc8 +docutils +setuptools +six +sphinx_rtd_theme>=0.4.3 +sphinxcontrib-blockdiag +sphinxcontrib-needs>=0.2.3 +sphinxcontrib-nwdiag +sphinxcontrib-seqdiag +sphinxcontrib-swaggerdoc +sphinxcontrib-plantuml +sphinx_bootstrap_theme +lfdocs-conf diff --git a/docs/tox.ini b/docs/tox.ini new file mode 100644 index 00000000..edac8c35 --- /dev/null +++ b/docs/tox.ini @@ -0,0 +1,22 @@ +[tox] +minversion = 1.6 +envlist = docs, +skipsdist = true + +[testenv:docs] +basepython = python3 +deps = -r{toxinidir}/requirements-docs.txt +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 + +[testenv:docs-linkcheck] +basepython = python3 +#deps = -r{toxinidir}/requirements-docs.txt +commands = echo "Link Checking not enforced" +#commands = sphinx-build -b linkcheck -d {envtmpdir}/doctrees ./ {toxinidir}/_build/linkcheck +whitelist_externals = echo @@ -17,7 +17,108 @@ SPDX-License-Identifier: Apache-2.0 ============LICENSE_END========================================================= ---> +--><!DOCTYPE project [ + <!ELEMENT project (modelVersion|parent|organization|groupId|artifactId|version|name|description|properties|dependencyManagement|dependencies|build|pluginManagement)*> + <!ATTLIST project + xmlns CDATA #REQUIRED + xmlns:xsi CDATA #REQUIRED + xsi:schemaLocation CDATA #REQUIRED> + <!ELEMENT modelVersion (#PCDATA)> + <!ELEMENT parent (groupId|artifactId|version|relativePath)*> + <!ELEMENT groupId (#PCDATA)> + <!ELEMENT artifactId (#PCDATA)> + <!ELEMENT version (#PCDATA)> + <!ELEMENT relativePath (#PCDATA)> + <!ELEMENT organization (name|url)*> + <!ELEMENT name (#PCDATA)> + <!ELEMENT url (#PCDATA)> + <!ELEMENT description (#PCDATA)> + <!ELEMENT properties (app|base.image|cps.version|image.tag|jacoco.minimum.coverage|maven.build.timestamp.format|project.build.sourceEncoding|image.name)*> + <!ELEMENT app (#PCDATA)> + <!ELEMENT base.image (#PCDATA)> + <!ELEMENT cps.version (#PCDATA)> + <!ELEMENT image.tag (#PCDATA)> + <!ELEMENT jacoco.minimum.coverage (#PCDATA)> + <!ELEMENT maven.build.timestamp.format (#PCDATA)> + <!ELEMENT project.build.sourceEncoding (#PCDATA)> + <!ELEMENT dependencyManagement (dependencies)*> + <!ELEMENT dependencies (dependency)*> + <!ELEMENT dependency (groupId|artifactId|version|type|scope|exclusions)*> + <!ELEMENT type (#PCDATA)> + <!ELEMENT scope (#PCDATA)> + <!ELEMENT exclusions (exclusion)*> + <!ELEMENT exclusion (groupId|artifactId)*> + <!ELEMENT build (resources|plugins|plugin)*> + <!ELEMENT resources (resource)*> + <!ELEMENT resource (directory|filtering|includes|targetPath)*> + <!ELEMENT directory (#PCDATA)> + <!ELEMENT filtering (#PCDATA)> + <!ELEMENT includes (include)*> + <!ELEMENT include (#PCDATA)> + <!ELEMENT targetPath (#PCDATA)> + <!ELEMENT plugins (plugin)*> + <!ELEMENT plugin (groupId|artifactId|version|executions|configuration|dependencies)*> + <!ELEMENT executions (execution)*> + <!ELEMENT execution (goals|configuration|id|phase)*> + <!ELEMENT goals (goal)*> + <!ELEMENT goal (#PCDATA)> + <!ELEMENT configuration (inputSpec|language|generateSupportingFiles|apiPackage|modelPackage|configOptions|argLine|includes|excludes|configLocation|includeResources|includeTestSourceDirectory|includeTestResources|sourceDirectories|consoleOutput|violationSeverity|failOnViolation|plugins|effort|threshold|failOnError|excludeFilterFile|xmlOutput|xmlOutputDirectory|dataFile|rules|dataFileIncludes|container|from|to)*> + <!ELEMENT inputSpec (#PCDATA)> + <!ELEMENT language (#PCDATA)> + <!ELEMENT generateSupportingFiles (#PCDATA)> + <!ELEMENT apiPackage (#PCDATA)> + <!ELEMENT modelPackage (#PCDATA)> + <!ELEMENT configOptions (sourceFolder|dateLibrary|interfaceOnly|useTags)*> + <!ELEMENT sourceFolder (#PCDATA)> + <!ELEMENT dateLibrary (#PCDATA)> + <!ELEMENT interfaceOnly (#PCDATA)> + <!ELEMENT useTags (#PCDATA)> + <!ELEMENT id (#PCDATA)> + <!ELEMENT phase (#PCDATA)> + <!ELEMENT argLine (#PCDATA)> + <!ELEMENT excludes (exclude)*> + <!ELEMENT exclude (#PCDATA)> + <!ELEMENT configLocation (#PCDATA)> + <!ELEMENT includeResources (#PCDATA)> + <!ELEMENT includeTestSourceDirectory (#PCDATA)> + <!ELEMENT includeTestResources (#PCDATA)> + <!ELEMENT sourceDirectories (sourceDirectory)*> + <!ELEMENT sourceDirectory (#PCDATA)> + <!ELEMENT consoleOutput (#PCDATA)> + <!ELEMENT violationSeverity (#PCDATA)> + <!ELEMENT failOnViolation (#PCDATA)> + <!ELEMENT effort (#PCDATA)> + <!ELEMENT threshold (#PCDATA)> + <!ELEMENT failOnError (#PCDATA)> + <!ELEMENT excludeFilterFile (#PCDATA)> + <!ELEMENT xmlOutput (#PCDATA)> + <!ELEMENT xmlOutputDirectory (#PCDATA)> + <!ELEMENT dataFile (#PCDATA)> + <!ELEMENT rules (rule)*> + <!ELEMENT rule (element|limits)*> + <!ELEMENT element (#PCDATA)> + <!ELEMENT limits (limit)*> + <!ELEMENT limit (counter|value|minimum)*> + <!ELEMENT counter (#PCDATA)> + <!ELEMENT value (#PCDATA)> + <!ELEMENT minimum (#PCDATA)> + <!ELEMENT dataFileIncludes (fileInclude)*> + <!ELEMENT fileInclude (#PCDATA)> + <!ELEMENT pluginManagement (plugins)*> + <!ELEMENT container (mainClass|creationTime)*> + <!ELEMENT mainClass (#PCDATA)> + <!ELEMENT creationTime (#PCDATA)> + <!ELEMENT from (image)*> + <!ELEMENT image (#PCDATA)> + <!ELEMENT to (tags|image)*> + <!ELEMENT tags (tag)*> + <!ELEMENT tag (#PCDATA)> + <!ELEMENT profiles (profile)*> + <!ELEMENT profile (id|activation|properties|build)*> + <!ELEMENT activation (activeByDefault)*> + <!ELEMENT activeByDefault (#PCDATA)> + <!ELEMENT image.name (#PCDATA)> + ]> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> @@ -177,6 +278,17 @@ </configOptions> </configuration> </execution> + <execution> + <id>openapi-yaml-gen</id> + <goals> + <goal>generate</goal> + </goals> + <phase>compile</phase> + <configuration> + <inputSpec>${project.basedir}/docs/openapi/openapi.yml</inputSpec> + <language>openapi-yaml</language> + </configuration> + </execution> </executions> </plugin> <plugin> @@ -414,6 +526,29 @@ </execution> </executions> </plugin> + <plugin> + <artifactId>maven-resources-plugin</artifactId> + <executions> + <execution> + <id>copy-resources</id> + <phase>compile</phase> + <goals> + <goal>copy-resources</goal> + </goals> + <configuration> + <outputDirectory>${project.basedir}/docs/openapi/</outputDirectory> + <resources> + <resource> + <directory>${project.basedir}/target/generated-sources/swagger/</directory> + <includes> + <include>openapi.yaml</include> + </includes> + </resource> + </resources> + </configuration> + </execution> + </executions> + </plugin> </plugins> </pluginManagement> </build> |