def get_vim_resource_id(self, vim_obj, resource_type, resource_name): """Locates openstack resource by type/name and returns ID :param vim_obj: VIM info used to access openstack instance :param resource_type: type of resource to find :param resource_name: name of resource to locate :return: ID of resource """ if resource_type in _VALID_RESOURCE_TYPES.keys(): res_cmd_map = _VALID_RESOURCE_TYPES[resource_type] client_type = res_cmd_map['client'] cmd = res_cmd_map['cmd'] filter_attr = res_cmd_map.get('filter_attr') vim_res_name = res_cmd_map['vim_res_name'] else: raise nfvo.VimUnsupportedResourceTypeException(type=resource_type) client = self._get_client(vim_obj, client_type) cmd_args = {} if filter_attr: cmd_args[filter_attr] = resource_name try: resources = getattr(client, "%s" % cmd)(**cmd_args)[vim_res_name] LOG.debug('resources output %s', resources) except Exception: raise nfvo.VimGetResourceException(cmd=cmd, name=resource_name, type=resource_type) if len(resources) > 1: raise nfvo.VimGetResourceNameNotUnique(cmd=cmd, name=resource_name) elif len(resources) < 1: raise nfvo.VimGetResourceNotFoundException(cmd=cmd, name=resource_name) return resources[0]['id']
def get_vim_resource_id(self, vim_obj, resource_type, resource_name): """Locates openstack resource by type/name and returns ID :param vim_obj: VIM info used to access openstack instance :param resource_type: type of resource to find :param resource_name: name of resource to locate :return: ID of resource """ if resource_type in _VALID_RESOURCE_TYPES.keys(): client_type = _VALID_RESOURCE_TYPES[resource_type]['client'] cmd_prefix = _VALID_RESOURCE_TYPES[resource_type]['cmd'] else: raise nfvo.VimUnsupportedResourceTypeException(type=resource_type) client = self._get_client(vim_obj, client_type) cmd = str(cmd_prefix) + str(resource_name) try: resources = getattr(client, "%s" % cmd)() LOG.debug(_('resources output %s'), resources) for resource in resources[resource_type]: if resource['name'] == resource_name: return resource['id'] except Exception: raise nfvo.VimGetResourceException(cmd=cmd, type=resource_type)