aboutsummaryrefslogtreecommitdiffstats
path: root/onap_data_provider
diff options
context:
space:
mode:
authorPiotr Stanior <piotr.stanior@t-mobile.pl>2022-02-02 15:14:47 +0100
committerPiotr Stanior <piotr.stanior@t-mobile.pl>2022-02-03 14:44:31 +0100
commit7f6332466912bbc0886756d40e34128861a39259 (patch)
treeb15fdb446e440d09c74c1300295ba41de1d06920 /onap_data_provider
parente9dbe96626c23204bac7426bba69b4e2aedfbd8f (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.py12
-rw-r--r--onap_data_provider/schemas/infra.schema24
-rw-r--r--onap_data_provider/schemas/infra_1_1.schema24
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: