Ejemplo n.º 1
0
    def get(self, name, project=None, detailed=False):
        hash_key = utils.flavor_name_hash_key(name)
        flavors = self._client.hgetall(hash_key)

        if flavors is None or len(flavors) == 0:
            raise errors.FlavorDoesNotExist(name)

        return self._normalize(flavors, detailed)
Ejemplo n.º 2
0
    def get(self, name, project=None, detailed=False):
        res = self._col.find_one({'n': name, 'p': project},
                                 _field_spec(detailed))

        if not res:
            raise errors.FlavorDoesNotExist(name)

        return _normalize(res, detailed)
Ejemplo n.º 3
0
 def update(self, name, project=None, capabilities=None):
     hash_key = utils.flavor_name_hash_key(name)
     with self._client.pipeline() as pipe:
         pipe.hset(hash_key, "c", self._packer(capabilities))
         pipe.hset(hash_key, "p", project)
         try:
             pipe.execute()
         except redis.exceptions.ResponseError:
             raise errors.FlavorDoesNotExist(name)
Ejemplo n.º 4
0
    def get(self, name, project=None, detailed=False):
        stmt = sa.sql.select([tables.Flavors]).where(
            sa.and_(tables.Flavors.c.name == name,
                    tables.Flavors.c.project == project))

        flavor = self.driver.connection.execute(stmt).fetchone()
        if flavor is None:
            raise errors.FlavorDoesNotExist(name)

        return _normalize(flavor, detailed)
Ejemplo n.º 5
0
    def update(self, name, project=None, pool=None, capabilities=None):
        fields = {}

        if capabilities is not None:
            fields['c'] = capabilities

        if pool is not None:
            fields['s'] = pool

        assert fields, '`pool` or `capabilities` not found in kwargs'
        res = self._col.update({'n': name, 'p': project},
                               {'$set': fields},
                               upsert=False)

        if not res['updatedExisting']:
            raise errors.FlavorDoesNotExist(name)
Ejemplo n.º 6
0
    def update(self, name, project=None, pool_group=None, capabilities=None):
        fields = {}

        if capabilities is not None:
            fields['c'] = capabilities

        if pool_group is not None:
            fields['s'] = pool_group

        assert fields, '`pool_group` or `capabilities` not found in kwargs'
        res = self._col.update_one({'n': name, 'p': project},
                                   {'$set': fields},
                                   upsert=False)

        if res.matched_count == 0:
            raise errors.FlavorDoesNotExist(name)
Ejemplo n.º 7
0
    def update(self, name, project=None, capabilities=None):
        fields = {}

        if capabilities is not None:
            fields['c'] = capabilities

        # NOTE(gengchc2): If you do not use the removal group scheme to
        # configure flavor, pool_group can be None, pool_group can be remove.
        assert fields, '`capabilities` not found in kwargs'
        res = self._col.update_one({
            'n': name,
            'p': project
        }, {'$set': fields},
                                   upsert=False)

        if res.matched_count == 0:
            raise errors.FlavorDoesNotExist(name)
Ejemplo n.º 8
0
    def update(self, name, project=None, capabilities=None):
        fields = {}

        if capabilities is not None:
            fields['capabilities'] = capabilities

        assert fields, '`capabilities` not found in kwargs'
        if 'capabilities' in fields:
            fields['capabilities'] = utils.json_encode(fields['capabilities'])

        stmt = sa.sql.update(tables.Flavors).where(
            sa.and_(tables.Flavors.c.name == name,
                    tables.Flavors.c.project == project)).values(**fields)

        res = self.driver.run(stmt)
        if res.rowcount == 0:
            raise errors.FlavorDoesNotExist(name)