Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
Archivo: quota.py Proyecto: kurlez/nova
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)
Ejemplo n.º 4
0
Archivo: quota.py Proyecto: xtoddx/nova
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)
Ejemplo n.º 5
0
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)
    ))
Ejemplo n.º 6
0
def _sync_instances(context, project_id, session):
    return dict(zip(('instances', 'cores', 'ram'),
                    db.instance_data_get_for_project(
                context, project_id, session=session)))
Ejemplo n.º 7
0
def _sync_instances(context, project_id, session):
    return dict(
        zip(('instances', 'cores', 'ram'),
            db.instance_data_get_for_project(context,
                                             project_id,
                                             session=session)))
Ejemplo n.º 8
0
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
Ejemplo n.º 9
0
Archivo: quota.py Proyecto: nimbis/nova
def _sync_instances(context, project_id, session):
    return dict(
        zip(("instances", "cores", "ram"), db.instance_data_get_for_project(context, project_id, session=session))
    )