From 956bef308145fa3fb2263bd66a94c562a6f466b8 Mon Sep 17 00:00:00 2001 From: "ankitg@aarnanetworks.com" Date: Mon, 16 Jan 2023 08:22:04 +0000 Subject: Archive and delete SDC Resources Issue-ID: INT-2193 Signed-off-by: Michal Jagiello Change-Id: Ic63628440059bacac03689d61859c6a72f7780df --- src/onapsdk/sdc/sdc_element.py | 22 ++++++++++++++++++++++ src/onapsdk/sdc/sdc_resource.py | 16 ++++++++++++++++ 2 files changed, 38 insertions(+) (limited to 'src/onapsdk') diff --git a/src/onapsdk/sdc/sdc_element.py b/src/onapsdk/sdc/sdc_element.py index df513b7..b2d27bd 100644 --- a/src/onapsdk/sdc/sdc_element.py +++ b/src/onapsdk/sdc/sdc_element.py @@ -175,6 +175,16 @@ class SdcElement(SdcOnboardable, ABC): """ return "{}/{}".format(cls._base_url(), cls._sdc_path()) + @property + def delete_url(self) -> str: + """Get an url to delete element. + + Returns: + str: Url which can be used to delete SDC element + + """ + return f"{self._get_all_url}/{self.identifier}" + def _copy_object(self, obj: 'SdcElement') -> None: """ Copy relevant properties from object. @@ -225,3 +235,15 @@ class SdcElement(SdcOnboardable, ABC): """ raise NotImplementedError("SdcElement is an abstract class") + + def delete(self) -> None: + """Delete SDC element. + + Send a request to SDC to delete that element. + + """ + self.send_message( + "DELETE", + "Delete SDC element", + self.delete_url + ) diff --git a/src/onapsdk/sdc/sdc_resource.py b/src/onapsdk/sdc/sdc_resource.py index 7e7dbb9..29615db 100644 --- a/src/onapsdk/sdc/sdc_resource.py +++ b/src/onapsdk/sdc/sdc_resource.py @@ -958,3 +958,19 @@ class SdcResource(SdcOnboardable, ABC): # pylint: disable=too-many-instance-att return None msg = f"Can't add resource to {self.origin_type} which is not in DRAFT status" raise StatusError(msg) + + def archive(self) -> None: + """Archive resource.""" + self.send_message( + "POST", + f"Archive {self.name} component", + f"{self.resource_inputs_url}/archive" + ) + + def delete(self) -> None: + """Delete resource.""" + self.send_message( + "DELETE", + f"Delete {self.name} component", + f"{self.resource_inputs_url}" + ) -- cgit 1.2.3-korg