def get_metric_data_capacity()

in azure-metrics-calc-storage-size/metrics-data.py [0:0]


def get_metric_data_capacity(resource_group_name, storage_account_name, subscription_id, type):
    
    client = MonitorManagementClient(credentials, subscription_id)

    today = datetime.datetime.utcnow().date()
    yesterday = today - datetime.timedelta(days=1)

    resource_id = (
            "subscriptions/{}/"
            "resourceGroups/{}/"
            "providers/Microsoft.Storage/storageAccounts/{}/{}")
    
    metrics_data = None
        
    if (type == Metric_type.blob_capacity):
        
        resource_id = resource_id.format(subscription_id, 
            resource_group_name, storage_account_name, 'blobServices/default')
        
        metrics_data = client.metrics.list(
            resource_id,
            timespan="{}/{}".format(yesterday, today),
            interval='PT1H',
            metric='Blob capacity',
            aggregation='Average')

    if (type == Metric_type.fileshare_capacity):    
            
        resource_id = resource_id.format(subscription_id, 
        resource_group_name, storage_account_name, 'fileServices/default')
        
        metrics_data = client.metrics.list(
            resource_id,
            timespan="{}/{}".format(yesterday, today),
            interval='PT1H',
            metric='File capacity',
            aggregation='Average')
    
    if(metrics_data.value is None):
        
        return METRICS_NOT_AVAILABLE
    
    for item in metrics_data.value:
        
        for item in item.timeseries:
            if(len(item.data) > 0):
                data = item.data[-1]
                if(data.average is not None):
                    return data.average
                else:
                    return METRICS_NOT_AVAILABLE

    return METRICS_NOT_AVAILABLE