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 6b701ff  Fix the servicecapabilitylist type for create VPC & Network 
Offerings (#158)
6b701ff is described below

commit 6b701ff49ede1b172c3f0042b21d7556f29eddd1
Author: Pearl Dsilva <[email protected]>
AuthorDate: Mon Aug 10 22:19:46 2026 -0400

    Fix the servicecapabilitylist type for create VPC & Network Offerings (#158)
    
    Co-authored-by: Pearl Dsilva <[email protected]>
---
 cloudstack/NetworkOfferingService.go | 29 ++++++++++++++++++++++-------
 cloudstack/VPCService.go             | 29 ++++++++++++++++++++++-------
 generate/generate.go                 |  6 ++++++
 3 files changed, 50 insertions(+), 14 deletions(-)

diff --git a/cloudstack/NetworkOfferingService.go 
b/cloudstack/NetworkOfferingService.go
index 2d670bd..80fef38 100644
--- a/cloudstack/NetworkOfferingService.go
+++ b/cloudstack/NetworkOfferingService.go
@@ -133,10 +133,11 @@ func (p *CreateNetworkOfferingParams) toURLValues() 
url.Values {
                u.Set("routingmode", v.(string))
        }
        if v, found := p.p["servicecapabilitylist"]; found {
-               m := v.(map[string]string)
-               for i, k := range getSortedKeysFromMap(m) {
-                       u.Set(fmt.Sprintf("servicecapabilitylist[%d].key", i), 
k)
-                       u.Set(fmt.Sprintf("servicecapabilitylist[%d].value", 
i), m[k])
+               l := v.([]map[string]string)
+               for i, m := range l {
+                       for key, val := range m {
+                               
u.Set(fmt.Sprintf("servicecapabilitylist[%d].%s", i, key), val)
+                       }
                }
        }
        if v, found := p.p["serviceofferingid"]; found {
@@ -640,7 +641,7 @@ func (p *CreateNetworkOfferingParams) GetRoutingmode() 
(string, bool) {
        return value, ok
 }
 
-func (p *CreateNetworkOfferingParams) SetServicecapabilitylist(v 
map[string]string) {
+func (p *CreateNetworkOfferingParams) SetServicecapabilitylist(v 
[]map[string]string) {
        if p.p == nil {
                p.p = make(map[string]interface{})
        }
@@ -653,14 +654,28 @@ func (p *CreateNetworkOfferingParams) 
ResetServicecapabilitylist() {
        }
 }
 
-func (p *CreateNetworkOfferingParams) GetServicecapabilitylist() 
(map[string]string, bool) {
+func (p *CreateNetworkOfferingParams) GetServicecapabilitylist() 
([]map[string]string, bool) {
        if p.p == nil {
                p.p = make(map[string]interface{})
        }
-       value, ok := p.p["servicecapabilitylist"].(map[string]string)
+       value, ok := p.p["servicecapabilitylist"].([]map[string]string)
        return value, ok
 }
 
+func (p *CreateNetworkOfferingParams) AddServicecapabilitylist(item 
map[string]string) {
+       if p.p == nil {
+               p.p = make(map[string]interface{})
+       }
+       val, found := p.p["servicecapabilitylist"]
+       if !found {
+               p.p["servicecapabilitylist"] = []map[string]string{}
+               val = p.p["servicecapabilitylist"]
+       }
+       l := val.([]map[string]string)
+       l = append(l, item)
+       p.p["servicecapabilitylist"] = l
+}
+
 func (p *CreateNetworkOfferingParams) SetServiceofferingid(v string) {
        if p.p == nil {
                p.p = make(map[string]interface{})
diff --git a/cloudstack/VPCService.go b/cloudstack/VPCService.go
index 59fe105..39270a7 100644
--- a/cloudstack/VPCService.go
+++ b/cloudstack/VPCService.go
@@ -1274,10 +1274,11 @@ func (p *CreateVPCOfferingParams) toURLValues() 
url.Values {
                u.Set("routingmode", v.(string))
        }
        if v, found := p.p["servicecapabilitylist"]; found {
-               m := v.(map[string]string)
-               for i, k := range getSortedKeysFromMap(m) {
-                       u.Set(fmt.Sprintf("servicecapabilitylist[%d].key", i), 
k)
-                       u.Set(fmt.Sprintf("servicecapabilitylist[%d].value", 
i), m[k])
+               l := v.([]map[string]string)
+               for i, m := range l {
+                       for key, val := range m {
+                               
u.Set(fmt.Sprintf("servicecapabilitylist[%d].%s", i, key), val)
+                       }
                }
        }
        if v, found := p.p["serviceofferingid"]; found {
@@ -1515,7 +1516,7 @@ func (p *CreateVPCOfferingParams) GetRoutingmode() 
(string, bool) {
        return value, ok
 }
 
-func (p *CreateVPCOfferingParams) SetServicecapabilitylist(v 
map[string]string) {
+func (p *CreateVPCOfferingParams) SetServicecapabilitylist(v 
[]map[string]string) {
        if p.p == nil {
                p.p = make(map[string]interface{})
        }
@@ -1528,14 +1529,28 @@ func (p *CreateVPCOfferingParams) 
ResetServicecapabilitylist() {
        }
 }
 
-func (p *CreateVPCOfferingParams) GetServicecapabilitylist() 
(map[string]string, bool) {
+func (p *CreateVPCOfferingParams) GetServicecapabilitylist() 
([]map[string]string, bool) {
        if p.p == nil {
                p.p = make(map[string]interface{})
        }
-       value, ok := p.p["servicecapabilitylist"].(map[string]string)
+       value, ok := p.p["servicecapabilitylist"].([]map[string]string)
        return value, ok
 }
 
+func (p *CreateVPCOfferingParams) AddServicecapabilitylist(item 
map[string]string) {
+       if p.p == nil {
+               p.p = make(map[string]interface{})
+       }
+       val, found := p.p["servicecapabilitylist"]
+       if !found {
+               p.p["servicecapabilitylist"] = []map[string]string{}
+               val = p.p["servicecapabilitylist"]
+       }
+       l := val.([]map[string]string)
+       l = append(l, item)
+       p.p["servicecapabilitylist"] = l
+}
+
 func (p *CreateVPCOfferingParams) SetServiceofferingid(v string) {
        if p.p == nil {
                p.p = make(map[string]interface{})
diff --git a/generate/generate.go b/generate/generate.go
index c2d1bac..d1d0802 100644
--- a/generate/generate.go
+++ b/generate/generate.go
@@ -108,6 +108,12 @@ var mapRequireList = map[string]map[string]bool{
                "nicnetworklist":         true,
                "datadisksdetails":       true,
        },
+       "createVPCOffering": map[string]bool{
+               "servicecapabilitylist": true,
+       },
+       "createNetworkOffering": map[string]bool{
+               "servicecapabilitylist": true,
+       },
        "updateVirtualMachine": map[string]bool{
                "dhcpoptionsnetworklist": true,
        },

Reply via email to