def allowed_instances(context, num_instances, instance_type): """Check quota and return min(num_instances, allowed_instances).""" project_id = context.project_id context = context.elevated() used_instances, used_cores = db.instance_data_get_for_project( context, project_id) quota = get_quota(context, project_id) allowed_instances = quota['instances'] - used_instances allowed_cores = quota['cores'] - used_cores num_cores = num_instances * instance_type['vcpus'] allowed_instances = min(allowed_instances, int(allowed_cores // instance_type['vcpus'])) return min(num_instances, allowed_instances)
def allowed_instances(context, num_instances, instance_type): """Check quota and return min(num_instances, allowed_instances).""" project_id = context.project_id context = context.elevated() used_instances, used_cores = db.instance_data_get_for_project(context, project_id) quota = get_quota(context, project_id) allowed_instances = quota['instances'] - used_instances allowed_cores = quota['cores'] - used_cores num_cores = num_instances * instance_type['vcpus'] allowed_instances = min(allowed_instances, int(allowed_cores // instance_type['vcpus'])) return min(num_instances, allowed_instances)
def allowed_instances(context, requested_instances, instance_type): """Check quota and return min(requested_instances, allowed_instances).""" project_id = context.project_id context = context.elevated() requested_cores = requested_instances * instance_type["vcpus"] requested_ram = requested_instances * instance_type["memory_mb"] usage = db.instance_data_get_for_project(context, project_id) used_instances, used_cores, used_ram = usage quota = get_project_quotas(context, project_id) allowed_instances = _get_request_allotment(requested_instances, used_instances, quota["instances"]) allowed_cores = _get_request_allotment(requested_cores, used_cores, quota["cores"]) allowed_ram = _get_request_allotment(requested_ram, used_ram, quota["ram"]) if instance_type["vcpus"]: allowed_instances = min(allowed_instances, allowed_cores // instance_type["vcpus"]) if instance_type["memory_mb"]: allowed_instances = min(allowed_instances, allowed_ram // instance_type["memory_mb"]) return min(requested_instances, allowed_instances)
def allowed_instances(context, requested_instances, instance_type): """Check quota and return min(requested_instances, allowed_instances).""" project_id = context.project_id context = context.elevated() requested_cores = requested_instances * instance_type['vcpus'] requested_ram = requested_instances * instance_type['memory_mb'] usage = db.instance_data_get_for_project(context, project_id) used_instances, used_cores, used_ram = usage quota = get_project_quotas(context, project_id) allowed_instances = _get_request_allotment(requested_instances, used_instances, quota['instances']) allowed_cores = _get_request_allotment(requested_cores, used_cores, quota['cores']) allowed_ram = _get_request_allotment(requested_ram, used_ram, quota['ram']) allowed_instances = min(allowed_instances, allowed_cores // instance_type['vcpus'], allowed_ram // instance_type['memory_mb']) return min(requested_instances, allowed_instances)
def get_actual_usage(cntxt, tenant): instance_info = db.instance_data_get_for_project(cxt, tenant) # calculate actual usage actual_instance_count = instance_info[0] actual_core_count = instance_info[1] actual_ram_count = instance_info[2] # actual_fixed_ips should be the same as actual_instance_count since there is no # reason in our environment for someone to use two fixed IPs per instance # db.fixed_ip_count_by_project(cxt,tenant) actual_fixed_ips = actual_instance_count actual_secgroup_count = db.security_group_count_by_project(cxt, tenant) return OrderedDict(( ("actual_instance_count", actual_instance_count), ("actual_core_count", actual_core_count), ("actual_ram_count", actual_ram_count), ("actual_fixed_ips", actual_fixed_ips), ("actual_secgroup_count", actual_secgroup_count) ))
def _sync_instances(context, project_id, session): return dict(zip(('instances', 'cores', 'ram'), db.instance_data_get_for_project( context, project_id, session=session)))
def _sync_instances(context, project_id, session): return dict( zip(('instances', 'cores', 'ram'), db.instance_data_get_for_project(context, project_id, session=session)))
def _sync_instances(context, project_id, session): ret = dict(zip(('instances', 'cores', 'ram', 'local_gb'), db.instance_data_get_for_project( context, project_id, session=session))) ret["ecus"] = _sync_ecus(context, project_id, session) return ret
def _sync_instances(context, project_id, session): return dict( zip(("instances", "cores", "ram"), db.instance_data_get_for_project(context, project_id, session=session)) )