From 2c63b984358cee239966846457acd4f1d8831b70 Mon Sep 17 00:00:00 2001 From: Michal Jagiello Date: Tue, 14 Mar 2023 14:13:21 +0000 Subject: Version 10.4.2 Archive SDC Vendor Issue-ID: INT-2193 Signed-off-by: Michal Jagiello Change-Id: I520ca35a973eb52f3d5625cc282c88bdd06effff --- src/onapsdk/constants.py | 1 + src/onapsdk/sdc/sdc_element.py | 2 ++ src/onapsdk/sdc/vendor.py | 16 ++++++++++++++++ src/onapsdk/sdc/vsp.py | 19 ------------------- src/onapsdk/version.py | 2 +- tests/test_vendor.py | 15 +++++++++++++-- tests/test_version.py | 2 +- 7 files changed, 34 insertions(+), 23 deletions(-) diff --git a/src/onapsdk/constants.py b/src/onapsdk/constants.py index 11bd03b..98d7af6 100644 --- a/src/onapsdk/constants.py +++ b/src/onapsdk/constants.py @@ -32,6 +32,7 @@ UNDER_CERTIFICATION = "Certification in progress" CHECKED_IN = "Checked In" SUBMITTED = "Submitted" DISTRIBUTED = "Distributed" +ARCHIVED = "ARCHIVED" ## # Actions ## diff --git a/src/onapsdk/sdc/sdc_element.py b/src/onapsdk/sdc/sdc_element.py index 9273861..8fd8da1 100644 --- a/src/onapsdk/sdc/sdc_element.py +++ b/src/onapsdk/sdc/sdc_element.py @@ -144,6 +144,8 @@ class SdcElement(SdcOnboardable, ABC): str: the URL to use """ + if action_type == const.ARCHIVE: + version_path = version_path.split("/")[0] return "{}/{}/{}/actions".format(base, subpath, version_path) @classmethod diff --git a/src/onapsdk/sdc/vendor.py b/src/onapsdk/sdc/vendor.py index a82e3b9..0618a4f 100644 --- a/src/onapsdk/sdc/vendor.py +++ b/src/onapsdk/sdc/vendor.py @@ -46,6 +46,17 @@ class Vendor(SdcElement): super().__init__() self.name: str = name or "Generic-Vendor" + @classmethod + def _get_all_url(cls) -> str: + """ + Get URL for all elements in SDC. + + Returns: + str: the url + + """ + return f"{cls._base_url()}/items?itemType=vlm" + def onboard(self) -> None: """Onboard the vendor in SDC.""" if not self.status: @@ -106,3 +117,8 @@ class Vendor(SdcElement): def _sdc_path(cls) -> None: """Give back the end of SDC path.""" return cls.VENDOR_PATH + + def archive(self) -> None: + """Archive Vendor.""" + self._action_to_sdc(const.ARCHIVE, action_type=const.ARCHIVE) + self._status = const.ARCHIVED diff --git a/src/onapsdk/sdc/vsp.py b/src/onapsdk/sdc/vsp.py index a04b3c0..3100647 100644 --- a/src/onapsdk/sdc/vsp.py +++ b/src/onapsdk/sdc/vsp.py @@ -340,25 +340,6 @@ class Vsp(SdcElement): # pylint: disable=too-many-instance-attributes """ return f"{cls._base_url()}/items?itemType=vsp" - def _action_url(self, base: str, subpath: str, version_path: str, - action_type: str = None) -> str: - """Generate action URL for VSP to send to SDC. - - Args: - base (str): base part of vsp action url - subpath (str): subpath of vsp action url - version_path (str): version path. If action is equal to ARCHIVE - it's going to be edited - action_type (str, optional): the type of action. - - Returns: - str: the URL to use - - """ - if action_type == const.ARCHIVE: - version_path = version_path.split("/")[0] - return super()._action_url(base, subpath, version_path, action_type) - @classmethod def import_from_sdc(cls, values: Dict[str, Any]) -> 'Vsp': """ diff --git a/src/onapsdk/version.py b/src/onapsdk/version.py index d47a213..07e058e 100644 --- a/src/onapsdk/version.py +++ b/src/onapsdk/version.py @@ -13,4 +13,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "10.4.1" +__version__ = "10.4.2" diff --git a/tests/test_vendor.py b/tests/test_vendor.py index 78c4bad..f791b8e 100644 --- a/tests/test_vendor.py +++ b/tests/test_vendor.py @@ -26,7 +26,7 @@ def test_get_all_no_vendors(mock_send): """Returns empty array if no vendors.""" mock_send.return_value = {} assert Vendor.get_all() == [] - mock_send.assert_called_once_with("GET", 'get Vendors', 'https://sdc.api.fe.simpledemo.onap.org:30207/sdc1/feProxy/onboarding-api/v1.0/vendor-license-models') + mock_send.assert_called_once_with("GET", 'get Vendors', 'https://sdc.api.fe.simpledemo.onap.org:30207/sdc1/feProxy/onboarding-api/v1.0/items?itemType=vlm') @mock.patch.object(Vendor, 'send_message_json') def test_get_all_some_vendors(mock_send): @@ -43,7 +43,7 @@ def test_get_all_some_vendors(mock_send): assert vendor_2.name == "two" assert vendor_2.identifier == "1235" assert vendor_2.created() - mock_send.assert_called_with("GET", 'get Vendors', 'https://sdc.api.fe.simpledemo.onap.org:30207/sdc1/feProxy/onboarding-api/v1.0/vendor-license-models') + mock_send.assert_called_with("GET", 'get Vendors', 'https://sdc.api.fe.simpledemo.onap.org:30207/sdc1/feProxy/onboarding-api/v1.0/items?itemType=vlm') @mock.patch.object(Vendor, 'exists') def test_init_no_name(mock_exists): @@ -314,3 +314,14 @@ def test_onboard_whole_vendor(mock_create, mock_submit): vendor.onboard() mock_submit.assert_called_once() mock_create.assert_called_once() + +@mock.patch.object(Vendor, 'load') +@mock.patch.object(Vendor, "send_message") +def test_vendor_archive(mock_send, mock_load): + vendor = Vendor() + vendor.identifier = "12345" + vendor.archive() + mock_send.assert_called_once_with("PUT", + "ARCHIVE Vendor", + "https://sdc.api.fe.simpledemo.onap.org:30207/sdc1/feProxy/onboarding-api/v1.0/items/12345/actions", + data='{\n\n "action": "ARCHIVE"\n}') diff --git a/tests/test_version.py b/tests/test_version.py index 6e63e9d..a81c404 100644 --- a/tests/test_version.py +++ b/tests/test_version.py @@ -17,4 +17,4 @@ import onapsdk.version as version def test_version(): """Check version is the right one.""" - assert version.__version__ == '10.4.1' + assert version.__version__ == '10.4.2' -- cgit 1.2.3-korg