aboutsummaryrefslogtreecommitdiffstats
path: root/docs/sections
diff options
context:
space:
mode:
Diffstat (limited to 'docs/sections')
-rw-r--r--docs/sections/architecture.rst1
-rw-r--r--docs/sections/offeredapis.rst25
-rw-r--r--docs/sections/release-notes.rst607
-rw-r--r--docs/sections/swaggerdoc/oof-osdf-has-api.json902
-rw-r--r--docs/sections/upgradestrategy.rst22
5 files changed, 644 insertions, 913 deletions
diff --git a/docs/sections/architecture.rst b/docs/sections/architecture.rst
index 64bc43c..b11eec2 100644
--- a/docs/sections/architecture.rst
+++ b/docs/sections/architecture.rst
@@ -1,4 +1,5 @@
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. _architecture:
Architecture
=============================================
diff --git a/docs/sections/offeredapis.rst b/docs/sections/offeredapis.rst
index 5151431..c9af97d 100644
--- a/docs/sections/offeredapis.rst
+++ b/docs/sections/offeredapis.rst
@@ -1,8 +1,9 @@
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
+.. _offeredapis:
Offered APIs
-=============================================
+============
This document describes the OSDF HAS (Homing and Allocation Service) API
@@ -10,8 +11,20 @@ This document describes the OSDF HAS (Homing and Allocation Service) API
To view API documentation in the interactive swagger UI download the following and
paste into the swagger tool here: https://editor.swagger.io
-:download:`oof-osdf-has-api.json <./swaggerdoc/oof-osdf-has-api.json>`
-
-.. swaggerv2doc:: ./swaggerdoc/oof-osdf-has-api.json
-
-
+.. csv-table::
+ :header: "API name", "Swagger JSON"
+ :widths: 10,5
+
+ "OOF OSDF HAS API", ":download:`link <../api/swagger/oof-osdf-has-api.json>`"
+ "OOF OPTENG API", ":download:`link <../api/swagger/oof-optf-opteng-api.json>`"
+
+.. OOF OSDF HAS API
+.. ................
+..
+.. `OSDF API <osdf-api.html>`_
+..
+..
+.. OOF OPTENG API
+.. ..............
+..
+.. `OPTENG API <opteng-api.html>`_
diff --git a/docs/sections/release-notes.rst b/docs/sections/release-notes.rst
index 22c6b4b..63ab538 100644
--- a/docs/sections/release-notes.rst
+++ b/docs/sections/release-notes.rst
@@ -1,11 +1,606 @@
..
This work is licensed under a Creative Commons Attribution 4.0
International License.
+.. _release_notes:
=============
Release Notes
=============
+
+.. ===========================
+.. * * * KOHN * * *
+.. ===========================
+
+Abstract
+========
+
+This document provides the release notes for the KOHN release.
+
+Summary
+=======
+
+
+Release Data
+============
+
+
++--------------------------------------+--------------------------------------+
+| **OOF Project** | |
+| | |
++--------------------------------------+--------------------------------------+
+| **Docker images** | optf-osdf 3.0.7 |
+| | |
+| | |
++--------------------------------------+--------------------------------------+
+| **Release designation** | 11.0.0 kohn |
+| | |
++--------------------------------------+--------------------------------------+
+| **Release date** | 10/11/2022 (TBD) |
+| | |
++--------------------------------------+--------------------------------------+
+
+
+New features
+------------
+
+Bug Fixes
+---------
+
+- OPTFRA-1080 - Fix timeout issue in OSDF on sending plan request to HAS-API
+
+
+Known Limitations, Issues and Workarounds
+=========================================
+
+System Limitations
+------------------
+
+Known Vulnerabilities
+---------------------
+
+
+Workarounds
+-----------
+
+
+Security Notes
+--------------
+
+References
+==========
+
+For more information on the ONAP Jakarta 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:
+
+- `OOF project page <https://wiki.onap.org/display/DW/Optimization+Framework+Project>`_
+- `Passing Badge information for OOF <https://bestpractices.coreinfrastructure.org/en/projects/1720>`_
+
+
+.. ===========================
+.. * * * JAKARTA * * *
+.. ===========================
+
+Abstract
+========
+
+This document provides the release notes for the JAKARTA release.
+
+Summary
+=======
+
+
+Release Data
+============
+
+
++--------------------------------------+--------------------------------------+
+| **OOF Project** | |
+| | |
++--------------------------------------+--------------------------------------+
+| **Docker images** | optf-osdf 3.0.6 |
+| | |
+| | |
++--------------------------------------+--------------------------------------+
+| **Release designation** | 10.0.0 jakarta |
+| | |
++--------------------------------------+--------------------------------------+
+| **Release date** | 02/06/2022 (TBD) |
+| | |
++--------------------------------------+--------------------------------------+
+
+
+New features
+------------
+
+
+
+Bug Fixes
+---------
+
+- OPTFRA-1059 - Update configuration for TN-FH in NxI termination app
+
+
+Known Limitations, Issues and Workarounds
+=========================================
+
+System Limitations
+------------------
+
+Known Vulnerabilities
+---------------------
+
+
+Workarounds
+-----------
+
+
+Security Notes
+--------------
+
+
+References
+==========
+
+For more information on the ONAP Jakarta 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:
+
+- `OOF project page <https://wiki.onap.org/display/DW/Optimization+Framework+Project>`_
+- `Passing Badge information for OOF <https://bestpractices.coreinfrastructure.org/en/projects/1720>`_
+
+
+
+.. ===========================
+.. * * * ISTANBUL * * *
+.. ===========================
+
+Abstract
+========
+
+This document provides the release notes for the Istanbul release.
+
+Summary
+=======
+
+
+Release Data
+============
+
+
++--------------------------------------+--------------------------------------+
+| **OOF Project** | |
+| | |
++--------------------------------------+--------------------------------------+
+| **Docker images** | optf-osdf 3.0.6 |
+| | |
+| | |
++--------------------------------------+--------------------------------------+
+| **Release designation** | 9.0.0 istanbul |
+| | |
++--------------------------------------+--------------------------------------+
+| **Release date** | 28/10/2021 (TBD) |
+| | |
++--------------------------------------+--------------------------------------+
+
+
+New features
+------------
+
+- Enhancements in NxI termination to support second level NSSIs
+- Update NxI termination app to use AAI DSL query
+- Add CPS client for PCI app
+- OSDF image optimization
+
+Bug Fixes
+---------
+
+- OPTFRA-511 Return error when policies are not present
+- OPTFRA-943 Fix issues in NSI selection response
+- OPTFRA-853 Remove unwanted gplv3 components from docker image
+
+
+Known Limitations, Issues and Workarounds
+=========================================
+
+System Limitations
+------------------
+
+
+Known Vulnerabilities
+---------------------
+
+
+Workarounds
+-----------
+
+
+Security Notes
+--------------
+
+
+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:
+ - `OOF project page <https://wiki.onap.org/display/DW/Optimization+Framework+Project>`_
+ - `Passing Badge information for OOF <https://bestpractices.coreinfrastructure.org/en/projects/1720>`_
+
+
+.. ===========================
+.. * * * HONOLULU * * *
+.. ===========================
+
+Abstract
+========
+
+This document provides the release notes for the Honolulu release.
+
+Summary
+=======
+
+
+Release Data
+============
+
+
++--------------------------------------+--------------------------------------+
+| **OOF Project** | |
+| | |
++--------------------------------------+--------------------------------------+
+| **Docker images** | optf-osdf 3.0.4 |
+| | |
+| | |
++--------------------------------------+--------------------------------------+
+| **Release designation** | 8.0.0 honolulu |
+| | |
++--------------------------------------+--------------------------------------+
+| **Release date** | 04/08/2021 (TBD) |
+| | |
++--------------------------------------+--------------------------------------+
+
+
+New features
+------------
+
+- Add NST selection feature with AAI & SDC
+- Configuration management with consul KV store
+
+Bug Fixes
+---------
+
+- OPTFRA-906 Update slice/service profile attributes
+- OPTFRA-871 Bug Fix in ML SON - convert cell_id before sending it to Minizinc
+
+
+Known Limitations, Issues and Workarounds
+=========================================
+
+System Limitations
+------------------
+
+
+Known Vulnerabilities
+---------------------
+
+
+Workarounds
+-----------
+
+
+Security Notes
+--------------
+
+
+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:
+ - `OOF project page <https://wiki.onap.org/display/DW/Optimization+Framework+Project>`_
+ - `Passing Badge information for OOF <https://bestpractices.coreinfrastructure.org/en/projects/1720>`_
+
+.. ===========================
+.. * * * GUILIN * * *
+.. ===========================
+
+Abstract
+========
+
+This document provides the release notes for the Guilin release.
+
+Summary
+=======
+
+
+Release Data
+============
+
+
++--------------------------------------+--------------------------------------+
+| **OOF Project** | |
+| | |
++--------------------------------------+--------------------------------------+
+| **Docker images** | optf-osdf 3.0.2 |
+| | |
+| | |
++--------------------------------------+--------------------------------------+
+| **Release designation** | 7.0.0 guilin |
+| | |
++--------------------------------------+--------------------------------------+
+| **Release date** | 2020-11-19 (TBD) |
+| | |
++--------------------------------------+--------------------------------------+
+
+
+New features
+------------
+
+- NSI selection enhancements
+- Support for NSSI selection
+- Support for NSI/NSSI Termination
+- Support for Inter domain route optimization
+- Support for ML based SON optimization
+- Upgrade python version to 3.8
+
+Bug Fixes
+---------
+
+- OPTFRA-839 Remove python 2.7 from OSDF docker image
+- OPTFRA-855 Fix slice selection API
+- OPTFRA-852 Callback implementation for NST selection
+
+Known Limitations, Issues and Workarounds
+=========================================
+
+System Limitations
+------------------
+
+
+Known Vulnerabilities
+---------------------
+
+
+Workarounds
+-----------
+
+
+Security Notes
+--------------
+
+
+References
+==========
+
+For more information on the ONAP Guilin 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:
+ - `OOF project page <https://wiki.onap.org/display/DW/Optimization+Framework+Project>`_
+ - `Passing Badge information for OOF <https://bestpractices.coreinfrastructure.org/en/projects/1720>`_
+
+.. ===========================
+.. * * * FRANKFURT * * *
+.. ===========================
+
+Abstract
+========
+
+This document provides the release notes for the Frankfurt release.
+
+Summary
+=======
+
+
+Release Data
+============
+
+
++--------------------------------------+--------------------------------------+
+| **OOF Project** | |
+| | |
++--------------------------------------+--------------------------------------+
+| **Docker images** | optf-osdf 2.0.4 |
+| | |
+| | |
++--------------------------------------+--------------------------------------+
+| **Release designation** | 6.0.0 frankfurt |
+| | |
++--------------------------------------+--------------------------------------+
+| **Release date** | 2020-05-07 (TBD) |
+| | |
++--------------------------------------+--------------------------------------+
+
+
+New features
+------------
+
+- Project is restructured into apps and libs.
+- A Generic optimizing engine is implemented.
+- New optimizer model for route optimization is added.
+- Policy apis are migrated from legacy apis to new decision api.
+- The Conductor adapter is moved from placement to adapters.
+- NST and NSI selection function has been implemented for Network
+ Slicing use case.
+- PCI optimization is enhanced to support fixed cells field.
+
+Bug Fixes
+---------
+
+- OPTFRA-482 The field "unique" should be defined in vnf policy.
+- OPTFRA-729 OSDF fails to start in the k8s environment.
+- OPTFRA-731 OSDF Policy interface is not working
+- OPTFRA-754 Return slice profile when service profile indicates the
+ resource sharing level as not shared
+- OPTFRA-755 OOF Policy filtering does not work.
+
+Known Limitations, Issues and Workarounds
+=========================================
+
+System Limitations
+------------------
+
+
+Known Vulnerabilities
+---------------------
+
+
+Workarounds
+-----------
+
+
+Security Notes
+--------------
+
+
+References
+==========
+
+For more information on the ONAP Frankfurt 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:
+ - `OOF project page <https://wiki.onap.org/display/DW/Optimization+Framework+Project>`_
+ - `Passing Badge information for OOF <https://bestpractices.coreinfrastructure.org/en/projects/1720>`_
+
+
+Version: 5.0.1
+--------------
+
+:Release Date: 2019-09-30 (El Alto Release)
+
+The El Alto release is the fourth release for ONAP Optimization Framework (OOF).
+
+Artifacts released:
+
+optf-has:1.3.3
+optf-osdf:1.3.4
+optf-cmso:2.1.1
+
+**New Features**
+
+While no new features were added in the release, the following Stories were delivered as enhancements.
+
+ * [OPTFRA-415] Automation on policy model uploading
+ * [OPTFRA-427] CMSO - Schedule a workflow in SO and track status to completion
+
+* Platform Maturity Level 1
+ * ~65.1+ unit test coverage
+
+
+**Bug Fixes**
+
+The El Alto release for OOF fixed the following Bugs.
+
+ * [OPTFRA-579] Json error in homing solution
+ * [OPTFRA-521] oof-has-api exposes plain text HTTP endpoint using port 30275
+ * [OPTFRA-522] oof-osdf exposes plain text HTTP endpoint using port 30248
+ * [OPTFRA-577] Need for "ReadWriteMany" access on storage when deploying on Kubernetes?
+ * [OPTFRA-517] Clean up optf/cmso in integration/csit for Dublin
+ * [OPTFRA-486] Support "identifiers" field as a list of values
+ * [OPTFRA-403] OOF CMSO Service kubernetes resources allocation is not done
+ * [OPTFRA-526] OOF pods not running
+ * [OPTFRA-409] Template example : purpose to be explained
+ * [OPTFRA-593] OOF-CSMO healthcheck is failing in Master
+
+
+**Known Issues**
+
+ * [OPTFRA-576] optf-has-master-csit-has is testing Dublin image
+ * [OPTFRA-596] CMSO - Sonar and CSIT jobs failing
+ * [OPTFRA-608] Error in Homing with multiple policies
+
+**Security Notes**
+
+*Fixed Security Issues*
+
+ * [OJSI-122] In default deployment OPTFRA (oof-osdf) exposes HTTP port 30248 outside of cluster.
+ * [OPTFRA-521] oof-has-api exposes plain text HTTP endpoint using port 30275
+ * [OPTFRA-522] oof-osdf exposes plain text HTTP endpoint using port 30248
+ * [OPTFRA-455] CMSO - Mitigate License Threat tomcat-embed-core
+
+*Known Security Issues*
+
+ * [OPTFRA-481] Fix Vulnerability with spring-data-jpa package
+ * [OPTFRA-431] Fix Vulnerability with spring-security-web package
+
+*Known Vulnerabilities in Used Modules*
+
+**Upgrade Notes**
+
+
+**Deprecation Notes**
+
+
+**Other**
+
+
Version: 4.0.0
--------------
@@ -46,15 +641,17 @@ The Dublin release for OOF delivered the following Epics.
*Known Security Issues*
+ * [`OJSI-122 <https://jira.onap.org/browse/OJSI-122>`_] In default deployment OPTFRA (oof-osdf) exposes HTTP port 30248 outside of cluster.
+
*Known Vulnerabilities in Used Modules*
OPTFRA osdf code has been formally scanned during build time using NexusIQ and no Critical vulnerability was found.
-The OPTF open Critical security vulnerabilities and their risk assessment have been documented as part of the `project <https://wiki.onap.org/pages/viewpage.action?pageId=64005463>`_.
+The OPTF open Critical security vulnerabilities and their risk assessment have been documented as part of the `project <https://wiki.onap.org/pages/viewpage.action?pageId=64005463>`__.
Quick Links:
- - `OPTFRA project page <https://wiki.onap.org/display/DW/Optimization+Framework+Project>`_
- - `Passing Badge information for OPTFRA <https://bestpractices.coreinfrastructure.org/en/projects/1720>`_
- - `Project Vulnerability Review Table for OPTF <https://wiki.onap.org/pages/viewpage.action?pageId=64005463>`_
+ - `OPTFRA project page <https://wiki.onap.org/display/DW/Optimization+Framework+Project>`__
+ - `Passing Badge information for OPTFRA <https://bestpractices.coreinfrastructure.org/en/projects/1720>`__
+ - `Project Vulnerability Review Table for OPTF <https://wiki.onap.org/pages/viewpage.action?pageId=64005463>`__
**Upgrade Notes**
@@ -142,7 +739,7 @@ The Casablanca release for OOF delivered the following Epics.
**Security Notes**
OPTFRA osdf code has been formally scanned during build time using NexusIQ and no Critical vulnerability was found.
-The OPTF open Critical security vulnerabilities and their risk assessment have been documented as part of the `project <https://wiki.onap.org/pages/viewpage.action?pageId=43385924>`_.
+The OPTF open Critical security vulnerabilities and their risk assessment have been documented as part of the `project <https://wiki.onap.org/pages/viewpage.action?pageId=43385924>`__.
Quick Links:
- `OPTFRA project page <https://wiki.onap.org/display/DW/Optimization+Framework+Project>`_
diff --git a/docs/sections/swaggerdoc/oof-osdf-has-api.json b/docs/sections/swaggerdoc/oof-osdf-has-api.json
deleted file mode 100644
index 16e9ab1..0000000
--- a/docs/sections/swaggerdoc/oof-osdf-has-api.json
+++ /dev/null
@@ -1,902 +0,0 @@
-{
- "swagger": "2.0",
- "info": {
- "description": "This is the ONAP OOF OSDF (Optimization Service Design Framework) API",
- "version": "1.0.0",
- "title": "OSDF API",
- "contact": {
- "email": "frank.sandoval@oamtechnologies.com"
- },
- "license": {
- "name": "Apache 2.0",
- "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
- }
- },
- "securityDefinitions": {
- "basicAuth": {
- "type": "basic",
- "description": "HTTP Basic Auth"
- }
- },
- "security": [
- {
- "basicAuth": []
- }
- ],
- "paths": {
- "/v2/placement": {
- "post": {
- "summary": "create/update a placement",
- "operationId": "createPlacement",
- "description": "create/update a placement",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "body",
- "name": "placementRequest",
- "description": "placement request",
- "schema": {
- "$ref": "#/definitions/PlacementRequest"
- }
- }
- ],
- "responses": {
- "201": {
- "description": "An optimization solution is found."
- },
- "202": {
- "description": "An optimization request is accepted"
- },
- "400": {
- "description": "bad request"
- },
- "401": {
- "description": "Request body is not compliant with the API definition"
- },
- "404": {
- "description": "The server cannot find the requested URI"
- },
- "405": {
- "description": "The requested method is not supported by a server."
- },
- "500": {
- "description": "The server encountered an internal server error or timed out"
- }
- }
- }
- },
- "/api/oof/placement/v1": {
- "$ref": "#/paths/~1v2~1placement"
- },
- "/api/oof/v1/pci": {
- "post": {
- "summary": "Initiate PCI/ANR Optimization",
- "operationId": "initiatePCIOptRequest",
- "description": "Initiate PCI/ANR Optimization",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "body",
- "name": "PCIOptimizationRequest",
- "description": "PCI request",
- "schema": {
- "$ref": "#/definitions/PCIOptRequest"
- }
- }
- ],
- "responses": {
- "201": {
- "description": "An optimization solution is found."
- },
- "202": {
- "description": "An optimization request is accepted"
- },
- "400": {
- "description": "bad request"
- },
- "401": {
- "description": "Request body is not compliant with the API definition"
- },
- "404": {
- "description": "The server cannot find the requested URI"
- },
- "405": {
- "description": "The requested method is not supported by a server."
- },
- "500": {
- "description": "The server encountered an internal server error or timed out"
- }
- }
- }
- },
- "/api/oof/pci/v1": {
- "$ref": "#/paths/~1api~1oof~1v1~1pci"
- }
- },
- "definitions": {
- "PlacementRequest": {
- "type": "object",
- "required": [
- "requestInfo",
- "placementInfo",
- "licenseInfo",
- "serviceInfo"
- ],
- "properties": {
- "requestInfo": {
- "$ref": "#/definitions/RequestInfo"
- },
- "placementInfo": {
- "$ref": "#/definitions/PlacementInfo"
- },
- "licenseInfo": {
- "$ref": "#/definitions/LicenseInfo"
- },
- "serviceInfo": {
- "$ref": "#/definitions/ServiceInfo"
- }
- }
- },
- "RequestInfo": {
- "type": "object",
- "required": [
- "transactionId",
- "requestId",
- "callbackUrl",
- "sourceId",
- "requestType",
- "optimizers",
- "timeout"
- ],
- "properties": {
- "transactionId": {
- "type": "string",
- "format": "uuid",
- "description": "unique ID to track an ONAP transaction",
- "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
- },
- "requestId": {
- "type": "string",
- "format": "uuid",
- "description": "A unique ID to track multiple requests associated with a transaction",
- "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
- },
- "callbackUrl": {
- "type": "string",
- "format": "url",
- "description": "The end point of a callback service where recommendations are posted.",
- "example": "myDomain.com/myCallback"
- },
- "callbackHeader": {
- "type": "string",
- "description": "JSON blob. The header information a client expecting in a async callback.",
- "example": {
- "blob": "content"
- }
- },
- "sourceId": {
- "type": "string",
- "description": "The unique ID of a client making an optimization call.",
- "example": "d290f1ee-6c54-4b01-90e6-d701748f0851"
- },
- "requestType": {
- "type": "string",
- "enum": [
- "create",
- "update",
- "delete"
- ],
- "description": "The type of a request",
- "example": "create"
- },
- "numSolutions": {
- "type": "integer",
- "description": "Expected number of solutions.",
- "example": 1
- },
- "optimizers": {
- "type": "array",
- "items": {
- "type": "string",
- "enum": [
- "placement",
- "pci",
- "pci-anr"
- ]
- },
- "description": "A list of optimization services.",
- "example": [
- "placement"
- ]
- },
- "timeout": {
- "type": "integer",
- "description": "A tolerance window (in second) for expecting solutions.",
- "example": 5
- }
- }
- },
- "PlacementInfo": {
- "type": "object",
- "required": [
- "requestParameters",
- "placementDemands"
- ],
- "properties": {
- "requestParameters": {
- "type": "string",
- "description": "JSON blob. A service ordering information",
- "example": {
- "blob": "content"
- }
- },
- "placementDemands": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/PlacementDemand"
- },
- "description": "The resource information for a placement service"
- },
- "subscriberInfo": {
- "type": "object",
- "items": {
- "$ref": "#/definitions/SubscriberInfo"
- },
- "description": "The information of a service subscriber."
- }
- }
- },
- "PlacementDemand": {
- "type": "object",
- "required": [
- "resourceModuleName",
- "serviceResourceId",
- "resourceModelInfo"
- ],
- "properties": {
- "resourceModuleName": {
- "type": "string",
- "description": "A resource name as defined in a service mode",
- "example": "myResourceName"
- },
- "serviceResourceId": {
- "type": "string",
- "description": "A unique resource Id with a local scope between client and OOF.",
- "example": "myResourceId"
- },
- "givenPlacement": {
- "type": "object",
- "additionalProperties": {
- "type": "object",
- "properties": {
- "key": {
- "type": "string"
- },
- "value": {
- "type": "string"
- }
- }
- },
- "description": "placement parameters defined in the ordering system, keyname include tenantId",
- "example": {
- "tenantId": "1"
- }
- },
- "resourceModelInfo": {
- "$ref": "#/definitions/ModelMetaData"
- },
- "existingCandidates": {
- "$ref": "#/definitions/Candidates"
- },
- "excludedCandidates": {
- "$ref": "#/definitions/Candidates"
- },
- "requiredCandidates": {
- "$ref": "#/definitions/Candidates"
- }
- }
- },
- "ModelMetaData": {
- "type": "object",
- "required": [
- "modelInvariantId",
- "modelVersionId"
- ],
- "properties": {
- "modelInvariantId": {
- "type": "string",
- "description": "A model invariant Id as defined in a service model.",
- "example": "my model invariant Id"
- },
- "modelVersionId": {
- "type": "string",
- "description": "A unique model Id as defined in a service model.",
- "example": "my unique model Id"
- },
- "modelName": {
- "type": "string",
- "description": "A model name as defined in a service model",
- "example": "my model name"
- },
- "modelType": {
- "type": "string",
- "description": "A model type as defined in a service model.",
- "example": "my model type"
- },
- "modelVersion": {
- "type": "string",
- "description": "A model version as defined in a service model.",
- "example": "my model version"
- },
- "modelCustomizationName": {
- "type": "string",
- "description": "A model customization name as defined in a service model.",
- "example": "my model customization"
- }
- }
- },
- "Candidates": {
- "type": "object",
- "required": [
- "identifierType",
- "identifiers"
- ],
- "properties": {
- "identifierType": {
- "type": "string",
- "enum": [
- "service_instance_id",
- "vnf_name",
- "cloud_region_id"
- ],
- "description": "The type of a candidate.",
- "example": "service_instance_id"
- },
- "identifiers": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "description": "A list of identifiers.",
- "example": "candidateId"
- },
- "cloudOwner": {
- "type": "string",
- "description": "The name of a cloud owner. Only required if identifierType is cloud_region_id",
- "example": "cloud_owner"
- }
- }
- },
- "SubscriberInfo": {
- "type": "object",
- "required": [
- "globalSubscriberId",
- "subscriberName",
- "subscriberCommonSiteId"
- ],
- "properties": {
- "globalSubscriberId": {
- "type": "string",
- "description": "An ID of a subscriber.",
- "example": "subscriber_id"
- },
- "subscriberName": {
- "type": "string",
- "description": "The name of a subscriber. If the name is not known, the value must be 'unknown'",
- "example": "subscriber_name"
- },
- "subscriberCommonSiteId": {
- "type": "string",
- "description": "Id representing a subscriber location",
- "example": "subscriber_location_id"
- }
- }
- },
- "LicenseInfo": {
- "type": "object",
- "required": [
- "licenseDemands"
- ],
- "properties": {
- "licenseDemands": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/LicenseDemands"
- },
- "description": "A list of resources for license selection"
- }
- }
- },
- "LicenseDemands": {
- "type": "object",
- "required": [
- "resourceModuleName",
- "serviceResourceId",
- "resourceModelInfo"
- ],
- "properties": {
- "resourceModuleName": {
- "type": "string",
- "description": "A resource name as defined in a service model.",
- "example": "service_instance_id"
- },
- "serviceResourceId": {
- "type": "string",
- "description": "A unique resource Id with a local scope between client and OOF.",
- "example": "service_instance_id"
- },
- "resourceModelInfo": {
- "$ref": "#/definitions/ModelMetaData"
- },
- "existingLicenses": {
- "$ref": "#/definitions/LicenseModel"
- }
- }
- },
- "LicenseModel": {
- "type": "object",
- "required": [
- "entitlementPoolUUID",
- "licenseKeyGroupUUID"
- ],
- "properties": {
- "entitlementPoolUUID": {
- "type": "array",
- "items": {
- "type": "string",
- "format": "uuid"
- },
- "description": "Entitlement pool UUIDs associated with a resource.",
- "example": "candidateId"
- },
- "licenseKeyGroupUUID": {
- "type": "array",
- "items": {
- "type": "string",
- "format": "uuid"
- },
- "description": "License key groups associated with a resource",
- "example": "candidateId"
- }
- }
- },
- "SynchronousResponse": {
- "type": "object",
- "required": [
- "requestId",
- "transactionId",
- "requestStatus"
- ],
- "properties": {
- "requestId": {
- "type": "string",
- "format": "uuid",
- "description": "A unique Id for an ONAP transaction",
- "example": "ONAP transaction id"
- },
- "transactionId": {
- "type": "string",
- "format": "uuid",
- "description": "A unique ID to track multiple requests associated with a transaction.",
- "example": "requests id"
- },
- "statusMessage": {
- "type": "string",
- "description": "Reasoning if a requestStatus is failure.",
- "example": "requestStatus"
- },
- "requestStatus": {
- "type": "string",
- "enum": [
- "success",
- "failure"
- ],
- "description": "The status of a request.",
- "example": "success"
- }
- }
- },
- "PlacementAsynchronousResponse": {
- "type": "object",
- "required": [
- "requestId",
- "transactionId",
- "requestStatus",
- "solutions"
- ],
- "properties": {
- "requestId": {
- "type": "string",
- "format": "uuid",
- "description": "A unique Id for an ONAP transaction",
- "example": "ONAP transaction id"
- },
- "transactionId": {
- "type": "string",
- "format": "uuid",
- "description": "A unique ID to track multiple requests associated with a transaction.",
- "example": "requests id"
- },
- "statusMessage": {
- "type": "string",
- "description": "Reasoning if a requestStatus is failure.",
- "example": "requestStatus"
- },
- "requestStatus": {
- "type": "string",
- "enum": [
- "success",
- "failure"
- ],
- "description": "The status of a request.",
- "example": "success"
- },
- "solutions": {
- "$ref": "#/definitions/Solutions"
- }
- }
- },
- "Solutions": {
- "type": "object",
- "required": [
- "placementSolutions",
- "licenseSolutions"
- ],
- "properties": {
- "placementSolutions": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/ComprehensiveSolution"
- },
- "description": "A list of placement solutions."
- },
- "licenseSolutions": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/LicenseSolution"
- },
- "description": "A list of license solutions."
- }
- }
- },
- "ComprehensiveSolution": {
- "type": "object",
- "required": [
- "placementSolutions"
- ],
- "properties": {
- "placementSolutions": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/PlacementSolution"
- },
- "description": "A list of placement solutions."
- }
- }
- },
- "PlacementSolution": {
- "type": "object",
- "required": [
- "resourceModuleName",
- "serviceResourceId",
- "identifierType",
- "identifier"
- ],
- "properties": {
- "resourceModuleName": {
- "type": "string",
- "description": "The name of a resource as defined in the service model",
- "example": "resource name"
- },
- "serviceResourceId": {
- "type": "string",
- "description": "A resource Id as defined in a service model.",
- "example": "resource id"
- },
- "identifierType": {
- "type": "string",
- "enum": [
- "service_instance_id"
- ],
- "description": "The type of a candidate.",
- "example": "candidate type"
- },
- "identifier": {
- "type": "string",
- "description": "The id of a candidate.",
- "example": "candidate id"
- },
- "assignmentInfo": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/AssignmentInfo"
- },
- "description": "Additional information related to a candidate."
- }
- }
- },
- "AssignmentInfo": {
- "type": "object",
- "required": [
- "key",
- "value"
- ],
- "properties": {
- "key": {
- "type": "string",
- "description": "An attribute name",
- "example": "attribute name"
- },
- "value": {
- "type": "string",
- "description": "An attribute value.",
- "example": "attribute value"
- }
- }
- },
- "LicenseSolution": {
- "type": "object",
- "required": [
- "resourceModuleName",
- "serviceResourceId",
- "entitlementPoolUUID",
- "licenseKeyGroupUUID",
- "entitlementPoolInvariantUUID",
- "licenseKeyGroupInvariantUUID"
- ],
- "properties": {
- "resourceModuleName": {
- "type": "string",
- "description": "A resource name as defined in a service",
- "example": "resource name"
- },
- "serviceResourceId": {
- "type": "string",
- "description": "A resource Id as defined in a service.",
- "example": "resource Id"
- },
- "entitlementPoolUUID": {
- "type": "array",
- "items": {
- "type": "string",
- "format": "uuid"
- },
- "description": "A list of entitlementPoolUUIDs",
- "example": "entitlementPoolUUID"
- },
- "licenseKeyGroupUUID": {
- "type": "array",
- "items": {
- "type": "string",
- "format": "uuid"
- },
- "description": "A list of licenseKeyGroupUUID.",
- "example": "licenseKeyGroupUUID"
- },
- "entitlementPoolInvariantUUID": {
- "type": "array",
- "items": {
- "type": "string",
- "format": "uuid"
- },
- "description": "A list of entitlementPoolInvariantUUID",
- "example": "entitlementPoolInvariantUUID"
- },
- "licenseKeyGroupInvariantUUID": {
- "type": "array",
- "items": {
- "type": "string",
- "format": "uuid"
- },
- "description": "A list of licenseKeyGroupInvariantUUID",
- "example": "licenseKeyGroupInvariantUUID"
- }
- }
- },
- "ServiceInfo": {
- "type": "object",
- "required": [
- "serviceInstanceId",
- "modelInfo",
- "serviceName"
- ],
- "properties": {
- "serviceInstanceId": {
- "type": "string",
- "description": "A service instance id associated with a request.",
- "example": "service_instance_id"
- },
- "modelInfo": {
- "$ref": "#/definitions/ModelMetaData"
- },
- "serviceName": {
- "type": "string",
- "description": "The name of a service",
- "example": "service_name"
- }
- }
- },
- "PCIOptRequest": {
- "type": "object",
- "required": [
- "requestInfo",
- "cellInfo"
- ],
- "properties": {
- "requestInfo": {
- "$ref": "#/definitions/RequestInfo"
- },
- "cellInfo": {
- "$ref": "#/definitions/CellInfo"
- }
- }
- },
- "CellInfo": {
- "type": "object",
- "required": [
- "networkId",
- "cellIdList",
- "anrInputList",
- "trigger"
- ],
- "properties": {
- "networkId": {
- "type": "string",
- "description": "Id of network requiring PCI optimization",
- "example": 100
- },
- "cellIdList": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "description": "List of cellIds triggering need for PCI optimization (eg.potential confusion)",
- "example": [
- "cell0001",
- "cell0002"
- ]
- },
- "anrInputList": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/ANRInfo"
- },
- "description": "A list of ANR Input."
- },
- "trigger": {
- "type": "string",
- "description": "Type of trigger causing need for PCI optimization",
- "example": "NbrListChange"
- }
- }
- },
- "PCIAsynchronousResponse": {
- "type": "object",
- "required": [
- "requestId",
- "transactionId",
- "requestStatus",
- "solutions"
- ],
- "properties": {
- "requestId": {
- "type": "string",
- "format": "uuid",
- "description": "A unique Id for an ONAP transaction",
- "example": "ONAP transaction id"
- },
- "transactionId": {
- "type": "string",
- "format": "uuid",
- "description": "A unique ID to track multiple requests associated with a transaction.",
- "example": "requests id"
- },
- "statusMessage": {
- "type": "string",
- "description": "Reasoning if a requestStatus is failure.",
- "example": "requestStatus"
- },
- "requestStatus": {
- "type": "string",
- "enum": [
- "success",
- "failure"
- ],
- "description": "The status of a request.",
- "example": "success"
- },
- "solutions": {
- "$ref": "#/definitions/PCIANRSolutions"
- }
- }
- },
- "PCIANRSolutions": {
- "type": "object",
- "required": [
- "networkId",
- "pciSolutions",
- "anrSolutions"
- ],
- "properties": {
- "networkId": {
- "type": "string",
- "description": "Id of network requiring PCI optimization",
- "example": 100
- },
- "pciSolutions": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/PCISolution"
- },
- "description": "A list of PCI solutions."
- },
- "anrSolutions": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/ANRInfo"
- },
- "description": "A list of ANR solutions."
- }
- }
- },
- "PCISolution": {
- "type": "object",
- "required": [
- "cellId",
- "pci"
- ],
- "properties": {
- "cellId": {
- "type": "string",
- "description": "cellId with modified PCI value",
- "example": "cell0001"
- },
- "pci": {
- "type": "integer",
- "description": "New PCI value for cellId",
- "example": 1
- }
- }
- },
- "ANRInfo": {
- "type": "object",
- "required": [
- "cellId",
- "removeableNeighbors"
- ],
- "properties": {
- "cellId": {
- "type": "string",
- "description": "cellId with modified PCI value",
- "example": "cell0001"
- },
- "removeableNeighbors": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "description": "List of neighbors to be removed",
- "example": [
- "cell0002",
- "cell0003"
- ]
- }
- }
- }
- },
- "schemes": [
- "https"
- ],
- "host": "virtserver.swaggerhub.com",
- "basePath": "/oof-osdf/v1"
-} \ No newline at end of file
diff --git a/docs/sections/upgradestrategy.rst b/docs/sections/upgradestrategy.rst
new file mode 100644
index 0000000..6357fac
--- /dev/null
+++ b/docs/sections/upgradestrategy.rst
@@ -0,0 +1,22 @@
+..
+ This work is licensed under a Creative Commons Attribution 4.0
+ International License.
+
+================
+Upgrade Strategy
+================
+
+OSDF can be upgraded in place(remove and replace) or in a blue-green
+strategy.
+
+There is no need for database migration. Since, there is no database
+being used by OSDF.
+
+Supporting Facts
+================
+
+OSDF is a stateless component. It doesn't store any information in the
+database. It holds on to the optimization request in memory only until
+the optimization process is complete. The optimization is done either by
+OSDF itself or other external components(such as HAS) are leveraged for
+optimization.