def _get_chassis(self, identity): try: uu_identity = str(uuid.UUID(identity)) return self._chassis_by_uuid[uu_identity] except (ValueError, KeyError): try: uu_identity = self._chassis_by_name[identity]['UUID'] except KeyError: try: uu_identity = self._chassis_by_id[identity]['UUID'] except KeyError: msg = ('Error finding chassis by UUID/Name/Id ' '"%(identity)s"' % { 'identity': identity }) logger.debug(msg) raise error.FishyError(msg) raise error.AliasAccessError(uu_identity)
def _get(self, identity): try: result = self._systems[identity] except KeyError: try: uuid = self._by_name[identity] except KeyError: raise error.NotFound(f'Fake system {identity} was not found') else: raise error.AliasAccessError(uuid) # NOTE(dtantsur): since the state change can only be observed after # a _get() call, we can cheat a bit and update it on reading. return self._update_if_needed(result)
def _get_instance(self, identity): instance = self._cc.get_server(identity) if instance: if identity != instance.id: raise error.AliasAccessError(instance.id) return instance msg = ('Error finding instance by UUID "%(identity)s" at OS ' 'cloud %(os_cloud)s"' % {'identity': identity, 'os_cloud': self._os_cloud}) logger.debug(msg) raise error.FishyError(msg)
def _get_domain(self, identity, readonly=False): with libvirt_open(self._uri, readonly=readonly) as conn: try: uu_identity = uuid.UUID(identity) return conn.lookupByUUID(uu_identity.bytes) except (ValueError, libvirt.libvirtError): try: domain = conn.lookupByName(identity) except libvirt.libvirtError as ex: msg = ('Error finding domain by name/UUID "%(identity)s" ' 'at libvirt URI %(uri)s": %(err)s' % { 'identity': identity, 'uri': self._uri, 'err': ex }) self._logger.debug(msg) raise error.NotFound(msg) raise error.AliasAccessError(domain.UUIDString())