From 3d3d3574f1012a7faa6cf86d55884cf0884decbf Mon Sep 17 00:00:00 2001 From: Abhishek Patil Date: Thu, 27 Jul 2023 16:32:17 +0530 Subject: ONAP SDK to add new PNF functionality Issue-ID: TEST-401 Change-Id: Ib603b9aaad43bb8c55ff5c2c23cd9a1a36475de9 Signed-off-by: Abhishek Patil --- src/onapsdk/aai/business/service.py | 45 ++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) (limited to 'src/onapsdk/aai') diff --git a/src/onapsdk/aai/business/service.py b/src/onapsdk/aai/business/service.py index fe3b34d..4351a26 100644 --- a/src/onapsdk/aai/business/service.py +++ b/src/onapsdk/aai/business/service.py @@ -18,7 +18,7 @@ from typing import Iterator, Type, Union, Iterable, Optional from onapsdk.exceptions import StatusError, ParameterError from onapsdk.sdc.service import Service from onapsdk.so.deletion import ServiceDeletionRequest -from onapsdk.so.instantiation import NetworkInstantiation, VnfInstantiation +from onapsdk.so.instantiation import NetworkInstantiation, VnfInstantiation, PnfInstantiation from onapsdk.utils.jinja import jinja_env from .instance import Instance @@ -417,6 +417,49 @@ class ServiceInstance(Instance): # pylint: disable=too-many-instance-attributes sdc_service=self.sdc_service ) + def add_pnf(self, # pylint: disable=too-many-arguments + pnf: "Pnf", + line_of_business: "LineOfBusiness", + platform: "Platform", + pnf_instance_name: str = None, + customer: "Customer" = None, + service_subscription: "ServiceSubscription" = None, + sdc_service: "SdcService" = None, + ) -> "PnfInstantiation": + """Add pnf into service instance. + + Instantiate PNF. + + Args: + pnf (Pnf): Pnf from service configuration to instantiate + line_of_business (LineOfBusiness): LineOfBusiness to use in instantiation request + platform (Platform): Platform to use in instantiation request + customer (Customer): Customer to use in instantiation request + service_subscription(ServiceSubscription): ServiceSubscription + pnf_instance_name (str): PNF instantiation name + sdc_service (SdcService): service model from sdc + + Raises: + StatusError: Service orchestration status is not "Active". + + Returns: + PnfInstantiation: PnfInstantiation request object + + """ + if not self.active: + raise StatusError('Service orchestration status must be "Active"') + + return PnfInstantiation.instantiate_macro( + self, + pnf, + line_of_business, + customer, + service_subscription, + platform, + pnf_instance_name, + sdc_service + ) + def add_network(self, # pylint: disable=too-many-arguments network: "Network", line_of_business: "LineOfBusiness", -- cgit 1.2.3-korg