Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Epic

User Story

Description

In Frankfurt?JIRA
ONAP-ETSI Catalog Manager supports ETSI package APIs and storage
ONAP-ETSI Catalog Manager stores ETSI packages and provides APIs to its clientssupports ETSI package APIs and storage for ETSI packages in runtimeYes

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyVFC-1542


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

Support the ONBOARDING_PACKAGE directory for the original vendor ETSI package extractionGet the vendor original SOL004 package from the ONBOARDING_PACKAGE directory.Provides APIs for the SOL003 Adapter to retrieve VNF packages Provides APIs for the SOL003 Adapter to retrieve VNF packages Provides APIs for the SOL005 Adapter to retrieve NS/PNF/VNF packagesProvides APIs for the SOL005 Adapter to retrieve NS/PNF/VNF packagesSO Package ManagementSDC - SO SDC Controller - ONAP-ETSI Catalog ManagerEnhance SO SDC Controller to query SOL004 packages from SDCEnhance SO SDC Controller to query SOL004 packages from SDCEnhance SO SDC Controller invoke ONAP-ETSI Catalog APIs to stores ETSI packages to the ONAP-ETSI Catalog DBEnhance SO SDC Controller invoke ONAP-ETSI Catalog APIs to stores ETSI packages to the ONAP-ETSI Catalog DB

SO ETSI Catalog DB Support for NS, VNF and PNF Packages

For the ETSI package storage, SO does the following:

  • SO (SDC Controller component) queries the package from SDC
  • SO stores ETSI (including SDC AID DM) + vendor VNF package CSAR or ZIP
    • If the onboarding vendor package is a zip file with signature and certificate, SO stores the vendor VNF package as a zip format.
    • Not all VNFD needs to be transformed to the SDC AID DM - TBD
  • For Non-ETSI models (Service + Non-ETSI Resource), SO will use the existing SO embedded Catalog DB

Instead of building ONAP-ETSI Catalog management in SO, SO will leverage the existing ONAP-ETSI Catalog Manager function.

  • Use VF-C Catalog Microservices for the NS, VNF and PNF catalog support, https://wiki.onap.org/pages/viewpage.action?pageId=63996543
    • VFC Catalog Manager function consists of two microservices: VF-C DB and VF-C Catalog. Deployment of these microservices is independent of VF-C, and the microservices have no dependency on other VF-C components – a good stepping stone towards common ONAP-ETSI Catalog management
    • VFC Catalog Manager will be enhanced to handle the vendor package in the ONBOARDING_PACKAGE directory.
  1. VF-C Catalog DB Microservice
  • Database: nfvocatalog (vfc-nfvo-catalog-createdb.sql // create db scripts)
  • Database Table (vfc-nfvo-catalog-createobj.sql // create tables scripts)
  • Catalog_NSPackage
  • Catalog_VNFPackage
  • Catalog_PNFPackage
  • Catalog_SoftwareImageModel

2.VF-C Catalog (API) Microservice

...

View file
nameetsicatalog.swagger.json
height250

Yes

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyVFC-1543


Supports the ONBOARDED_PACKAGE directory for the original vendor ETSI package extractionGets the vendor original SOL004 package from the ONBOARDED_PACKAGE directory.Yes

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyVFC-1544


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 

View file
nameetsicatalog.swagger.json
height250
View file
nameetsicatalog.swagger.notification.json
height250

Yes

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyVFC-1545


Provides APIs for the SOL005 Adapter to retrieve the original vendor NS/PNF packagesProvides APIs for the SOL005 Adapter to retrieve the original vendor NS/PNF packagesYes

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyVFC-1546


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

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyVFC-1552

SO Catalog Management

SDC - SO SDC Controller - ONAP-ETSI Catalog Manager

  • SDC supports SOL004/SOL007 package onboarding
  • SO SDC Controller invokes ETSI Catalog Manager if the incoming package is SOL004/SOL007-based
  • ETSI Catalog Manager queries SDC CSAR files for the given CSAR ID and stores the original vendor package into the ETSI Catalog Database

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keySO-2404


Enhances SO SDC Controller to query SOL004/SOL007 packages from SDC

Enhances SO SDC Controller to query SOL004/SOL007 packages from SDC

  • SO SDC Controller receives SDC notification for SOL004 packages
  • SO SDC Controller queries SDC for SOL004 CSAR files
  • SO SDC Controller receives SDC notification for SOL007 packages
  • SO SDC Controller queries SDC for SOL007 CSAR files
No

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keySO-2405


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

  • SO stores ONBOARDED_PACKAGE zip/csar files in the ONAP-ETSI Catalog DB through ONAP-ETSI Catalog Manager APIs
  • SO parses the SDC CSAR/zip file to find out if the package contains the ONBOARDED_PACKAGE artifact folder.
    • If it contains the folder, SO invokes the ETSI Catalog Manager by passing the SDC csar id, on top of the existing procedure.
    • Otherwise, it is NON-ETSI package, and SO will follow the existing procedure only
Yes

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keySO-2406

SO ETSI Catalog DB Support for NS, VNF and PNF Packages

For the ETSI package storage, SO does the following:

  • SO (SDC Controller component) queries the package from SDC
  • SO stores ETSI (including SDC AID DM) + vendor VNF package CSAR or ZIP
    • If the onboarding vendor package is a zip file with signature and certificate, SO stores the vendor VNF package as a zip format.
    • Not all VNFD needs to be transformed to the SDC AID DM - TBD
  • For Non-ETSI models (Service + Non-ETSI Resource), SO will use the existing SO embedded Catalog DB

Instead of building ONAP-ETSI Catalog management in SO, SO will leverage the existing ONAP-ETSI Catalog Manager function.

  • Use VF-C Catalog Microservices for the NS, VNF and PNF catalog support, https://wiki.onap.org/pages/viewpage.action?pageId=63996543
    • VFC Catalog Manager has been migrated as a common component, ETSI Catalog Manager Hereinafter, it is called as "ETSI Catalog Manager"
    • ETSI Catalog Manager has been enhanced to handle the vendor package in the ONBOARDED_PACKAGE directory.
  1. ETSI Catalog DB Microservice
  • Database: nfvocatalog (vfc-nfvo-catalog-createdb.sql // create db scripts)      // vfc prefix should be generalized
  • Database Table (vfc-nfvo-catalog-createobj.sql // create tables scripts) .         // vfc prefix should be generalized
  • Catalog_NSPackage
  • Catalog_VNFPackage
  • Catalog_PNFPackage
  • Catalog_SoftwareImageModel

2.VF-C Catalog (API) Microservice / ETSI Catalog (API) Microservice

  • vfc-catalog docker                 // vfc prefix should be generalized
  • ETSI Catalog Manager REST APIs
    • ETSI Catalog Manager provides the following Package Management and Package Notification APIs:
      • Package Management:
        • View file
          nameetsicatalog.swagger.json
          height250
      • Package Management Notification:
        • View file
          nameetsicatalog.swagger.notification.json
          height250
    • 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.

  • SDC Stores Service models/templates into the existing SO Catalog DB, and ETSI model will be stored in the ONAP-ETSI Catalog Manager database. 
  • Note: SO and other ONAP run-time components could leverage the ONAP-ETSI Catalog Manager function, as a common service.
  • Note: in the Frankfurt release, SOL005 Adapter does not support ETSI package management. It is supposed to support the NS package management in Guilin.

Gliffy Diagram
nameSDC-SO SDC Controller-ETSI Catalog Manager2
pagePin16

  • ONAP-ETSI Catalog Manager Interfaces:
    • Supports its NBI for create and update ONAP-ETSI catalog. SDC Controller will uses the NBI.
    • Retrieves model artifact files from SDC
    • Stores the data to the ONAP-ETSI Catalog DB.
      • For now, both SDC AID DM and original vendor package will be stored
    • Supports its Query operations for SOL003/SOL005 Adapters
      • The Catalog Manager will provide the original vendor packages to SOL003/SOL005 Adapters

SO Package Management ( SDC - SO SDC Controller - ONAP-ETSI Catalog Manager)

  • SO SDC Controller module (ASDCController and ToscaResourceInstall) needs to be updated for handling SOL004 packages including SOL001 VNFD and PNFD.
  • Service-level catalog and other non-ETSI catalog (SDC AID DM) will be stored in SO Catalog DB.
  • VNF/PNF/NS-level catalog handling would be simplified:
    • By using the ONAP-ETSI Catalog Manager, ETSI VNF/PNF/NS-level catalogs (i.e., original vendor packages) will be stored in ONAP-ETSI Catalog DB
    • SO itself does not need to manage ETSI-based VNF LCM; i.e., delegates the LCM to VNFM through the SOL003 VNFM Adapter
  • In Frankfurt, VNF and NS package management will be supported.
  • The following diagram depicts the component interactions for VNF Package store for ONAP runtime.

Gliffy Diagram
nameSDC-SO SDC Controller-ETSI Catalog Manager 3
pagePin5


  • Interfaces between SDC Controller and ONAP-ETSI Catalog Manager
PlantUML Macro
typedot
@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
  • ONAP-ETSI Catalog Manager POST API will be used to store the VNF packages
    • POST /api/catalog/v1/vnfpackages // passing csarId, vimIds and labVimId

Image Added


  • Operation Requirements
API ActionActorMethodEndpoint URIDescription
Store ETSI packageSDC ControllerPOST/api/catalog/v1/vnfpackagesInvoke the ONAP-ETSI Catalog to store SOL004 VNF packages to ONAP-ETSI Catalog DB











SO Catalog Modelling

  • The service database table has TOSCA_CSAR_ARTIFACT_UUID column. We continue to use this column to link the TOSCA CSAR.
  • The TOSCA_CSAR database has a logical relationship with Catalog_NSPackage, Catalog_PNFPackage and Catalog_VNFPackage.
    • When a record is entered in the TOSCA_CSAR,
      • if the CSAR artifact type is NS, add a NS package into Catalog_NSPackage
      • if the CSAR artifact type is VNF, add a VNF package into Catalog_VNFPackage
      • if the CSAR artifact type is PNF, add a PNF package into Catalog_NSPackage
  • For the SOL004 VNF onboarding into SO,
    • SO does not populate data info the VF-Module database table if the VF-Module is not populated in the modeling.
      • It depends on the SOL001 VNFD mapping to SDC AID DM whether it populates VF-Modules or not.
    • SO does not populate data into the HEAT-Template database table
      • Heat-Template is part of the VNF package
    • SO invokes the ONAP-ETSI Catalog Manager APIs with the CSAR UUID.
      • ToscaResourceInstaller (InstallTheVfResource, InstallThePNFResource) will be modified to invoke the ONAP-ETSI Catalog Manager.
      • Note: the NS use case needs to be defined since SDC does not support SOL007 (NS Package) yet.
    • The ONAP-ETSI Catalog Manager receives VNF packages and stores them into the ONAP-ETSI Catalog Database Catalog_VNFPackage
      • It stores the VNF package as a whole and its APIs can extract the VNFD, artifacts, softwareImage, etc.


  • SO Catalog models and relationships are as follows:
    • Note: the relationship between TOSCA_CSAR and Catalog_NSPackage/Catalog_VNFPackage/Catalog_PNFPackage is "logical" since the Catalog_***Package and Catalog_Softwareimage will be resided in the ONAP-ETSI Catalog DB.
    • Based on the CSAR UUID, the ONAP-ETSI Catalog Manager gets all the artifacts and files from SDC to fulfill the Catalog_***Package and Catalog_Softwareimage.


PlantUML Macro
typedot
@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

...

The following APIs are part of VF-C Swagger REST APIs. For the complete ApIs, https://docs.onap.org/en/latest/_downloads/0fea611e8b07fb4042e1a66ce202898c/CATALOG_API_Specification_v1.json

...

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.

  • SDC Stores Service models/templates into the existing SO Catalog DB, and ETSI model will be stored in the ONAP-ETSI Catalog Manager database. 
  • Note: the ONAP-ETSI Catalog Manager function could be realized by the VFC (or equivalent) ONAP-ETSI Catalog API and ONAP-ETSI Catalog DB Microservices - To be discussed further.
    • VF-C DB and Catalog are two Microservices, which they can be deployed independently from VF-C, and they don't have dependency with other VF-C components.
    • SO and other ONAP run-time components could leverage the ONAP-ETSI Catalog Manager function, as a common service.

Gliffy Diagram
nameSDC-SO SDC Controller-ETSI Catalog Manager2
pagePin7

  • ONAP-ETSI Catalog Manager Interfaces
    • Supports its NBI for create and update ONAP-ETSI catalog. SDC Controller will uses the NBI.
    • Retrieves model artifact files from SDC
    • Stores the data to the ONAP-ETSI Catalog DB.
    • Supports its Query operations for SOL003/SOL005 Adapters

SO Package Management ( SDC - SO SDC Controller - ONAP-ETSI Catalog Manager)

  • SO SDC Controller module (ASDCController and ToscaResourceInstall) needs to be updated for handling SOL004 packages including SOL001 VNFD and PNFD.
  • Service-level catalog and other non-ETSI catalog (SDC AID DM) will be stored in SO Catalog DB.
  • VNF/PNF/NS-level catalog handling would be simplified:
    • By using the ONAP-ETSI Catalog Manager, ETSI VNF/PNF/NS-level catalogs (i.e., original vendor packages) will be stored in ONAP-ETSI Catalog DB
    • SO itself does not need to manage ETSI-based VNF LCM; i.e., delegates the LCM to VNFM through the SOL003 VNFM Adapter
  • In Frankfurt, VNF package management will be supported.
  • The following diagram depicts the component interactions for VNF Package store for ONAP runtime.

Gliffy Diagram
nameSDC-SO SDC Controller-ETSI Catalog Manager 3
pagePin4

  • Interfaces between SDC Controller and ONAP-ETSI Catalog Manager
PlantUML Macro
typedot
@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
	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
  • ONAP-ETSI Catalog Manager POST API will be used to store the VNF packages
    • POST /api/catalog/v1/vnfpackages // passing csarId, vimIds and labVimId

Image Removed

  • Operation Requirements

...

SO Catalog Modelling

  • The service database table has TOSCA_CSAR_ARTIFACT_UUID column. We continue to use this column to link the TOSCA CSAR.
  • The TOSCA_CSAR database has a logical relationship with Catalog_NSPackage, Catalog_PNFPackage and Catalog_VNFPackage.
    • When a record is entered in the TOSCA_CSAR,
      • if the CSAR artifact type is NS, add a NS package into Catalog_NSPackage
      • if the CSAR artifact type is VNF, add a VNF package into Catalog_VNFPackage
      • if the CSAR artifact type is PNF, add a PNF package into Catalog_NSPackage
  • For the SOL004 VNF onboarding into SO,
    • SO does not populate data info the VF-Module database table if the VF-Module is not populated in the modeling.
      • It depends on the SOL001 VNFD mapping to SDC AID DM whether it populates VF-Modules or not.
    • SO does not populate data into the HEAT-Template database table
      • Heat-Template is part of the VNF package
    • SO invokes the ONAP-ETSI Catalog Manager APIs with the CSAR UUID.
      • ToscaResourceInstaller (InstallTheVfResource, InstallThePNFResource) will be modified to invoke the ONAP-ETSI Catalog Manager.
      • Note: the NS use case needs to be defined since SDC does not support SOL007 (NS Package) yet.
    • The ONAP-ETSI Catalog Manager receives VNF packages and stores them into the ONAP-ETSI Catalog Database Catalog_VNFPackage
      • It stores the VNF package as a whole and its APIs can extract the VNFD, artifacts, softwareImage, etc.
  • SO Catalog models and relationships are as follows:
    • Note: the relationship between TOSCA_CSAR and Catalog_NSPackage/Catalog_VNFPackage/Catalog_PNFPackage is logical since the Catalog_***Package will be resided in the ONAP-ETSI Catalog DB.
PlantUML Macro
typedot
@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_INVARIENTINVARIANT_UUID varchar(200) <<generated>>
  *MODEL_VERSION varchar(20)
  DESCRIPTION varchar(1200) 
  SERVICE_TYPE varchar(200)
  SERVICE_ROLE varchar (200)
  ENVIRONMENT_CONTEXT*MODEL_NANME varchar(200)
  WORKLOAD_CONTEXT*TOSCA_NODE_TYPE varchar(200)
  *CREATION_TIMESTAMP datetimeDESCRIPTION varchar(1200)
  *TOSCA_CSAR_ARTIFACT_UUIDORCHESTRATION_MODE varchar(20020) <<FK>>
  SERVICE*CREATION_CATEGORY varchar(200)

TIMESTAMP datetime
}

entity "toscapnf_resource_csarcustomization" as toscapnf_resource_csarcustomization {
  *ARTIFACTMODEL_CUSTOMIZATION_UUID varchar(200) <<PK>>
  --  
  *MODEL_INSTANCE_NAME varchar(200)
  *VERSION varchar(20AVAILABILITY_ZONE_MAX_COUNT int(11)
  DESCRIPTION*NF_TYPE varchar(1200200)
  *ARTIFACTNF_CHECKSUMROLE varchar(200)
  *URLNF_FUNCTION varchar(200)
  *CREATION_TIMESTAMP datatime
}

entity "vnf_resource_customization_to_service" as vrcts {
  *SERVICE_MODEL_UUID NF_NAMING_CODE varchar(200) <<PK>>
  *RESOURCE_MODEL_CUSTOMIZATION_UUID varchar(200) <<PK>>
}

entity "pnf_resource_customization_to_service" as prcts {CREATION_TIMESTAMP datetime
  *MULTI_STAGE_DESIGN varchar(20)
  *SERVICECDS_MODELBLUEPRINT_UUIDNAME varchar(200) <<PK>>
  *RESOURCECDS_MODELBLUEPRINT_CUSTOMIZATION_UUIDVERSION varchar(20020) <<PK>>
}

entity "servicecatalog_receipevnfpackage" as servicecatalog_receipevnfpackage {
  *idVNFPACKAGEID` intvarchar(1150) <<PK>>
  --  
  *ACTIONVNFPACKAGEURI` varchar(50300) NULL,
  *VERSION_STRSDCCSARURI` varchar(20300) NULL,
  *DESCRIPTIONCHECKSUM` varchar(120050) NULL,
  *ORCHESTRATION_URIONBOARDINGSTATE` varchar(25620) NULL,
  *SERVICE_PARAM_XSDOPERATIONALSTATE` varchar(204820) NULL,
  RECIPE_TIMEOUTUSAGESTATE` intvarchar(1120) NULL,
  *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_VERSIONDELETIONPENDING` 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)
  *MODEL_NANMEPNFSOFTWAREVERSION varchar(20020)
  *TOSCA_NODE_TYPE varchar(200)USERDEFINEDDATA longtext
  DESCRIPTIONLOCALFILEPATH varchar(1200300)
  *ORCHESTRATION_MODE varchar(20)PNFDMODEL longtext
  *CREATION_TIMESTAMP datetimePNFDNAME varchar(100)
}

entity "pnfcatalog_resource_customizationsoftwareimage" as pnfcatalog_resource_customizationsoftwareimage {
  *MODEL_CUSTOMIZATION_UUIDIMAGEID varchar(20050) <<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 {
  *ARTIFACT_UUID varchar(200) <<PK>>
  --
  ...
  *CREATION_TIMESTAMP datatime
}

entity "catalog_nspackage" as catalog_nspackage {
  *ARTIFACT_UUID varchar(200) <<PK>>
  --
  ...
  *CREATION_TIMESTAMP datatime
}

entity "catalog_pnfpackage" as catalog_pnfpackage {
  *ARTIFACT_UUID varchar(200) <<PK>>
  --
  ...
  *CREATION_TIMESTAMP datatime
}

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



@enduml

ONAP-ETSI Catalog Manager - SOL003/SOL005 Adapter

As the diagram depicts, ETSI Catalog Manager consists of two microservices:

  • ONAP-ETSI Catalog API
  • ONAP-ETSI Catalog DB

Gliffy Diagram
nameSDC-SO SDC Controller-ETSI Catalog Manager 4
pagePin4

  • Interfaces between ONAP-ETSI Catalog Manager and SOL003/SOL005 Adapters
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


ONAP-ETSI Catalog Manager - SOL003/SOL005 Adapter

As the diagram depicts, ETSI Catalog Manager consists of two microservices:

  • ONAP-ETSI Catalog API
  • ONAP-ETSI Catalog DB

Gliffy Diagram
nameSDC-SO SDC Controller-ETSI Catalog Manager 4
pagePin5


Interfaces between ONAP-ETSI Catalog Manager and SOL003/SOL005 Adapters


PlantUML Macro
typedot
@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
PlantUML Macro
typedot
@startuml
participant ONAP_ETSI_Catalog_API
participant ONAP_ETSI_Catalog_DB
participant SOL003_Adapter
participant SOL005_Adapter
participant VNFM
participant Ext_NFVO
autonumber 

group SOL003
	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_Catalog_API -> SOL003_Adapter : response with VNF package\n (original vendor package)
	SOL003_Adapter -> SOL003_AdapterVNFM : response with VNF package\n (original vendor 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
  • ONAP-ETSI Catalog Manager provides RESTful services to Adapters:
    • ETSI package management for the Adapters.
      • GET /api/catalog/v1/vnfpackages/{csarId}

...

      • Need to pass artifacts (images) to VIM thru the Adapter
      • Get the original vendor VNF package
    • Retrieving VNFD for SOL003 Adapter
    • Retrieving NSD/VNFD for SOL005 Adapter
      • GET /nspackages/{csarId} // query NS package info
      • More SOL005 Adapter requirements are being collected.


Operation Requirements


  • API ActionActorMethodEndpoint URIDescription
    Query ETSI VNF packageSOL003 AdapterGET

    /api/catalog/v1/vnfpackages/{csarId}

    Invoke a SOL004 VNF package from  ONAP-ETSI Catalog

    Query ETSI NS Package

    SOL005 AdapterGET/nspackages/{csarId}Query NS Package info from the ONAP-ETSI Catalog






...