Skip to content

Commit 6b701ff

Browse files
Pearl1594Pearl Dsilva
andauthored
Fix the servicecapabilitylist type for create VPC & Network Offerings (#158)
Co-authored-by: Pearl Dsilva <pearl1954@gmail.com>
1 parent 37d668c commit 6b701ff

3 files changed

Lines changed: 50 additions & 14 deletions

File tree

cloudstack/NetworkOfferingService.go

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -133,10 +133,11 @@ func (p *CreateNetworkOfferingParams) toURLValues() url.Values {
133133
u.Set("routingmode", v.(string))
134134
}
135135
if v, found := p.p["servicecapabilitylist"]; found {
136-
m := v.(map[string]string)
137-
for i, k := range getSortedKeysFromMap(m) {
138-
u.Set(fmt.Sprintf("servicecapabilitylist[%d].key", i), k)
139-
u.Set(fmt.Sprintf("servicecapabilitylist[%d].value", i), m[k])
136+
l := v.([]map[string]string)
137+
for i, m := range l {
138+
for key, val := range m {
139+
u.Set(fmt.Sprintf("servicecapabilitylist[%d].%s", i, key), val)
140+
}
140141
}
141142
}
142143
if v, found := p.p["serviceofferingid"]; found {
@@ -640,7 +641,7 @@ func (p *CreateNetworkOfferingParams) GetRoutingmode() (string, bool) {
640641
return value, ok
641642
}
642643

643-
func (p *CreateNetworkOfferingParams) SetServicecapabilitylist(v map[string]string) {
644+
func (p *CreateNetworkOfferingParams) SetServicecapabilitylist(v []map[string]string) {
644645
if p.p == nil {
645646
p.p = make(map[string]interface{})
646647
}
@@ -653,14 +654,28 @@ func (p *CreateNetworkOfferingParams) ResetServicecapabilitylist() {
653654
}
654655
}
655656

656-
func (p *CreateNetworkOfferingParams) GetServicecapabilitylist() (map[string]string, bool) {
657+
func (p *CreateNetworkOfferingParams) GetServicecapabilitylist() ([]map[string]string, bool) {
657658
if p.p == nil {
658659
p.p = make(map[string]interface{})
659660
}
660-
value, ok := p.p["servicecapabilitylist"].(map[string]string)
661+
value, ok := p.p["servicecapabilitylist"].([]map[string]string)
661662
return value, ok
662663
}
663664

665+
func (p *CreateNetworkOfferingParams) AddServicecapabilitylist(item map[string]string) {
666+
if p.p == nil {
667+
p.p = make(map[string]interface{})
668+
}
669+
val, found := p.p["servicecapabilitylist"]
670+
if !found {
671+
p.p["servicecapabilitylist"] = []map[string]string{}
672+
val = p.p["servicecapabilitylist"]
673+
}
674+
l := val.([]map[string]string)
675+
l = append(l, item)
676+
p.p["servicecapabilitylist"] = l
677+
}
678+
664679
func (p *CreateNetworkOfferingParams) SetServiceofferingid(v string) {
665680
if p.p == nil {
666681
p.p = make(map[string]interface{})

cloudstack/VPCService.go

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1274,10 +1274,11 @@ func (p *CreateVPCOfferingParams) toURLValues() url.Values {
12741274
u.Set("routingmode", v.(string))
12751275
}
12761276
if v, found := p.p["servicecapabilitylist"]; found {
1277-
m := v.(map[string]string)
1278-
for i, k := range getSortedKeysFromMap(m) {
1279-
u.Set(fmt.Sprintf("servicecapabilitylist[%d].key", i), k)
1280-
u.Set(fmt.Sprintf("servicecapabilitylist[%d].value", i), m[k])
1277+
l := v.([]map[string]string)
1278+
for i, m := range l {
1279+
for key, val := range m {
1280+
u.Set(fmt.Sprintf("servicecapabilitylist[%d].%s", i, key), val)
1281+
}
12811282
}
12821283
}
12831284
if v, found := p.p["serviceofferingid"]; found {
@@ -1515,7 +1516,7 @@ func (p *CreateVPCOfferingParams) GetRoutingmode() (string, bool) {
15151516
return value, ok
15161517
}
15171518

1518-
func (p *CreateVPCOfferingParams) SetServicecapabilitylist(v map[string]string) {
1519+
func (p *CreateVPCOfferingParams) SetServicecapabilitylist(v []map[string]string) {
15191520
if p.p == nil {
15201521
p.p = make(map[string]interface{})
15211522
}
@@ -1528,14 +1529,28 @@ func (p *CreateVPCOfferingParams) ResetServicecapabilitylist() {
15281529
}
15291530
}
15301531

1531-
func (p *CreateVPCOfferingParams) GetServicecapabilitylist() (map[string]string, bool) {
1532+
func (p *CreateVPCOfferingParams) GetServicecapabilitylist() ([]map[string]string, bool) {
15321533
if p.p == nil {
15331534
p.p = make(map[string]interface{})
15341535
}
1535-
value, ok := p.p["servicecapabilitylist"].(map[string]string)
1536+
value, ok := p.p["servicecapabilitylist"].([]map[string]string)
15361537
return value, ok
15371538
}
15381539

1540+
func (p *CreateVPCOfferingParams) AddServicecapabilitylist(item map[string]string) {
1541+
if p.p == nil {
1542+
p.p = make(map[string]interface{})
1543+
}
1544+
val, found := p.p["servicecapabilitylist"]
1545+
if !found {
1546+
p.p["servicecapabilitylist"] = []map[string]string{}
1547+
val = p.p["servicecapabilitylist"]
1548+
}
1549+
l := val.([]map[string]string)
1550+
l = append(l, item)
1551+
p.p["servicecapabilitylist"] = l
1552+
}
1553+
15391554
func (p *CreateVPCOfferingParams) SetServiceofferingid(v string) {
15401555
if p.p == nil {
15411556
p.p = make(map[string]interface{})

generate/generate.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,12 @@ var mapRequireList = map[string]map[string]bool{
108108
"nicnetworklist": true,
109109
"datadisksdetails": true,
110110
},
111+
"createVPCOffering": map[string]bool{
112+
"servicecapabilitylist": true,
113+
},
114+
"createNetworkOffering": map[string]bool{
115+
"servicecapabilitylist": true,
116+
},
111117
"updateVirtualMachine": map[string]bool{
112118
"dhcpoptionsnetworklist": true,
113119
},

0 commit comments

Comments
 (0)