|
|
@ -1,5 +1,5 @@
|
|
|
|
/*
|
|
|
|
/*
|
|
|
|
Copyright (c) 2019-2022 Digital Energy Cloud Solutions LLC. All Rights Reserved.
|
|
|
|
Copyright (c) 2019-2023 Digital Energy Cloud Solutions LLC. All Rights Reserved.
|
|
|
|
Authors:
|
|
|
|
Authors:
|
|
|
|
Petr Krutov, <petr.krutov@digitalenergy.online>
|
|
|
|
Petr Krutov, <petr.krutov@digitalenergy.online>
|
|
|
|
Stanislav Solovev, <spsolovev@digitalenergy.online>
|
|
|
|
Stanislav Solovev, <spsolovev@digitalenergy.online>
|
|
|
@ -49,7 +49,7 @@ func flattenMGMT(mgmt vins.RecordMGMT) []map[string]interface{} {
|
|
|
|
return res
|
|
|
|
return res
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func flattenResources(resources *vins.RecordResources) []map[string]interface{} {
|
|
|
|
func flattenResources(resources vins.RecordResources) []map[string]interface{} {
|
|
|
|
res := make([]map[string]interface{}, 0)
|
|
|
|
res := make([]map[string]interface{}, 0)
|
|
|
|
temp := map[string]interface{}{
|
|
|
|
temp := map[string]interface{}{
|
|
|
|
"cpu": resources.CPU,
|
|
|
|
"cpu": resources.CPU,
|
|
|
@ -65,7 +65,7 @@ func flattenConfig(config vins.RecordVNFConfig) []map[string]interface{} {
|
|
|
|
res := make([]map[string]interface{}, 0)
|
|
|
|
res := make([]map[string]interface{}, 0)
|
|
|
|
temp := map[string]interface{}{
|
|
|
|
temp := map[string]interface{}{
|
|
|
|
"mgmt": flattenMGMT(config.MGMT),
|
|
|
|
"mgmt": flattenMGMT(config.MGMT),
|
|
|
|
"resources": flattenResources(&config.Resources),
|
|
|
|
"resources": flattenResources(config.Resources),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
res = append(res, temp)
|
|
|
|
res = append(res, temp)
|
|
|
|
return res
|
|
|
|
return res
|
|
|
@ -84,8 +84,7 @@ func flattenQOS(qos vins.QOS) []map[string]interface{} {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func flattenInterfaces(interfaces []vins.ItemVNFInterface) []map[string]interface{} {
|
|
|
|
func flattenInterfaces(interfaces []vins.ItemVNFInterface) []map[string]interface{} {
|
|
|
|
res := make([]map[string]interface{}, 0)
|
|
|
|
res := make([]map[string]interface{}, 0, len(interfaces))
|
|
|
|
|
|
|
|
|
|
|
|
for _, vnfInterface := range interfaces {
|
|
|
|
for _, vnfInterface := range interfaces {
|
|
|
|
temp := map[string]interface{}{
|
|
|
|
temp := map[string]interface{}{
|
|
|
|
"conn_id": vnfInterface.ConnID,
|
|
|
|
"conn_id": vnfInterface.ConnID,
|
|
|
@ -141,7 +140,7 @@ func flattenVNFDev(vnfDev vins.RecordVNFDev) []map[string]interface{} {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func flattenComputes(computes vins.ListVINSComputes) []map[string]interface{} {
|
|
|
|
func flattenComputes(computes vins.ListVINSComputes) []map[string]interface{} {
|
|
|
|
res := make([]map[string]interface{}, 0)
|
|
|
|
res := make([]map[string]interface{}, 0, len(computes))
|
|
|
|
for _, compute := range computes {
|
|
|
|
for _, compute := range computes {
|
|
|
|
temp := map[string]interface{}{
|
|
|
|
temp := map[string]interface{}{
|
|
|
|
"compute_id": compute.ID,
|
|
|
|
"compute_id": compute.ID,
|
|
|
@ -154,7 +153,7 @@ func flattenComputes(computes vins.ListVINSComputes) []map[string]interface{} {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func flattenReservations(reservations vins.ListReservations) []map[string]interface{} {
|
|
|
|
func flattenReservations(reservations vins.ListReservations) []map[string]interface{} {
|
|
|
|
res := make([]map[string]interface{}, 0)
|
|
|
|
res := make([]map[string]interface{}, 0, len(reservations))
|
|
|
|
for _, reservation := range reservations {
|
|
|
|
for _, reservation := range reservations {
|
|
|
|
temp := map[string]interface{}{
|
|
|
|
temp := map[string]interface{}{
|
|
|
|
"client_type": reservation.ClientType,
|
|
|
|
"client_type": reservation.ClientType,
|
|
|
@ -275,9 +274,9 @@ func flattenGW(gw vins.RecordGW) []map[string]interface{} {
|
|
|
|
return res
|
|
|
|
return res
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func flattenRules(rules vins.ListNATRules) []map[string]interface{} {
|
|
|
|
func flattenRules(rules vins.ListNATRulesConfig) []map[string]interface{} {
|
|
|
|
res := make([]map[string]interface{}, 0)
|
|
|
|
res := make([]map[string]interface{}, 0, len(rules))
|
|
|
|
for _, rule := range rules.Data {
|
|
|
|
for _, rule := range rules {
|
|
|
|
tmp := map[string]interface{}{
|
|
|
|
tmp := map[string]interface{}{
|
|
|
|
"rule_id": rule.ID,
|
|
|
|
"rule_id": rule.ID,
|
|
|
|
"local_ip": rule.LocalIP,
|
|
|
|
"local_ip": rule.LocalIP,
|
|
|
@ -343,9 +342,9 @@ func flattenVNFS(vnfs vins.RecordVNFs) []map[string]interface{} {
|
|
|
|
return res
|
|
|
|
return res
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func flattenRuleBlock(rules vins.ListNATRules) []map[string]interface{} {
|
|
|
|
func flattenRuleBlock(rules vins.ListNATRulesConfig) []map[string]interface{} {
|
|
|
|
res := make([]map[string]interface{}, 0)
|
|
|
|
res := make([]map[string]interface{}, 0, len(rules))
|
|
|
|
for _, rule := range rules.Data {
|
|
|
|
for _, rule := range rules {
|
|
|
|
tmp := map[string]interface{}{
|
|
|
|
tmp := map[string]interface{}{
|
|
|
|
"int_ip": rule.LocalIP,
|
|
|
|
"int_ip": rule.LocalIP,
|
|
|
|
"int_port": rule.LocalPort,
|
|
|
|
"int_port": rule.LocalPort,
|
|
|
@ -359,15 +358,18 @@ func flattenRuleBlock(rules vins.ListNATRules) []map[string]interface{} {
|
|
|
|
return res
|
|
|
|
return res
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func flattenVins(d *schema.ResourceData, vins vins.RecordVINS) {
|
|
|
|
func flattenVins(d *schema.ResourceData, vins *vins.RecordVINS) {
|
|
|
|
d.Set("vins_id", vins.ID)
|
|
|
|
d.Set("vins_id", vins.ID)
|
|
|
|
d.Set("vnf_dev", flattenVNFDev(vins.VNFDev))
|
|
|
|
d.Set("vnf_dev", flattenVNFDev(vins.VNFDev))
|
|
|
|
d.Set("_ckey", vins.CKey)
|
|
|
|
|
|
|
|
d.Set("account_id", vins.AccountID)
|
|
|
|
d.Set("account_id", vins.AccountID)
|
|
|
|
d.Set("account_name", vins.AccountName)
|
|
|
|
d.Set("account_name", vins.AccountName)
|
|
|
|
d.Set("computes", flattenComputes(vins.Computes))
|
|
|
|
d.Set("computes", flattenComputes(vins.Computes))
|
|
|
|
|
|
|
|
d.Set("created_by", vins.CreatedBy)
|
|
|
|
|
|
|
|
d.Set("created_time", vins.CreatedTime)
|
|
|
|
d.Set("default_gw", vins.DefaultGW)
|
|
|
|
d.Set("default_gw", vins.DefaultGW)
|
|
|
|
d.Set("default_qos", flattenQOS(vins.DefaultQOS))
|
|
|
|
d.Set("default_qos", flattenQOS(vins.DefaultQOS))
|
|
|
|
|
|
|
|
d.Set("deleted_by", vins.DeletedBy)
|
|
|
|
|
|
|
|
d.Set("deleted_time", vins.DeletedTime)
|
|
|
|
d.Set("desc", vins.Description)
|
|
|
|
d.Set("desc", vins.Description)
|
|
|
|
d.Set("gid", vins.GID)
|
|
|
|
d.Set("gid", vins.GID)
|
|
|
|
d.Set("guid", vins.GUID)
|
|
|
|
d.Set("guid", vins.GUID)
|
|
|
@ -384,21 +386,26 @@ func flattenVins(d *schema.ResourceData, vins vins.RecordVINS) {
|
|
|
|
d.Set("rg_name", vins.RGName)
|
|
|
|
d.Set("rg_name", vins.RGName)
|
|
|
|
d.Set("sec_vnf_dev_id", vins.SecVNFDevID)
|
|
|
|
d.Set("sec_vnf_dev_id", vins.SecVNFDevID)
|
|
|
|
d.Set("status", vins.Status)
|
|
|
|
d.Set("status", vins.Status)
|
|
|
|
|
|
|
|
d.Set("updated_by", vins.UpdatedBy)
|
|
|
|
|
|
|
|
d.Set("updated_time", vins.UpdatedTime)
|
|
|
|
d.Set("user_managed", vins.UserManaged)
|
|
|
|
d.Set("user_managed", vins.UserManaged)
|
|
|
|
d.Set("vnfs", flattenVNFS(vins.VNFs))
|
|
|
|
d.Set("vnfs", flattenVNFS(vins.VNFs))
|
|
|
|
d.Set("vxlan_id", vins.VXLANID)
|
|
|
|
d.Set("vxlan_id", vins.VXLANID)
|
|
|
|
d.Set("nat_rule", flattenRuleBlock(vins.VNFs.NAT.Config.Rules))
|
|
|
|
d.Set("nat_rule", flattenRuleBlock(vins.VNFs.NAT.Config.Rules))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func flattenVinsData(d *schema.ResourceData, vins vins.RecordVINS) {
|
|
|
|
func flattenVinsData(d *schema.ResourceData, vins *vins.RecordVINS) {
|
|
|
|
d.Set("vins_id", vins.ID)
|
|
|
|
d.Set("vins_id", vins.ID)
|
|
|
|
d.Set("vnf_dev", flattenVNFDev(vins.VNFDev))
|
|
|
|
d.Set("vnf_dev", flattenVNFDev(vins.VNFDev))
|
|
|
|
d.Set("_ckey", vins.CKey)
|
|
|
|
|
|
|
|
d.Set("account_id", vins.AccountID)
|
|
|
|
d.Set("account_id", vins.AccountID)
|
|
|
|
d.Set("account_name", vins.AccountName)
|
|
|
|
d.Set("account_name", vins.AccountName)
|
|
|
|
d.Set("computes", flattenComputes(vins.Computes))
|
|
|
|
d.Set("computes", flattenComputes(vins.Computes))
|
|
|
|
|
|
|
|
d.Set("created_by", vins.CreatedBy)
|
|
|
|
|
|
|
|
d.Set("created_time", vins.CreatedTime)
|
|
|
|
d.Set("default_gw", vins.DefaultGW)
|
|
|
|
d.Set("default_gw", vins.DefaultGW)
|
|
|
|
d.Set("default_qos", flattenQOS(vins.DefaultQOS))
|
|
|
|
d.Set("default_qos", flattenQOS(vins.DefaultQOS))
|
|
|
|
|
|
|
|
d.Set("deleted_by", vins.DeletedBy)
|
|
|
|
|
|
|
|
d.Set("deleted_time", vins.DeletedTime)
|
|
|
|
d.Set("desc", vins.Description)
|
|
|
|
d.Set("desc", vins.Description)
|
|
|
|
d.Set("gid", vins.GID)
|
|
|
|
d.Set("gid", vins.GID)
|
|
|
|
d.Set("guid", vins.GUID)
|
|
|
|
d.Set("guid", vins.GUID)
|
|
|
@ -415,14 +422,16 @@ func flattenVinsData(d *schema.ResourceData, vins vins.RecordVINS) {
|
|
|
|
d.Set("rg_name", vins.RGName)
|
|
|
|
d.Set("rg_name", vins.RGName)
|
|
|
|
d.Set("sec_vnf_dev_id", vins.SecVNFDevID)
|
|
|
|
d.Set("sec_vnf_dev_id", vins.SecVNFDevID)
|
|
|
|
d.Set("status", vins.Status)
|
|
|
|
d.Set("status", vins.Status)
|
|
|
|
|
|
|
|
d.Set("updated_by", vins.UpdatedBy)
|
|
|
|
|
|
|
|
d.Set("updated_time", vins.UpdatedTime)
|
|
|
|
d.Set("user_managed", vins.UserManaged)
|
|
|
|
d.Set("user_managed", vins.UserManaged)
|
|
|
|
d.Set("vnfs", flattenVNFS(vins.VNFs))
|
|
|
|
d.Set("vnfs", flattenVNFS(vins.VNFs))
|
|
|
|
d.Set("vxlan_id", vins.VXLANID)
|
|
|
|
d.Set("vxlan_id", vins.VXLANID)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func flattenVinsAudits(auidts vins.ListAudits) []map[string]interface{} {
|
|
|
|
func flattenVinsAudits(audits vins.ListAudits) []map[string]interface{} {
|
|
|
|
res := make([]map[string]interface{}, 0)
|
|
|
|
res := make([]map[string]interface{}, 0, len(audits))
|
|
|
|
for _, audit := range auidts {
|
|
|
|
for _, audit := range audits {
|
|
|
|
temp := map[string]interface{}{
|
|
|
|
temp := map[string]interface{}{
|
|
|
|
"call": audit.Call,
|
|
|
|
"call": audit.Call,
|
|
|
|
"response_time": audit.ResponseTime,
|
|
|
|
"response_time": audit.ResponseTime,
|
|
|
@ -437,7 +446,7 @@ func flattenVinsAudits(auidts vins.ListAudits) []map[string]interface{} {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func flattenVinsExtNetList(extNetList *vins.ListExtNets) []map[string]interface{} {
|
|
|
|
func flattenVinsExtNetList(extNetList *vins.ListExtNets) []map[string]interface{} {
|
|
|
|
res := make([]map[string]interface{}, 0)
|
|
|
|
res := make([]map[string]interface{}, 0, len(extNetList.Data))
|
|
|
|
for _, extNet := range extNetList.Data {
|
|
|
|
for _, extNet := range extNetList.Data {
|
|
|
|
temp := map[string]interface{}{
|
|
|
|
temp := map[string]interface{}{
|
|
|
|
"default_gw": extNet.DefaultGW,
|
|
|
|
"default_gw": extNet.DefaultGW,
|
|
|
@ -454,7 +463,7 @@ func flattenVinsExtNetList(extNetList *vins.ListExtNets) []map[string]interface{
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func flattenVinsIpList(ips *vins.ListIPs) []map[string]interface{} {
|
|
|
|
func flattenVinsIpList(ips *vins.ListIPs) []map[string]interface{} {
|
|
|
|
res := make([]map[string]interface{}, 0)
|
|
|
|
res := make([]map[string]interface{}, 0, len(ips.Data))
|
|
|
|
for _, ip := range ips.Data {
|
|
|
|
for _, ip := range ips.Data {
|
|
|
|
temp := map[string]interface{}{
|
|
|
|
temp := map[string]interface{}{
|
|
|
|
"client_type": ip.ClientType,
|
|
|
|
"client_type": ip.ClientType,
|
|
|
@ -472,7 +481,7 @@ func flattenVinsIpList(ips *vins.ListIPs) []map[string]interface{} {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func flattenVinsList(vl *vins.ListVINS) []map[string]interface{} {
|
|
|
|
func flattenVinsList(vl *vins.ListVINS) []map[string]interface{} {
|
|
|
|
res := make([]map[string]interface{}, 0)
|
|
|
|
res := make([]map[string]interface{}, 0, len(vl.Data))
|
|
|
|
for _, v := range vl.Data {
|
|
|
|
for _, v := range vl.Data {
|
|
|
|
temp := map[string]interface{}{
|
|
|
|
temp := map[string]interface{}{
|
|
|
|
"account_id": v.AccountID,
|
|
|
|
"account_id": v.AccountID,
|
|
|
@ -498,7 +507,7 @@ func flattenVinsList(vl *vins.ListVINS) []map[string]interface{} {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func flattenVinsNatRuleList(natRules *vins.ListNATRules) []map[string]interface{} {
|
|
|
|
func flattenVinsNatRuleList(natRules *vins.ListNATRules) []map[string]interface{} {
|
|
|
|
res := make([]map[string]interface{}, 0)
|
|
|
|
res := make([]map[string]interface{}, 0, len(natRules.Data))
|
|
|
|
for _, natRule := range natRules.Data {
|
|
|
|
for _, natRule := range natRules.Data {
|
|
|
|
temp := map[string]interface{}{
|
|
|
|
temp := map[string]interface{}{
|
|
|
|
"id": natRule.ID,
|
|
|
|
"id": natRule.ID,
|
|
|
|