This is an automated email from the ASF dual-hosted git repository.

weizhou pushed a commit to branch fix-datadisksdetails
in repository https://gitbox.apache.org/repos/asf/cloudstack-go.git


The following commit(s) were added to refs/heads/fix-datadisksdetails by this 
push:
     new 66bc951  Fix deployVnfAppliance and createVMFromBackup
66bc951 is described below

commit 66bc95151dde595ade8b41e82b51e8ebdbeb0405
Author: Wei Zhou <[email protected]>
AuthorDate: Sun Mar 15 16:44:32 2026 +0100

    Fix deployVnfAppliance and createVMFromBackup
---
 cloudstack/BackupService.go                  | 115 ++++++++++++++++++++-------
 cloudstack/VirtualNetworkFunctionsService.go | 115 ++++++++++++++++++++-------
 generate/generate.go                         |  12 +++
 3 files changed, 188 insertions(+), 54 deletions(-)

diff --git a/cloudstack/BackupService.go b/cloudstack/BackupService.go
index f2c9266..882bbb0 100644
--- a/cloudstack/BackupService.go
+++ b/cloudstack/BackupService.go
@@ -747,9 +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].%s", i, k), 
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 {
@@ -762,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 {
@@ -818,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 {
@@ -856,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 {
@@ -1164,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{})
        }
@@ -1177,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{})
@@ -1227,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{})
        }
@@ -1240,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{})
@@ -1542,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{})
        }
@@ -1555,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{})
@@ -1752,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{})
        }
@@ -1765,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/VirtualNetworkFunctionsService.go 
b/cloudstack/VirtualNetworkFunctionsService.go
index f202cec..04dfa1d 100644
--- a/cloudstack/VirtualNetworkFunctionsService.go
+++ b/cloudstack/VirtualNetworkFunctionsService.go
@@ -249,9 +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].%s", i, k), 
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 {
@@ -264,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 {
@@ -320,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 {
@@ -358,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 {
@@ -631,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{})
        }
@@ -644,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{})
@@ -694,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{})
        }
@@ -707,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{})
@@ -1009,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{})
        }
@@ -1022,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{})
@@ -1219,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{})
        }
@@ -1232,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 48ba0c6..5c315d5 100644
--- a/generate/generate.go
+++ b/generate/generate.go
@@ -95,6 +95,18 @@ var mapRequireList = map[string]map[string]bool{
                "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,
        },

Reply via email to