def get_retail_rate()

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