This is an automated email from the ASF dual-hosted git repository.
abh1sar pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack-go.git
The following commit(s) were added to refs/heads/main by this push:
new 0b7f205 Fix datadisksdetails (#141)
0b7f205 is described below
commit 0b7f2054a5ca840114b75f1d32a708fe61b793c4
Author: Wei Zhou <[email protected]>
AuthorDate: Wed Aug 5 18:08:41 2026 +0200
Fix datadisksdetails (#141)
* Fix datadisksdetails
* Fix deployVnfAppliance and createVMFromBackup
---
cloudstack/BackupService.go | 116 ++++++++++++++++++++-------
cloudstack/VirtualMachineService.go | 29 +++++--
cloudstack/VirtualNetworkFunctionsService.go | 116 ++++++++++++++++++++-------
generate/generate.go | 15 ++++
4 files changed, 213 insertions(+), 63 deletions(-)
diff --git a/cloudstack/BackupService.go b/cloudstack/BackupService.go
index 92033d8..882bbb0 100644
--- a/cloudstack/BackupService.go
+++ b/cloudstack/BackupService.go
@@ -747,10 +747,11 @@ func (p *CreateVMFromBackupParams) toURLValues()
url.Values {
}
}
if v, found := p.p["datadisksdetails"]; found {
- m := v.(map[string]string)
- for i, k := range getSortedKeysFromMap(m) {
- u.Set(fmt.Sprintf("datadisksdetails[%d].key", i), k)
- u.Set(fmt.Sprintf("datadisksdetails[%d].value", i),
m[k])
+ l := v.([]map[string]string)
+ for i, m := range l {
+ for key, val := range m {
+ u.Set(fmt.Sprintf("datadisksdetails[%d].%s", i,
key), val)
+ }
}
}
if v, found := p.p["deploymentplanner"]; found {
@@ -763,10 +764,11 @@ func (p *CreateVMFromBackupParams) toURLValues()
url.Values {
}
}
if v, found := p.p["dhcpoptionsnetworklist"]; found {
- m := v.(map[string]string)
- for i, k := range getSortedKeysFromMap(m) {
- u.Set(fmt.Sprintf("dhcpoptionsnetworklist[%d].key", i),
k)
- u.Set(fmt.Sprintf("dhcpoptionsnetworklist[%d].value",
i), m[k])
+ l := v.([]map[string]string)
+ for i, m := range l {
+ for key, val := range m {
+
u.Set(fmt.Sprintf("dhcpoptionsnetworklist[%d].%s", i, key), val)
+ }
}
}
if v, found := p.p["diskofferingid"]; found {
@@ -819,10 +821,11 @@ func (p *CreateVMFromBackupParams) toURLValues()
url.Values {
u.Set("ipaddress", v.(string))
}
if v, found := p.p["iptonetworklist"]; found {
- m := v.(map[string]string)
- for i, k := range getSortedKeysFromMap(m) {
- u.Set(fmt.Sprintf("iptonetworklist[%d].key", i), k)
- u.Set(fmt.Sprintf("iptonetworklist[%d].value", i), m[k])
+ l := v.([]map[string]string)
+ for i, m := range l {
+ for key, val := range m {
+ u.Set(fmt.Sprintf("iptonetworklist[%d].%s", i,
key), val)
+ }
}
}
if v, found := p.p["keyboard"]; found {
@@ -857,10 +860,11 @@ func (p *CreateVMFromBackupParams) toURLValues()
url.Values {
u.Set("nicmultiqueuenumber", vv)
}
if v, found := p.p["nicnetworklist"]; found {
- m := v.(map[string]string)
- for i, k := range getSortedKeysFromMap(m) {
- u.Set(fmt.Sprintf("nicnetworklist[%d].nic", i), k)
- u.Set(fmt.Sprintf("nicnetworklist[%d].network", i),
m[k])
+ l := v.([]map[string]string)
+ for i, m := range l {
+ for key, val := range m {
+ u.Set(fmt.Sprintf("nicnetworklist[%d].%s", i,
key), val)
+ }
}
}
if v, found := p.p["nicpackedvirtqueuesenabled"]; found {
@@ -1165,7 +1169,7 @@ func (p *CreateVMFromBackupParams)
GetDatadiskofferinglist() (map[string]string,
return value, ok
}
-func (p *CreateVMFromBackupParams) SetDatadisksdetails(v map[string]string) {
+func (p *CreateVMFromBackupParams) SetDatadisksdetails(v []map[string]string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
@@ -1178,14 +1182,28 @@ func (p *CreateVMFromBackupParams)
ResetDatadisksdetails() {
}
}
-func (p *CreateVMFromBackupParams) GetDatadisksdetails() (map[string]string,
bool) {
+func (p *CreateVMFromBackupParams) GetDatadisksdetails() ([]map[string]string,
bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
- value, ok := p.p["datadisksdetails"].(map[string]string)
+ value, ok := p.p["datadisksdetails"].([]map[string]string)
return value, ok
}
+func (p *CreateVMFromBackupParams) AddDatadisksdetails(item map[string]string)
{
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ val, found := p.p["datadisksdetails"]
+ if !found {
+ p.p["datadisksdetails"] = []map[string]string{}
+ val = p.p["datadisksdetails"]
+ }
+ l := val.([]map[string]string)
+ l = append(l, item)
+ p.p["datadisksdetails"] = l
+}
+
func (p *CreateVMFromBackupParams) SetDeploymentplanner(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -1228,7 +1246,7 @@ func (p *CreateVMFromBackupParams) GetDetails()
(map[string]string, bool) {
return value, ok
}
-func (p *CreateVMFromBackupParams) SetDhcpoptionsnetworklist(v
map[string]string) {
+func (p *CreateVMFromBackupParams) SetDhcpoptionsnetworklist(v
[]map[string]string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
@@ -1241,14 +1259,28 @@ func (p *CreateVMFromBackupParams)
ResetDhcpoptionsnetworklist() {
}
}
-func (p *CreateVMFromBackupParams) GetDhcpoptionsnetworklist()
(map[string]string, bool) {
+func (p *CreateVMFromBackupParams) GetDhcpoptionsnetworklist()
([]map[string]string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
- value, ok := p.p["dhcpoptionsnetworklist"].(map[string]string)
+ value, ok := p.p["dhcpoptionsnetworklist"].([]map[string]string)
return value, ok
}
+func (p *CreateVMFromBackupParams) AddDhcpoptionsnetworklist(item
map[string]string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ val, found := p.p["dhcpoptionsnetworklist"]
+ if !found {
+ p.p["dhcpoptionsnetworklist"] = []map[string]string{}
+ val = p.p["dhcpoptionsnetworklist"]
+ }
+ l := val.([]map[string]string)
+ l = append(l, item)
+ p.p["dhcpoptionsnetworklist"] = l
+}
+
func (p *CreateVMFromBackupParams) SetDiskofferingid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -1543,7 +1575,7 @@ func (p *CreateVMFromBackupParams) GetIpaddress()
(string, bool) {
return value, ok
}
-func (p *CreateVMFromBackupParams) SetIptonetworklist(v map[string]string) {
+func (p *CreateVMFromBackupParams) SetIptonetworklist(v []map[string]string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
@@ -1556,14 +1588,28 @@ func (p *CreateVMFromBackupParams)
ResetIptonetworklist() {
}
}
-func (p *CreateVMFromBackupParams) GetIptonetworklist() (map[string]string,
bool) {
+func (p *CreateVMFromBackupParams) GetIptonetworklist() ([]map[string]string,
bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
- value, ok := p.p["iptonetworklist"].(map[string]string)
+ value, ok := p.p["iptonetworklist"].([]map[string]string)
return value, ok
}
+func (p *CreateVMFromBackupParams) AddIptonetworklist(item map[string]string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ val, found := p.p["iptonetworklist"]
+ if !found {
+ p.p["iptonetworklist"] = []map[string]string{}
+ val = p.p["iptonetworklist"]
+ }
+ l := val.([]map[string]string)
+ l = append(l, item)
+ p.p["iptonetworklist"] = l
+}
+
func (p *CreateVMFromBackupParams) SetKeyboard(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -1753,7 +1799,7 @@ func (p *CreateVMFromBackupParams)
GetNicmultiqueuenumber() (int, bool) {
return value, ok
}
-func (p *CreateVMFromBackupParams) SetNicnetworklist(v map[string]string) {
+func (p *CreateVMFromBackupParams) SetNicnetworklist(v []map[string]string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
@@ -1766,14 +1812,28 @@ func (p *CreateVMFromBackupParams)
ResetNicnetworklist() {
}
}
-func (p *CreateVMFromBackupParams) GetNicnetworklist() (map[string]string,
bool) {
+func (p *CreateVMFromBackupParams) GetNicnetworklist() ([]map[string]string,
bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
- value, ok := p.p["nicnetworklist"].(map[string]string)
+ value, ok := p.p["nicnetworklist"].([]map[string]string)
return value, ok
}
+func (p *CreateVMFromBackupParams) AddNicnetworklist(item map[string]string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ val, found := p.p["nicnetworklist"]
+ if !found {
+ p.p["nicnetworklist"] = []map[string]string{}
+ val = p.p["nicnetworklist"]
+ }
+ l := val.([]map[string]string)
+ l = append(l, item)
+ p.p["nicnetworklist"] = l
+}
+
func (p *CreateVMFromBackupParams) SetNicpackedvirtqueuesenabled(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
diff --git a/cloudstack/VirtualMachineService.go
b/cloudstack/VirtualMachineService.go
index c4d7544..c235101 100644
--- a/cloudstack/VirtualMachineService.go
+++ b/cloudstack/VirtualMachineService.go
@@ -1335,10 +1335,11 @@ func (p *DeployVirtualMachineParams) toURLValues()
url.Values {
}
}
if v, found := p.p["datadisksdetails"]; found {
- m := v.(map[string]string)
- for i, k := range getSortedKeysFromMap(m) {
- u.Set(fmt.Sprintf("datadisksdetails[%d].key", i), k)
- u.Set(fmt.Sprintf("datadisksdetails[%d].value", i),
m[k])
+ l := v.([]map[string]string)
+ for i, m := range l {
+ for key, val := range m {
+ u.Set(fmt.Sprintf("datadisksdetails[%d].%s", i,
key), val)
+ }
}
}
if v, found := p.p["deploymentplanner"]; found {
@@ -1737,7 +1738,7 @@ func (p *DeployVirtualMachineParams)
GetDatadiskofferinglist() (map[string]strin
return value, ok
}
-func (p *DeployVirtualMachineParams) SetDatadisksdetails(v map[string]string) {
+func (p *DeployVirtualMachineParams) SetDatadisksdetails(v
[]map[string]string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
@@ -1750,14 +1751,28 @@ func (p *DeployVirtualMachineParams)
ResetDatadisksdetails() {
}
}
-func (p *DeployVirtualMachineParams) GetDatadisksdetails() (map[string]string,
bool) {
+func (p *DeployVirtualMachineParams) GetDatadisksdetails()
([]map[string]string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
- value, ok := p.p["datadisksdetails"].(map[string]string)
+ value, ok := p.p["datadisksdetails"].([]map[string]string)
return value, ok
}
+func (p *DeployVirtualMachineParams) AddDatadisksdetails(item
map[string]string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ val, found := p.p["datadisksdetails"]
+ if !found {
+ p.p["datadisksdetails"] = []map[string]string{}
+ val = p.p["datadisksdetails"]
+ }
+ l := val.([]map[string]string)
+ l = append(l, item)
+ p.p["datadisksdetails"] = l
+}
+
func (p *DeployVirtualMachineParams) SetDeploymentplanner(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
diff --git a/cloudstack/VirtualNetworkFunctionsService.go
b/cloudstack/VirtualNetworkFunctionsService.go
index 90f7dee..04dfa1d 100644
--- a/cloudstack/VirtualNetworkFunctionsService.go
+++ b/cloudstack/VirtualNetworkFunctionsService.go
@@ -249,10 +249,11 @@ func (p *DeployVnfApplianceParams) toURLValues()
url.Values {
}
}
if v, found := p.p["datadisksdetails"]; found {
- m := v.(map[string]string)
- for i, k := range getSortedKeysFromMap(m) {
- u.Set(fmt.Sprintf("datadisksdetails[%d].key", i), k)
- u.Set(fmt.Sprintf("datadisksdetails[%d].value", i),
m[k])
+ l := v.([]map[string]string)
+ for i, m := range l {
+ for key, val := range m {
+ u.Set(fmt.Sprintf("datadisksdetails[%d].%s", i,
key), val)
+ }
}
}
if v, found := p.p["deploymentplanner"]; found {
@@ -265,10 +266,11 @@ func (p *DeployVnfApplianceParams) toURLValues()
url.Values {
}
}
if v, found := p.p["dhcpoptionsnetworklist"]; found {
- m := v.(map[string]string)
- for i, k := range getSortedKeysFromMap(m) {
- u.Set(fmt.Sprintf("dhcpoptionsnetworklist[%d].key", i),
k)
- u.Set(fmt.Sprintf("dhcpoptionsnetworklist[%d].value",
i), m[k])
+ l := v.([]map[string]string)
+ for i, m := range l {
+ for key, val := range m {
+
u.Set(fmt.Sprintf("dhcpoptionsnetworklist[%d].%s", i, key), val)
+ }
}
}
if v, found := p.p["diskofferingid"]; found {
@@ -321,10 +323,11 @@ func (p *DeployVnfApplianceParams) toURLValues()
url.Values {
u.Set("ipaddress", v.(string))
}
if v, found := p.p["iptonetworklist"]; found {
- m := v.(map[string]string)
- for i, k := range getSortedKeysFromMap(m) {
- u.Set(fmt.Sprintf("iptonetworklist[%d].key", i), k)
- u.Set(fmt.Sprintf("iptonetworklist[%d].value", i), m[k])
+ l := v.([]map[string]string)
+ for i, m := range l {
+ for key, val := range m {
+ u.Set(fmt.Sprintf("iptonetworklist[%d].%s", i,
key), val)
+ }
}
}
if v, found := p.p["keyboard"]; found {
@@ -359,10 +362,11 @@ func (p *DeployVnfApplianceParams) toURLValues()
url.Values {
u.Set("nicmultiqueuenumber", vv)
}
if v, found := p.p["nicnetworklist"]; found {
- m := v.(map[string]string)
- for i, k := range getSortedKeysFromMap(m) {
- u.Set(fmt.Sprintf("nicnetworklist[%d].nic", i), k)
- u.Set(fmt.Sprintf("nicnetworklist[%d].network", i),
m[k])
+ l := v.([]map[string]string)
+ for i, m := range l {
+ for key, val := range m {
+ u.Set(fmt.Sprintf("nicnetworklist[%d].%s", i,
key), val)
+ }
}
}
if v, found := p.p["nicpackedvirtqueuesenabled"]; found {
@@ -632,7 +636,7 @@ func (p *DeployVnfApplianceParams)
GetDatadiskofferinglist() (map[string]string,
return value, ok
}
-func (p *DeployVnfApplianceParams) SetDatadisksdetails(v map[string]string) {
+func (p *DeployVnfApplianceParams) SetDatadisksdetails(v []map[string]string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
@@ -645,14 +649,28 @@ func (p *DeployVnfApplianceParams)
ResetDatadisksdetails() {
}
}
-func (p *DeployVnfApplianceParams) GetDatadisksdetails() (map[string]string,
bool) {
+func (p *DeployVnfApplianceParams) GetDatadisksdetails() ([]map[string]string,
bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
- value, ok := p.p["datadisksdetails"].(map[string]string)
+ value, ok := p.p["datadisksdetails"].([]map[string]string)
return value, ok
}
+func (p *DeployVnfApplianceParams) AddDatadisksdetails(item map[string]string)
{
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ val, found := p.p["datadisksdetails"]
+ if !found {
+ p.p["datadisksdetails"] = []map[string]string{}
+ val = p.p["datadisksdetails"]
+ }
+ l := val.([]map[string]string)
+ l = append(l, item)
+ p.p["datadisksdetails"] = l
+}
+
func (p *DeployVnfApplianceParams) SetDeploymentplanner(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -695,7 +713,7 @@ func (p *DeployVnfApplianceParams) GetDetails()
(map[string]string, bool) {
return value, ok
}
-func (p *DeployVnfApplianceParams) SetDhcpoptionsnetworklist(v
map[string]string) {
+func (p *DeployVnfApplianceParams) SetDhcpoptionsnetworklist(v
[]map[string]string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
@@ -708,14 +726,28 @@ func (p *DeployVnfApplianceParams)
ResetDhcpoptionsnetworklist() {
}
}
-func (p *DeployVnfApplianceParams) GetDhcpoptionsnetworklist()
(map[string]string, bool) {
+func (p *DeployVnfApplianceParams) GetDhcpoptionsnetworklist()
([]map[string]string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
- value, ok := p.p["dhcpoptionsnetworklist"].(map[string]string)
+ value, ok := p.p["dhcpoptionsnetworklist"].([]map[string]string)
return value, ok
}
+func (p *DeployVnfApplianceParams) AddDhcpoptionsnetworklist(item
map[string]string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ val, found := p.p["dhcpoptionsnetworklist"]
+ if !found {
+ p.p["dhcpoptionsnetworklist"] = []map[string]string{}
+ val = p.p["dhcpoptionsnetworklist"]
+ }
+ l := val.([]map[string]string)
+ l = append(l, item)
+ p.p["dhcpoptionsnetworklist"] = l
+}
+
func (p *DeployVnfApplianceParams) SetDiskofferingid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -1010,7 +1042,7 @@ func (p *DeployVnfApplianceParams) GetIpaddress()
(string, bool) {
return value, ok
}
-func (p *DeployVnfApplianceParams) SetIptonetworklist(v map[string]string) {
+func (p *DeployVnfApplianceParams) SetIptonetworklist(v []map[string]string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
@@ -1023,14 +1055,28 @@ func (p *DeployVnfApplianceParams)
ResetIptonetworklist() {
}
}
-func (p *DeployVnfApplianceParams) GetIptonetworklist() (map[string]string,
bool) {
+func (p *DeployVnfApplianceParams) GetIptonetworklist() ([]map[string]string,
bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
- value, ok := p.p["iptonetworklist"].(map[string]string)
+ value, ok := p.p["iptonetworklist"].([]map[string]string)
return value, ok
}
+func (p *DeployVnfApplianceParams) AddIptonetworklist(item map[string]string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ val, found := p.p["iptonetworklist"]
+ if !found {
+ p.p["iptonetworklist"] = []map[string]string{}
+ val = p.p["iptonetworklist"]
+ }
+ l := val.([]map[string]string)
+ l = append(l, item)
+ p.p["iptonetworklist"] = l
+}
+
func (p *DeployVnfApplianceParams) SetKeyboard(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
@@ -1220,7 +1266,7 @@ func (p *DeployVnfApplianceParams)
GetNicmultiqueuenumber() (int, bool) {
return value, ok
}
-func (p *DeployVnfApplianceParams) SetNicnetworklist(v map[string]string) {
+func (p *DeployVnfApplianceParams) SetNicnetworklist(v []map[string]string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
@@ -1233,14 +1279,28 @@ func (p *DeployVnfApplianceParams)
ResetNicnetworklist() {
}
}
-func (p *DeployVnfApplianceParams) GetNicnetworklist() (map[string]string,
bool) {
+func (p *DeployVnfApplianceParams) GetNicnetworklist() ([]map[string]string,
bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
- value, ok := p.p["nicnetworklist"].(map[string]string)
+ value, ok := p.p["nicnetworklist"].([]map[string]string)
return value, ok
}
+func (p *DeployVnfApplianceParams) AddNicnetworklist(item map[string]string) {
+ if p.p == nil {
+ p.p = make(map[string]interface{})
+ }
+ val, found := p.p["nicnetworklist"]
+ if !found {
+ p.p["nicnetworklist"] = []map[string]string{}
+ val = p.p["nicnetworklist"]
+ }
+ l := val.([]map[string]string)
+ l = append(l, item)
+ p.p["nicnetworklist"] = l
+}
+
func (p *DeployVnfApplianceParams) SetNicpackedvirtqueuesenabled(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
diff --git a/generate/generate.go b/generate/generate.go
index a11213d..462caaa 100644
--- a/generate/generate.go
+++ b/generate/generate.go
@@ -94,6 +94,19 @@ var mapRequireList = map[string]map[string]bool{
"dhcpoptionsnetworklist": true,
"iptonetworklist": true,
"nicnetworklist": true,
+ "datadisksdetails": true,
+ },
+ "deployVnfAppliance": map[string]bool{
+ "dhcpoptionsnetworklist": true,
+ "iptonetworklist": true,
+ "nicnetworklist": true,
+ "datadisksdetails": true,
+ },
+ "createVMFromBackup": map[string]bool{
+ "dhcpoptionsnetworklist": true,
+ "iptonetworklist": true,
+ "nicnetworklist": true,
+ "datadisksdetails": true,
},
"updateVirtualMachine": map[string]bool{
"dhcpoptionsnetworklist": true,
@@ -1449,6 +1462,8 @@ func (s *service) generateConvertCode(cmd, name, typ
string) {
pn(" u.Set(fmt.Sprintf(\"%s[%%d].template\", i),
m[k])", name)
case "cniconfigdetails":
pn(" u.Set(fmt.Sprintf(\"%s[%%d].%%s\", i, k),
m[k])", name)
+ case "datadisksdetails":
+ pn(" u.Set(fmt.Sprintf(\"%s[%%d].%%s\", i, k),
m[k])", name)
default:
if shouldUseStaticZeroIndex &&
!detailsRequireKeyValue[cmd] {
pn(" u.Set(fmt.Sprintf(\"%s[0].%%s\", k),
m[k])", name)