<<Note: this is a working draft. The contents will be added/deleted/corrected/updated as needed.>>
Feature | Description |
---|---|
ONAP-ETSI Catalog Manager APIs | ONAP-ETSI Catalog Manager supports APIs for SO and SOL003/SOL005 Adapters |
SO ETSI Catalog DB Support for NS, PNF and VNF packages | SO retrieves ETSI packages from SDC and stores the packages to ONAP-ETSI Catalog DB thru ONAP-ETSI Catalog APIs
|
ONAP-ETSI Catalog Manger - SOL003/SOL005 Adapters | SOL003/SOL005 Adapters use ONAP-ETSI Catalog Manager APIs to retrieve ETSI packages |
Epic | User Story | Description | In Frankfurt? | JIRA |
---|---|---|---|---|
ONAP-ETSI Catalog Manager supports ETSI package APIs and storage | ONAP-ETSI Catalog Manager supports ETSI package APIs and storage for ETSI packages in runtime | Yes | ||
Provides APIs for SO to store ETSI packages to the ONAP-ETSI Database | Provides APIs for SO to store ETSI packages to the ONAP-ETSI Database
| Yes | ||
Supports the ONBOARDED_PACKAGE directory for the original vendor ETSI package extraction | Gets the vendor original SOL004 package from the ONBOARDED_PACKAGE directory. | Yes | ||
Provides APIs for the SOL003/SOL005 Adapter to retrieve the original vendor VNF packages | Provides APIs for the SOL003 Adapter to retrieve the original vendor VNF packages | Yes | ||
Provides APIs for the SOL005 Adapter to retrieve the original vendor NS/PNF packages | Provides APIs for the SOL005 Adapter to retrieve the original vendor NS/PNF packages | Yes | ||
Migrates VF-C catalog to Modeling ONAP-ETSI Catalog Manager as a common component | Migrates VF-C catalog to Modeling ONAP-ETSI Catalog Manager as a common component | Yes | ||
SO Catalog Management | SDC - SO SDC Controller - ONAP-ETSI Catalog Manager
| |||
Enhances SO SDC Controller to query SOL004/SOL007 packages from SDC | Enhances SO SDC Controller to query SOL004/SOL007 packages from SDC
| No | ||
Enhances SO SDC Controller to invoke ONAP-ETSI Catalog APIs to store ETSI packages to the ONAP-ETSI Catalog DB | Enhances SO SDC Controller to invoke ONAP-ETSI Catalog APIs to stores ETSI packages to the ONAP-ETSI Catalog DB
| Yes |
For the ETSI package storage, SO does the following:
Instead of building ONAP-ETSI Catalog management in SO, SO will leverage the existing ONAP-ETSI Catalog Manager function.
2.VF-C Catalog (API) Microservice / ETSI Catalog (API) Microservice
API descriptions
NS Package Management | VNF Package Management | PNF Management |
---|---|---|
•GET /nspackages // query NS package info •POST /nspackages // NS package distribute / create •GET /nspackages/{csarId} // query NS package info •DELETE /nspackages/{csarId} // delete NS package | •GET /vnfpackages //query vnf package info •POST /vnfpackages // vnf package distribute / create •GET /vnfpackages/{csarId} // query vnf package info •DELETE /vnfpackages/{csarId} // delete vnf package •PUT /vnfpackages/{csarId}. // create/upload vnf package | •GET /pnf_descriptors •POST /pnf_descriptors •GET /pnf_descriptors/{pnfdInfoId} •DELETE /pnf_descriptors/{pnfdInfoId} |
Model Parsing | Job Management (used for async LCM) | More… |
•POST /parsernsd // NS package model •POST /parservnfd // VNF package model | •GET /jobs/{jobId} // Job Status •POST /jobs/{jobId} // Update Job Status | • |
The following diagram depicts a possible ONAP-ETSI Catalog DB handling for NS, VNF and PNF Packages.
@startuml participant SDC_Controller participant SO_Catalog_DB participant ONAP_ETSI_Catalog_API participant ONAP_ETSI_Catalog_DB participant SDC autonumber SDC_Controller -> SO_Catalog_DB : Store metadata and non-ETSI models SDC_Controller -> ONAP_ETSI_Catalog_API : Initiate for storing ETSI NS/VNF/PNF models,\nPOST .../api/catalog/v1/vnfpackages\n (pass CSAR id) ONAP_ETSI_Catalog_API -> SDC : Retrieve ETSI NS/VNF/PNF Models (files) SDC -> ONAP_ETSI_Catalog_API : Response with requested models (files) ONAP_ETSI_Catalog_API -> ONAP_ETSI_Catalog_DB : Store package ONAP_ETSI_Catalog_DB -> ONAP_ETSI_Catalog_API : Response with success/failure @enduml |
API Action | Actor | Method | Endpoint URI | Description |
---|---|---|---|---|
Store ETSI package | SDC Controller | POST | /api/catalog/v1/vnfpackages | Invoke the ONAP-ETSI Catalog to store SOL004 VNF packages to ONAP-ETSI Catalog DB |
@startuml ' hide the spot hide circle ' avoid problems with angled crows feet skinparam linetype ortho entity "service" as service { *MODEL_UUID : varchar(200) <<PK>> -- *MODEL_NAME : varchar(200) *MODEL_INVARIENT_UUID varchar(200) <<generated>> *MODEL_VERSION varchar(20) DESCRIPTION varchar(1200) SERVICE_TYPE varchar(200) SERVICE_ROLE varchar (200) ENVIRONMENT_CONTEXT varchar(200) WORKLOAD_CONTEXT varchar(200) *CREATION_TIMESTAMP datetime *TOSCA_CSAR_ARTIFACT_UUID varchar(200) <<FK>> SERVICE_CATEGORY varchar(200) } entity "tosca_csar" as tosca_csar { *ARTIFACT_UUID varchar(200) <<PK>> -- *NAME varchar(200) *VERSION varchar(20) DESCRIPTION varchar(1200) *ARTIFACT_CHECKSUM varchar(200) *URL varchar(200) *CREATION_TIMESTAMP datatime } entity "vnf_resource_customization_to_service" as vrcts { *SERVICE_MODEL_UUID varchar(200) <<PK>> *RESOURCE_MODEL_CUSTOMIZATION_UUID varchar(200) <<PK>> } entity "pnf_resource_customization_to_service" as prcts { *SERVICE_MODEL_UUID varchar(200) <<PK>> *RESOURCE_MODEL_CUSTOMIZATION_UUID varchar(200) <<PK>> } entity "service_receipe" as service_receipe { *id int(11) <<PK>> -- *ACTION varchar(50) *VERSION_STR varchar(20) *DESCRIPTION varchar(1200) *ORCHESTRATION_URI varchar(256) *SERVICE_PARAM_XSD varchar(2048) RECIPE_TIMEOUT int(11) *SERVICE_TIMEOUT_INTERIM int(11) *CREATION_TIMESTAMP datetime *SERVICE_MODEL_UUID varchar(200) <<FK>> } entity "vnf_resource" as vnf_resource { *MODEL_UUID varchar(200) <<PK>> -- *MODEL_INVARIENT_UUID varchar(200) *MODEL_VERSION varchar(200) *MODEL_NAME varchar(200) *TOSCA_NODE_TYPE varchar(200) DESCRIPTION varchar(1200) *ORCHESTRATION_MODE varchar(20) *AIC_VERSION_MIN varchar(20) *AIC_VERSION_MAX varchar(20) *CREATION_TIME datetime *HEAT_TEMPLATE_ARTIFACT_UUID varchar(200) *RESOURCE_CATEGORY varchar(200) *RESORCE_SUB_CATEGORY varchar(200) VNF_PACKAGE_CSAR_UUID } entity "vnf_resource_customization" as vnf_resource_customization { *MODEL_CUSTOMIZATION_UUID varchar(200) <<PK>> -- *MODEL_INSTANCE_NAME varchar(200) *MIN_INSTANCES int(11) *MAX_INSTANCES int(11) *AVAILABILITY_ZONE_MAX_COUNT int(11) *NF_TYPE varchar(200) *NF_ROLE varchar(200) *NF_FUNCTION varchar(200) *NF_NAMING_CODE varchar(200) *CREATION_TIMESTAMP datetime *VNF_RESOURCE_MODEL_UUID varchar(200) <<FK>> *MULTI_STAGE_DESIGN varchar(20) *CDS_BLUEPRINT_NAME varchar(200) *CDS_BLUEPRINT_VERSION varchar(20) *SKIP_POST_INITIATION_CONFIGURATION varchar(20) } entity "pnf_resource" as pnf_resource { *MODEL_CUSTOMIZATION_UUID varchar(200) <<PK>> -- *MODEL_INVARIANT_UUID varchar(200) *MODEL_VERSION varchar(20) *MODEL_NANME varchar(200) *TOSCA_NODE_TYPE varchar(200) DESCRIPTION varchar(1200) *ORCHESTRATION_MODE varchar(20) *CREATION_TIMESTAMP datetime } entity "pnf_resource_customization" as pnf_resource_customization { *MODEL_CUSTOMIZATION_UUID varchar(200) <<PK>> -- *MODEL_INSTANCE_NAME varchar(200) *AVAILABILITY_ZONE_MAX_COUNT int(11) *NF_TYPE varchar(200) *NF_ROLE varchar(200) *NF_FUNCTION varchar(200) *NF_NAMING_CODE varchar(200) *CREATION_TIMESTAMP datetime *MULTI_STAGE_DESIGN varchar(20) *CDS_BLUEPRINT_NAME varchar(200) *CDS_BLUEPRINT_VERSION varchar(20) } entity "catalog_vnfpackage" as catalog_vnfpackage { *VNFPACKAGEID` varchar(50) <<PK>> -- VNFPACKAGEURI` varchar(300) NULL, SDCCSARURI` varchar(300) NULL, CHECKSUM` varchar(50) NULL, ONBOARDINGSTATE` varchar(20) NULL, OPERATIONALSTATE` varchar(20) NULL, USAGESTATE` varchar(20) NULL, DELETIONPENDING` varchar(20) NULL, VNFDID` varchar(50) NULL, VENDOR` varchar(50) NULL, VNFDPRODUCTNAME` varchar(50) NULL, VNFDVERSION` varchar(20) NULL, VNFSOFTWAREVERSION` varchar(20) NULL, USERDEFINEDDATA` longtext NULL, LOCALFILEPATH` varchar(300) NULL, VNFDMODEL` longtext NULL } entity "catalog_nspackage" as catalog_nspackage { *NSPACKAGEID` varchar(50) <<PK>> -- NSPACKAGEURI varchar(300) CHECKSUM varchar(50) SDCCSARID varchar(50) ONBOARDINGSTATE varchar(20) OPERATIONALSTATE varchar(20) USAGESTATE varchar(20) DELETIONPENDING varchar(20) NSDID varchar(50) NSDNAME varchar(50) NSDDESIGNER varchar(50) NSDDESCRIPTION varchar(100) NSDVERSION varchar(20) USERDEFINEDDATA longtext LOCALFILEPATH varchar(300) NSDMODEL longtext INVARIANTID varchar(50) } entity "catalog_pnfpackage" as catalog_pnfpackage { *PNFPACKAGEID varchar(50) <<PK>> -- PNFPACKAGEURI varchar(300) SDCCSARURI varchar(300) CHECKSUM varchar(50) ONBOARDINGSTATE varchar(20) USAGESTATE varchar(20) DELETIONPENDING varchar(20) PNFDID varchar(50) VENDOR varchar(50) PNFDPRODUCTNAME varchar(50) PNFDVERSION varchar(20) PNFSOFTWAREVERSION varchar(20) USERDEFINEDDATA longtext LOCALFILEPATH varchar(300) PNFDMODEL longtext PNFDNAME varchar(100) } entity "catalog_softwareimage" as catalog_softwareimage { *IMAGEID varchar(50) <<PK>> -- CONTAINERFORMAT varchar(20) DISKFORMAT varchar(20) MINDISK varchar(20) MINRAM varchar(20) USAERMETADATA varchar(1024) VNFPACKAGEID varchar(50) FILEPATH varchar(300) STATUS varchar(10) VIMID varchar(50) } service }|--|| tosca_csar service ||--|{ service_receipe service ||--|{ vrcts service ||--|{ prcts vnf_resource ||--|{ vnf_resource_customization pnf_resource ||--|{ pnf_resource_customization vrcts }|--|| vnf_resource_customization prcts }|--|| pnf_resource_customization tosca_csar .. catalog_vnfpackage tosca_csar .. catalog_nspackage tosca_csar .. catalog_pnfpackage tosca_csar .. catalog_softwareimage @enduml |
As the diagram depicts, ETSI Catalog Manager consists of two microservices:
@startuml participant ONAP_ETSI_Catalog_API participant ONAP_ETSI_Catalog_DB participant SOL003_Adapter participant SOL005_Adapter participant VNFM participant Ext_NFVO autonumber hnote over ONAP_ETSI_Catalog_API, ONAP_ETSI_Catalog_DB : Precondition: VNF/NS/PNF package is successfully stored\nto ONAP-ETSI Catalog DB SOL003_Adapter -> ONAP_ETSI_Catalog_API : Subscribe for VNF Package notification\nVnfPackageOnboardingNotification, VnfPackageChangeNotification SOL005_Adapter -> ONAP_ETSI_Catalog_API : Subscribe for NSD and PNFD notification\nNsdOnboardingNotification, NsdChangeNotification, NsdDeletionNotification\nPnfdOnboardingNotification, PnfDeletionNotification ONAP_ETSI_Catalog_API -> SOL003_Adapter : Send VNF Package onboarding/change notification SOL003_Adapter -> VNFM : Send VNF onboarding/change notification ONAP_ETSI_Catalog_API -> SOL005_Adapter : Send NSD/PNFD onboarding/change notification SOL005_Adapter -> Ext_NFVO : Send NSD/PNFD onboarding/change notification group SOL003 VNFM -> SOL003_Adapter : Request for VNF package SOL003_Adapter -> ONAP_ETSI_Catalog_API : Request for VNF package,\nGET .../api/catalog/v1/vnfpackages/{csarId} ONAP_ETSI_Catalog_API -> ONAP_ETSI_Catalog_DB : Query for VNF package ONAP_ETSI_Catalog_DB -> ONAP_ETSI_Catalog_API : response with VNF package\n(original vendor package) ONAP_ETSI_Catalog_API -> SOL003_Adapter : response with VNF package\n (original vendor package) SOL003_Adapter -> VNFM : response with VNF package end group SOL005 Ext_NFVO -> SOL005_Adapter : Request for NS/VNF/PNF package SOL005_Adapter -> ONAP_ETSI_Catalog_API : Request for NS/VNF/PNF package,\nGET .../api/catalog/v1/nspackages/{csarId},\nGET .../api/catalog/v1/vnfpackages/{csarId} ONAP_ETSI_Catalog_API -> ONAP_ETSI_Catalog_DB : Query for NS/VNF/PNF package ONAP_ETSI_Catalog_DB -> ONAP_ETSI_Catalog_API : response with NS/VNF/PNF package\n(original vendor package) ONAP_ETSI_Catalog_API -> SOL005_Adapter : response with NS/VNF/PNF package\n(original vendor package) SOL005_Adapter -> Ext_NFVO : response with NS/VNF/PNF package end @enduml |
API Action | Actor | Method | Endpoint URI | Description |
---|---|---|---|---|
Query ETSI VNF package | SOL003 Adapter | GET | /api/catalog/v1/vnfpackages/{csarId} | Invoke a SOL004 VNF package from ONAP-ETSI Catalog |
Query ETSI NS Package | SOL005 Adapter | GET | /nspackages/{csarId} | Query NS Package info from the ONAP-ETSI Catalog |