in src/hpcadvisor/batch_handler.py [0:0]
def _get_total_cores(vm_size):
log.debug(f"Get total cores for sku={vm_size}")
credentials = DefaultAzureCredential()
subscription_id = env["SUBSCRIPTION"]
region = env["REGION"]
compute_client = ComputeManagementClient(credentials, subscription_id)
results = compute_client.resource_skus.list(
filter="location eq '{}'".format(region)
)
resourceSkusList = [result.as_dict() for result in results]
filtered_sku = next(
sku for sku in resourceSkusList if sku["name"].lower() == vm_size.lower()
)
if filtered_sku:
vcpus_available = next(
capability["value"]
for capability in filtered_sku["capabilities"]
if capability["name"] == "vCPUsAvailable"
)
log.debug(f"vcpus_available={vcpus_available} for sku={vm_size}")
return int(vcpus_available)
else:
log.critical(f"Cannot find sku={vm_size} to obtain its total cores")
return None