diff options
author | Piotr Stanior <piotr.stanior@t-mobile.pl> | 2022-02-02 15:14:47 +0100 |
---|---|---|
committer | Piotr Stanior <piotr.stanior@t-mobile.pl> | 2022-02-03 14:44:31 +0100 |
commit | 7f6332466912bbc0886756d40e34128861a39259 (patch) | |
tree | b15fdb446e440d09c74c1300295ba41de1d06920 /onap_data_provider | |
parent | e9dbe96626c23204bac7426bba69b4e2aedfbd8f (diff) |
Add vfc resource support for xnfs
Change-Id: I8caa5174e35167f1bd26fe4a950af2cd7fe63ead
Signed-off-by: Piotr Stanior <piotr.stanior@t-mobile.pl>
Issue-ID: INT-2058
Signed-off-by: Piotr Stanior <piotr.stanior@t-mobile.pl>
Diffstat (limited to 'onap_data_provider')
-rw-r--r-- | onap_data_provider/resources/xnf_resource.py | 12 | ||||
-rw-r--r-- | onap_data_provider/schemas/infra.schema | 24 | ||||
-rw-r--r-- | onap_data_provider/schemas/infra_1_1.schema | 24 |
3 files changed, 59 insertions, 1 deletions
diff --git a/onap_data_provider/resources/xnf_resource.py b/onap_data_provider/resources/xnf_resource.py index efede03..0c873b7 100644 --- a/onap_data_provider/resources/xnf_resource.py +++ b/onap_data_provider/resources/xnf_resource.py @@ -16,10 +16,12 @@ """ from abc import ABC +import logging from typing import Any, Dict from onapsdk.sdc.vsp import Vsp # type: ignore from onapsdk.sdc.sdc_resource import SdcResource # type: ignore from onapsdk.sdc.properties import Property # type: ignore +from onapsdk.sdc.vfc import Vfc # type: ignore from .sdc_properties_mixins import SdcPropertiesMixins @@ -44,13 +46,21 @@ class XnfResource(ABC, SdcPropertiesMixins): if (vsp_name := data.get("vsp")) is not None: self._xnf.vsp = Vsp(vsp_name) self._xnf.create() - if (artifact_data := data.get("deployment_artifact")) is not None: + if data.get("deployment_artifact") is not None: self._xnf.add_deployment_artifact( artifact_type=data["deployment_artifact"]["artifact_type"], artifact_name=data["deployment_artifact"]["artifact_name"], artifact_label=data["deployment_artifact"]["artifact_label"], artifact=data["deployment_artifact"]["artifact_file_name"], ) + if (resources := data.get("resources")) is not None: + for resource_data in resources: + if resource_data["xnf_type"] == "VFC": + self._xnf.add_resource(Vfc(name=resource_data["name"])) + else: + logging.warning( + f"Provided xNF resource of type {resource_data['xnf_type']} is not supported." + ) self.set_properties(self._xnf, data.get("properties", [])) self.set_inputs(self._xnf, data.get("inputs", [])) self._xnf.onboard() diff --git a/onap_data_provider/schemas/infra.schema b/onap_data_provider/schemas/infra.schema index 55c5cbf..8904f95 100644 --- a/onap_data_provider/schemas/infra.schema +++ b/onap_data_provider/schemas/infra.schema @@ -318,6 +318,18 @@ properties: - artifact_file_name properties: *props inputs: *props + resources: + type: array + items: + - type: object + properties: + xnf_type: + type: string + name: + type: string + required: + - xnf_type + - name required: - name required: @@ -352,6 +364,18 @@ properties: - artifact_file_name properties: *props inputs: *props + resources: + type: array + items: + - type: object + properties: + xnf_type: + type: string + name: + type: string + required: + - xnf_type + - name required: - name required: diff --git a/onap_data_provider/schemas/infra_1_1.schema b/onap_data_provider/schemas/infra_1_1.schema index 7514acc..7d51345 100644 --- a/onap_data_provider/schemas/infra_1_1.schema +++ b/onap_data_provider/schemas/infra_1_1.schema @@ -324,6 +324,18 @@ properties: - artifact_file_name properties: *props inputs: *props + resources: + type: array + items: + - type: object + properties: + xnf_type: + type: string + name: + type: string + required: + - xnf_type + - name required: - name required: @@ -364,6 +376,18 @@ properties: - artifact_file_name properties: *props inputs: *props + resources: + type: array + items: + - type: object + properties: + xnf_type: + type: string + name: + type: string + required: + - xnf_type + - name required: - name required: |