@@ -49,6 +49,13 @@ var detailsRequireKeyValue = map[string]bool{
49
49
"updateZone" : true ,
50
50
}
51
51
52
+ // detailsRequireZeroIndex is a prefilled map with a list of details
53
+ // that need to be encoded using zero indexing
54
+ var detailsRequireZeroIndex = map [string ]bool {
55
+ "registerTemplate" : true ,
56
+ "updateTemplate" : true ,
57
+ }
58
+
52
59
var mapRequireList = map [string ]map [string ]bool {
53
60
"deployVirtualMachine" : map [string ]bool {
54
61
"dhcpoptionsnetworklist" : true ,
@@ -1295,14 +1302,23 @@ func (s *service) generateConvertCode(cmd, name, typ string) {
1295
1302
pn ("}" )
1296
1303
case "map[string]string" :
1297
1304
pn ("m := v.(map[string]string)" )
1298
- pn ("for i, k := range getSortedKeysFromMap(m) {" )
1305
+ zeroIndex := detailsRequireZeroIndex [cmd ]
1306
+ if zeroIndex {
1307
+ pn ("for _, k := range getSortedKeysFromMap(m) {" )
1308
+ } else {
1309
+ pn ("for i, k := range getSortedKeysFromMap(m) {" )
1310
+ }
1299
1311
switch name {
1300
1312
case "details" :
1301
1313
if detailsRequireKeyValue [cmd ] {
1302
1314
pn (" u.Set(fmt.Sprintf(\" %s[%%d].key\" , i), k)" , name )
1303
1315
pn (" u.Set(fmt.Sprintf(\" %s[%%d].value\" , i), m[k])" , name )
1304
1316
} else {
1305
- pn (" u.Set(fmt.Sprintf(\" %s[%%d].%%s\" , i, k), m[k])" , name )
1317
+ if zeroIndex {
1318
+ pn (" u.Set(fmt.Sprintf(\" %s[0].%%s\" , k), m[k])" , name )
1319
+ } else {
1320
+ pn (" u.Set(fmt.Sprintf(\" %s[%%d].%%s\" , i, k), m[k])" , name )
1321
+ }
1306
1322
}
1307
1323
case "serviceproviderlist" :
1308
1324
pn (" u.Set(fmt.Sprintf(\" %s[%%d].service\" , i), k)" , name )
0 commit comments