in src/hpc/autoscale/cost/azurecost.py [0:0]
def get_retail_rate(self, armskuname: str, armregionname: str, spot: bool) -> Optional[dict]:
params = {}
filters = f"armRegionName eq '{armregionname}' and armSkuName eq '{armskuname}' and serviceName eq 'Virtual Machines'"
params['$filter'] = filters
res = self.retail_session.get(self.retail_url, params=params)
if res.status_code != 200:
log.error(f"{res.json()}")
raise res.raise_for_status()
data = res.json()
for e in data['Items']:
if e['type'] != 'Consumption':
continue
if e['productName'].__contains__("Windows"):
continue
if e['meterName'].__contains__("Low Priority"):
continue
if e['meterName'].__contains__("Spot"):
if spot:
return e
continue
return e