4.0.0
This commit is contained in:
157
internal/service/cloudbroker/image/flattens.go
Normal file
157
internal/service/cloudbroker/image/flattens.go
Normal file
@@ -0,0 +1,157 @@
|
||||
package image
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
|
||||
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/cloudbroker/image"
|
||||
"repository.basistech.ru/BASIS/terraform-provider-decort/internal/flattens"
|
||||
)
|
||||
|
||||
func flattenImage(d *schema.ResourceData, img *image.RecordImage) {
|
||||
d.Set("name", img.Name)
|
||||
d.Set("drivers", img.Drivers)
|
||||
d.Set("url", img.URL)
|
||||
d.Set("gid", img.GID)
|
||||
d.Set("image_id", img.ID)
|
||||
d.Set("boot_type", img.BootType)
|
||||
d.Set("image_type", img.Type)
|
||||
d.Set("bootable", img.Bootable)
|
||||
d.Set("sep_id", img.SEPID)
|
||||
d.Set("unc_path", img.UNCPath)
|
||||
d.Set("link_to", img.LinkTo)
|
||||
d.Set("status", img.Status)
|
||||
d.Set("tech_status", img.TechStatus)
|
||||
d.Set("version", img.Version)
|
||||
d.Set("size", img.Size)
|
||||
d.Set("enabled", img.Enabled)
|
||||
d.Set("computeci_id", img.ComputeCIID)
|
||||
d.Set("pool_name", img.Pool)
|
||||
d.Set("username", img.Username)
|
||||
// d.Set("username_dl", img.UsernameDL)
|
||||
d.Set("password", img.Password)
|
||||
// d.Set("password_dl", img.PasswordDL)
|
||||
d.Set("account_id", img.AccountID)
|
||||
d.Set("guid", img.GUID)
|
||||
d.Set("milestones", img.Milestones)
|
||||
d.Set("provider_name", img.ProviderName)
|
||||
d.Set("purge_attempts", img.PurgeAttempts)
|
||||
d.Set("reference_id", img.ReferenceID)
|
||||
d.Set("res_id", img.ResID)
|
||||
d.Set("res_name", img.ResName)
|
||||
d.Set("rescuecd", img.RescueCD)
|
||||
d.Set("architecture", img.Architecture)
|
||||
d.Set("hot_resize", img.HotResize)
|
||||
d.Set("history", flattenHistory(img.History))
|
||||
d.Set("last_modified", img.LastModified)
|
||||
d.Set("meta", flattens.FlattenMeta(img.Meta))
|
||||
d.Set("desc", img.Description)
|
||||
d.Set("shared_with", img.SharedWith)
|
||||
}
|
||||
|
||||
func flattenMeta(m []interface{}) []string {
|
||||
output := []string{}
|
||||
for _, item := range m {
|
||||
switch d := item.(type) {
|
||||
case string:
|
||||
output = append(output, d)
|
||||
case int:
|
||||
output = append(output, strconv.Itoa(d))
|
||||
case int64:
|
||||
output = append(output, strconv.FormatInt(d, 10))
|
||||
case float64:
|
||||
output = append(output, strconv.FormatInt(int64(d), 10))
|
||||
default:
|
||||
output = append(output, "")
|
||||
}
|
||||
}
|
||||
return output
|
||||
}
|
||||
|
||||
func flattenHistory(history []image.History) []map[string]interface{} {
|
||||
temp := make([]map[string]interface{}, 0)
|
||||
for _, item := range history {
|
||||
t := map[string]interface{}{
|
||||
"id": item.ID,
|
||||
"guid": item.GUID,
|
||||
"timestamp": item.Timestamp,
|
||||
}
|
||||
|
||||
temp = append(temp, t)
|
||||
}
|
||||
return temp
|
||||
}
|
||||
|
||||
func flattenImageList(il image.ListImages) []map[string]interface{} {
|
||||
res := make([]map[string]interface{}, 0)
|
||||
for _, item := range il {
|
||||
temp := map[string]interface{}{
|
||||
"name": item.Name,
|
||||
"url": item.URL,
|
||||
"gid": item.GID,
|
||||
"guid": item.GUID,
|
||||
"drivers": item.Drivers,
|
||||
"image_id": item.ID,
|
||||
"boot_type": item.BootType,
|
||||
"bootable": item.Bootable,
|
||||
"image_type": item.Type,
|
||||
"status": item.Status,
|
||||
"tech_status": item.TechStatus,
|
||||
"version": item.Version,
|
||||
"username": item.Username,
|
||||
// "username_dl": item.UsernameDL,
|
||||
"password": item.Password,
|
||||
// "password_dl": item.PasswordDL,
|
||||
"purge_attempts": item.PurgeAttempts,
|
||||
"architecture": item.Architecture,
|
||||
"account_id": item.AccountID,
|
||||
"computeci_id": item.ComputeCIID,
|
||||
"enabled": item.Enabled,
|
||||
"reference_id": item.ReferenceID,
|
||||
"res_id": item.ResID,
|
||||
"res_name": item.ResName,
|
||||
"rescuecd": item.RescueCD,
|
||||
"provider_name": item.ProviderName,
|
||||
"milestones": item.Milestones,
|
||||
"size": item.Size,
|
||||
"sep_id": item.SEPID,
|
||||
"link_to": item.LinkTo,
|
||||
"unc_path": item.UNCPath,
|
||||
"pool_name": item.Pool,
|
||||
"hot_resize": item.HotResize,
|
||||
"history": flattenHistory(item.History),
|
||||
"last_modified": item.LastModified,
|
||||
"meta": flattenMeta(item.Meta),
|
||||
"desc": item.Description,
|
||||
"shared_with": item.SharedWith,
|
||||
}
|
||||
res = append(res, temp)
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func flattenImageListStacks(_ *schema.ResourceData, stack image.ListStacks) []map[string]interface{} {
|
||||
temp := make([]map[string]interface{}, 0)
|
||||
for _, item := range stack {
|
||||
t := map[string]interface{}{
|
||||
"api_url": item.APIURL,
|
||||
"api_key": item.APIKey,
|
||||
"app_id": item.AppID,
|
||||
"desc": item.Description,
|
||||
"drivers": item.Drivers,
|
||||
"error": item.Error,
|
||||
"guid": item.GUID,
|
||||
"id": item.ID,
|
||||
"images": item.Images,
|
||||
"login": item.Login,
|
||||
"name": item.Name,
|
||||
"passwd": item.Password,
|
||||
"reference_id": item.ReferenceID,
|
||||
"status": item.Status,
|
||||
"type": item.Type,
|
||||
}
|
||||
|
||||
temp = append(temp, t)
|
||||
}
|
||||
return temp
|
||||
}
|
||||
Reference in New Issue
Block a user