示例#1
0
    def resize_resource_order(self, env, body, start_response, order_id,
                              resource_id, resource_type):
        new_flavor = body['resize'].get('flavorRef', None)
        if not new_flavor:
            msg = "Must specify the new flavor"
            LOG.exception(msg)
            return False, self._reject_request_500(env, start_response)

        old_flavor = nova.server_get(resource_id).flavor['id']

        if new_flavor == old_flavor:
            return True, None

        region_id = cfg.CONF.billing.region_name

        new_flavor = '%s:%s' % (const.PRODUCT_INSTANCE_TYPE_PREFIX,
                                nova.flavor_get(region_id, new_flavor).name)
        old_flavor = '%s:%s' % (const.PRODUCT_INSTANCE_TYPE_PREFIX,
                                nova.flavor_get(region_id, old_flavor).name)
        service = const.SERVICE_COMPUTE

        try:
            self.gclient.resize_resource_order(order_id,
                                               resource_type=resource_type,
                                               new_flavor=new_flavor,
                                               old_flavor=old_flavor,
                                               service=service,
                                               region_id=region_id)
        except Exception as e:
            msg = "Unable to resize the order: %s" % order_id
            LOG.exception(msg)
            return False, self._reject_request_500(env, start_response)

        return True, None
示例#2
0
    def resize_resource_order(self, env, body, start_response, order_id,
                              resource_id, resource_type):
        new_flavor = body['resize'].get('flavorRef', None)
        if not new_flavor:
            msg = "Must specify the new flavor"
            LOG.exception(msg)
            return False, self._reject_request_500(env, start_response)

        old_flavor = nova.server_get(resource_id).flavor['id']

        if new_flavor == old_flavor:
            return True, None

        region_id = cfg.CONF.billing.region_name

        new_flavor = '%s:%s' % (const.PRODUCT_INSTANCE_TYPE_PREFIX,
                                nova.flavor_get(region_id, new_flavor).name)
        old_flavor = '%s:%s' % (const.PRODUCT_INSTANCE_TYPE_PREFIX,
                                nova.flavor_get(region_id, old_flavor).name)
        service = const.SERVICE_COMPUTE

        try:
            self.gclient.resize_resource_order(order_id,
                                               resource_type=resource_type,
                                               new_flavor=new_flavor,
                                               old_flavor=old_flavor,
                                               service=service,
                                               region_id=region_id)
        except Exception as e:
            msg = "Unable to resize the order: %s" % order_id
            LOG.exception(msg)
            return False, self._reject_request_500(env, start_response)

        return True, None
示例#3
0
def _get_flavor(flavor_id):
    cache = _get_cache()
    key = _make_flavor_key(flavor_id)
    flavor = cache.get(key)
    if not flavor:
        try:
            flavor = nova.flavor_get(cfg.CONF.billing.region_name,
                                     flavor_id).to_dict()
        except Exception:
            msg = 'Error to fetch flavor: %s' % flavor_id
            LOG.exception(msg)
            raise exception.GringottsException(message=msg)
        cache.set(key, flavor, 86400)
    return flavor
示例#4
0
def _get_flavor(flavor_id):
    cache = _get_cache()
    key = _make_flavor_key(flavor_id)
    flavor = cache.get(key)
    if not flavor:
        try:
            flavor = nova.flavor_get(cfg.CONF.billing.region_name,
                                     flavor_id).to_dict()
        except Exception:
            msg = 'Error to fetch flavor: %s' % flavor_id
            LOG.exception(msg)
            raise exception.GringottsException(message=msg)
        cache.set(key, flavor, 86400)
    return flavor