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
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