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,
},