You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.9 KiB
64 lines
1.9 KiB
package stpolicy
|
|
|
|
import (
|
|
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
|
|
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/cloudapi/stpolicy"
|
|
)
|
|
|
|
func flattenStoragePolicyData(d *schema.ResourceData, storagePolicy *stpolicy.InfoStoragePolicy) {
|
|
d.Set("storage_policy_id", storagePolicy.ID)
|
|
d.Set("description", storagePolicy.Description)
|
|
d.Set("guid", storagePolicy.GUID)
|
|
d.Set("limit_iops", storagePolicy.LimitIOPS)
|
|
d.Set("name", storagePolicy.Name)
|
|
d.Set("status", storagePolicy.Status)
|
|
d.Set("access_seps_pools", flattenAccessSEPPools(storagePolicy.AccessSEPPools))
|
|
d.Set("usage", flattenUsage(storagePolicy.Usage))
|
|
}
|
|
|
|
func flattenAccessSEPPools(accessSEPPools stpolicy.ListAccessSEPPools) []map[string]interface{} {
|
|
res := make([]map[string]interface{}, 0, len(accessSEPPools))
|
|
for _, asp := range accessSEPPools {
|
|
temp := map[string]interface{}{
|
|
"sep_id": asp.SEPID,
|
|
//TODO
|
|
//"name": asp.Name,
|
|
"pool_names": asp.PoolNames,
|
|
}
|
|
|
|
res = append(res, temp)
|
|
}
|
|
|
|
return res
|
|
}
|
|
|
|
func flattenUsage(usage stpolicy.Usage) []map[string]interface{} {
|
|
res := make([]map[string]interface{}, 0)
|
|
|
|
temp := map[string]interface{}{
|
|
"accounts": usage.Accounts,
|
|
"resgroups": usage.Resgroups,
|
|
}
|
|
|
|
res = append(res, temp)
|
|
return res
|
|
}
|
|
|
|
func flattenStoragePolicyList(storagePolicyList *stpolicy.ListStoragePolicies) []map[string]interface{} {
|
|
res := make([]map[string]interface{}, 0, len(storagePolicyList.Data))
|
|
for _, v := range storagePolicyList.Data {
|
|
temp := map[string]interface{}{
|
|
"storage_policy_id": v.ID,
|
|
"description": v.Description,
|
|
"guid": v.GUID,
|
|
"limit_iops": v.LimitIOPS,
|
|
"name": v.Name,
|
|
"status": v.Status,
|
|
"access_seps_pools": flattenAccessSEPPools(v.AccessSEPPools),
|
|
"usage": flattenUsage(v.Usage),
|
|
}
|
|
res = append(res, temp)
|
|
}
|
|
return res
|
|
}
|