aboutsummaryrefslogtreecommitdiffstats
path: root/src/onapsdk/so/deletion.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/onapsdk/so/deletion.py')
-rw-r--r--src/onapsdk/so/deletion.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/onapsdk/so/deletion.py b/src/onapsdk/so/deletion.py
index 35ff0ee..5b299f8 100644
--- a/src/onapsdk/so/deletion.py
+++ b/src/onapsdk/so/deletion.py
@@ -102,6 +102,37 @@ class VnfDeletionRequest(DeletionRequest): # pytest: disable=too-many-ancestors
headers=headers_so_creator(OnapService.headers))
return cls(request_id=response["requestReferences"]["requestId"])
+class PnfDeletionRequest(DeletionRequest): # pytest: disable=too-many-ancestors
+ """PNF deletion class."""
+
+ @classmethod
+ def send_request(cls,
+ instance: "PnfInstance",
+ a_la_carte: bool = True) -> "PnfDeletionRequest":
+ """Send request to SO to delete PNF instance.
+
+ Args:
+ instance (PnfInstance): PNF instance to delete
+ a_la_carte (boolean): deletion mode
+
+ Returns:
+ PnfDeletionRequest: Deletion request object
+
+ """
+ cls._logger.debug("PNF %s deletion request", instance.pnf_id)
+ response = cls.send_message_json("DELETE",
+ f"Create {instance.pnf_id} PNF deletion request",
+ (f"{cls.base_url}/onap/so/infra/"
+ f"serviceInstantiation/{cls.api_version}/"
+ "serviceInstances/"
+ f"{instance.service_instance.instance_id}/"
+ f"pnfs/{instance.pnf_id}"),
+ data=jinja_env().
+ get_template("deletion_pnf.json.j2").
+ render(pnf_instance=instance,
+ a_la_carte=a_la_carte),
+ headers=headers_so_creator(OnapService.headers))
+ return cls(request_id=response["requestReferences"]["requestId"])
class ServiceDeletionRequest(DeletionRequest): # pytest: disable=too-many-ancestors
"""Service deletion request class."""