in src/terraform/providers/terraform-provider-avere/averevfxt.go [2048:2091]
func (a *AvereVfxt) GetCoreFilerSpacePercentage() (map[string]float32, error) {
jsonData, err := a.AvereCommand(a.getAnalyticsCoreFilerSpaceCommand())
if err != nil {
return nil, err
}
var outputParts [][]interface{}
if err := json.Unmarshal([]byte(jsonData), &outputParts); err != nil {
return nil, err
}
if len(outputParts) <= 1 && len(outputParts[1]) < 1 {
return nil, fmt.Errorf("json did not parse correctly and is less than two parts: '%v'", jsonData)
}
analytics := (outputParts[1][0]).(map[string]interface{})
rawFreeSpace, ok := analytics[AnalyticsClusterFilersRaw]
if !ok {
return nil, fmt.Errorf("key %s not found in analytics", AnalyticsClusterFilersRaw)
}
rawJson, err := json.Marshal(rawFreeSpace)
if err != nil {
return nil, err
}
var freeSpaceMap map[string]ClusterFilersRaw
if err := json.Unmarshal(rawJson, &freeSpaceMap); err != nil {
return nil, err
}
var totalSpace float32
for _, v := range freeSpaceMap {
totalSpace += float32(v.AvailableForReads)
}
result := make(map[string]float32)
for k, v := range freeSpaceMap {
result[k] = float32(v.AvailableForReads) / totalSpace
}
return result, nil
}