X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_lcm%2FROclient.py;h=dad89d5eae32cd11bcdda847f439942dfaeda258;hb=2e2155173c047ac2acb8a626019eda2d87f785ed;hp=fe12f8b3d7c3fb506fb49f5136933f6f62a8b4bf;hpb=22f4f9c3f2fef11377202b95fe2333b78255f8de;p=osm%2FLCM.git diff --git a/osm_lcm/ROclient.py b/osm_lcm/ROclient.py index fe12f8b..dad89d5 100644 --- a/osm_lcm/ROclient.py +++ b/osm_lcm/ROclient.py @@ -3,8 +3,6 @@ ## # Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U. -# This file is part of openmano -# All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain @@ -18,8 +16,6 @@ # License for the specific language governing permissions and limitations # under the License. # -# For those usages not covered by the Apache License, Version 2.0 please -# contact with: nfvlabs@tid.es ## """ @@ -103,8 +99,8 @@ class ROClient: 'ns': 'instances'} mandatory_for_create = { 'tenant': ("name", ), - 'vnfd': ("name", "id", "connection-point", "vdu"), - 'nsd': ("name", "id", "constituent-vnfd"), + 'vnfd': ("name", "id"), + 'nsd': ("name", "id"), 'ns': ("name", "scenario", "datacenter"), 'vim': ("name", "vim_url"), 'vim_account': (), @@ -206,7 +202,7 @@ class ROClient: try: UUID(uuid_text) return True - except (ValueError, TypeError): + except Exception: return False @staticmethod @@ -353,7 +349,7 @@ class ROClient: """ ns_info = {} for vnf in ns_descriptor["vnfs"]: - if not vnf.get("ip_address"): + if not vnf.get("ip_address") and vnf.get("vms"): raise ROClientException("ns member_vnf_index '{}' has no IP address".format( vnf["member_vnf_index"]), http_code=409) vnfr_info = { @@ -693,7 +689,14 @@ class ROClient: all_tenants = None with aiohttp.ClientSession(loop=self.loop) as session: - return await self._del_item(session, self.client_to_RO[item], item_id_name, all_tenants=all_tenants) + result = await self._del_item(session, self.client_to_RO[item], item_id_name, all_tenants=all_tenants) + # in case of ns delete, get the action_id embeded in text + if item == "ns" and result.get("result"): + _, _, action_id = result["result"].partition("action_id=") + action_id, _, _ = action_id.partition(" ") + if action_id: + result["action_id"] = action_id + return result except aiohttp.errors.ClientOSError as e: raise ROClientException(e, http_code=504) except asyncio.TimeoutError: