Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
    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())