def increase_quota(cluster, role, cpu_str, ram_str, disk_str): """usage: increase_quota cluster role cpu ram[unit] disk[unit] Increases the amount of production quota allocated to a user. """ cpu = float(cpu_str) ram = parse_data(ram_str).as_(Data.MB) disk = parse_data(disk_str).as_(Data.MB) client = make_admin_client_with_options(cluster) resp = client.get_quota(role) quota = resp.result.getQuotaResult.quota resource_details = ResourceManager.resource_details_from_quota(quota) log.info('Current quota for %s:\n\t%s' % (role, '\n\t'.join( '%s\t%s%s' % (r.resource_type.display_name, r.value, r.resource_type.display_unit) for r in resource_details))) new_cpu = ResourceType.CPUS.value_type( cpu + ResourceManager.quantity_of(resource_details, ResourceType.CPUS)) new_ram = ResourceType.RAM_MB.value_type( ram + ResourceManager.quantity_of(resource_details, ResourceType.RAM_MB)) new_disk = ResourceType.DISK_MB.value_type( disk + ResourceManager.quantity_of(resource_details, ResourceType.DISK_MB)) log.info( 'Attempting to update quota for %s to\n\tCPU\t%s\n\tRAM\t%s MB\n\tDisk\t%s MB' % (role, new_cpu, new_ram, new_disk)) resp = client.set_quota(role, new_cpu, new_ram, new_disk) check_and_log_response(resp)
def increase_quota(cluster, role, cpu_str, ram_str, disk_str): """usage: increase_quota cluster role cpu ram[unit] disk[unit] Increases the amount of production quota allocated to a user. """ cpu = float(cpu_str) ram = parse_data(ram_str).as_(Data.MB) disk = parse_data(disk_str).as_(Data.MB) client = make_admin_client_with_options(cluster) resp = client.get_quota(role) quota = resp.result.getQuotaResult.quota resource_details = ResourceManager.resource_details_from_quota(quota) log.info('Current quota for %s:\n\t%s' % ( role, '\n\t'.join('%s\t%s%s' % ( r.resource_type.display_name, r.value, r.resource_type.display_unit) for r in resource_details))) new_cpu = ResourceType.CPUS.value_type( cpu + ResourceManager.quantity_of(resource_details, ResourceType.CPUS)) new_ram = ResourceType.RAM_MB.value_type( ram + ResourceManager.quantity_of(resource_details, ResourceType.RAM_MB)) new_disk = ResourceType.DISK_MB.value_type( disk + ResourceManager.quantity_of(resource_details, ResourceType.DISK_MB)) log.info('Attempting to update quota for %s to\n\tCPU\t%s\n\tRAM\t%s MB\n\tDisk\t%s MB' % (role, new_cpu, new_ram, new_disk)) resp = client.set_quota(role, new_cpu, new_ram, new_disk) check_and_log_response(resp)
def test_backfill_quota(self): quota = ResourceAggregate(numCpus=1.0, ramMb=2, diskMb=3) assert ResourceManager.resource_details_from_quota(quota) == [ ResourceDetails(ResourceType.CPUS, 1.0), ResourceDetails(ResourceType.RAM_MB, 2), ResourceDetails(ResourceType.DISK_MB, 3) ]
def test_backfill_task(self): task = TaskConfig(numCpus=1.0, ramMb=2, diskMb=3, requestedPorts=frozenset(['http'])) assert ResourceManager.resource_details_from_quota(task) == [ ResourceDetails(ResourceType.CPUS, 1.0), ResourceDetails(ResourceType.RAM_MB, 2), ResourceDetails(ResourceType.DISK_MB, 3), ResourceDetails(ResourceType.PORTS, 'http'), ]
def get_quota_str(quota): resource_details = ResourceManager.resource_details_from_quota(quota) return (' %s: %s%s' % ( r.resource_type.display_name, r.value, r.resource_type.display_unit) for r in resource_details)