@@ -25,45 +25,45 @@ func DiskLookup(c buffalo.Context) error {
25
25
awsRootdiskType := "standard / gp2 / gp3"
26
26
awsDiskType := "standard / gp2 / gp3 / io1 / io2 / st1 / sc1"
27
27
awsDiskSize := "standard|1|1024|GB / gp2|1|16384|GB / gp3|1|16384|GB / io1|4|16384|GB / io2|4|16384|GB / st1|125|16384|GB / sc1|125|16384|GB"
28
-
29
- awsDiskInfo := LookupDiskInfo {}
30
- awsDiskInfo . ProviderID = "AWS"
31
- awsDiskInfo . RootDiskType = strings .Split (strings .ReplaceAll (awsRootdiskType , " " , "" ), "/" )
32
- awsDiskInfo . DataDiskType = strings . Split ( strings . ReplaceAll ( awsDiskType , " " , "" ), "/" )
33
- awsDiskInfo . DiskSize = strings . Split ( strings . ReplaceAll ( awsDiskSize , " " , "" ), "/" )
28
+ awsDiskInfo := LookupDiskInfo {
29
+ ProviderID : "AWS" ,
30
+ RootDiskType : strings . Split ( strings . ReplaceAll ( awsRootdiskType , " " , "" ), "/" ),
31
+ DataDiskType : strings .Split (strings .ReplaceAll (awsDiskType , " " , "" ), "/" ),
32
+ DiskSize : parseDiskSize ( awsDiskSize ),
33
+ }
34
34
diskInfoMap ["AWS" ] = awsDiskInfo
35
35
36
36
gcpRootdiskType := "pd-standard / pd-balanced / pd-ssd / pd-extreme"
37
37
gcpDiskType := "pd-standard / pd-balanced / pd-ssd / pd-extreme"
38
38
gcpDiskSize := "pd-standard|10|65536|GB / pd-balanced|10|65536|GB / pd-ssd|10|65536|GB / pd-extreme|500|65536|GB"
39
-
40
- gcpDiskInfo := LookupDiskInfo {}
41
- gcpDiskInfo . ProviderID = "GCP"
42
- gcpDiskInfo . RootDiskType = strings .Split (strings .ReplaceAll (gcpRootdiskType , " " , "" ), "/" )
43
- gcpDiskInfo . DataDiskType = strings . Split ( strings . ReplaceAll ( gcpDiskType , " " , "" ), "/" )
44
- gcpDiskInfo . DiskSize = strings . Split ( strings . ReplaceAll ( gcpDiskSize , " " , "" ), "/" )
39
+ gcpDiskInfo := LookupDiskInfo {
40
+ ProviderID : "GCP" ,
41
+ RootDiskType : strings . Split ( strings . ReplaceAll ( gcpRootdiskType , " " , "" ), "/" ),
42
+ DataDiskType : strings .Split (strings .ReplaceAll (gcpDiskType , " " , "" ), "/" ),
43
+ DiskSize : parseDiskSize ( gcpDiskSize ),
44
+ }
45
45
diskInfoMap ["GCP" ] = gcpDiskInfo
46
46
47
47
aliRootdiskType := "cloud_essd / cloud_efficiency / cloud / cloud_ssd"
48
48
aliDiskType := "cloud / cloud_efficiency / cloud_ssd / cloud_essd"
49
49
aliDiskSize := "cloud|5|2000|GB / cloud_efficiency|20|32768|GB / cloud_ssd|20|32768|GB / cloud_essd_PL0|40|32768|GB / cloud_essd_PL1|20|32768|GB / cloud_essd_PL2|461|32768|GB / cloud_essd_PL3|1261|32768|GB"
50
-
51
- aliDiskInfo := LookupDiskInfo {}
52
- aliDiskInfo . ProviderID = "ALIBABA"
53
- aliDiskInfo . RootDiskType = strings .Split (strings .ReplaceAll (aliRootdiskType , " " , "" ), "/" )
54
- aliDiskInfo . DataDiskType = strings . Split ( strings . ReplaceAll ( aliDiskType , " " , "" ), "/" )
55
- aliDiskInfo . DiskSize = strings . Split ( strings . ReplaceAll ( aliDiskSize , " " , "" ), "/" )
50
+ aliDiskInfo := LookupDiskInfo {
51
+ ProviderID : "ALIBABA" ,
52
+ RootDiskType : strings . Split ( strings . ReplaceAll ( aliRootdiskType , " " , "" ), "/" ),
53
+ DataDiskType : strings .Split (strings .ReplaceAll (aliDiskType , " " , "" ), "/" ),
54
+ DiskSize : parseDiskSize ( aliDiskSize ),
55
+ }
56
56
diskInfoMap ["ALIBABA" ] = aliDiskInfo
57
57
58
58
tencentRootdiskType := "CLOUD_PREMIUM / CLOUD_SSD"
59
59
tencentDiskType := "CLOUD_PREMIUM / CLOUD_SSD / CLOUD_HSSD / CLOUD_BASIC / CLOUD_TSSD"
60
60
tencentDiskSize := "CLOUD_PREMIUM|10|32000|GB / CLOUD_SSD|20|32000|GB / CLOUD_HSSD|20|32000|GB / CLOUD_BASIC|10|32000|GB / CLOUD_TSSD|10|32000|GB"
61
-
62
- tencentDiskInfo := LookupDiskInfo {}
63
- tencentDiskInfo . ProviderID = "TENCENT"
64
- tencentDiskInfo . RootDiskType = strings .Split (strings .ReplaceAll (tencentRootdiskType , " " , "" ), "/" )
65
- tencentDiskInfo . DataDiskType = strings . Split ( strings . ReplaceAll ( tencentDiskType , " " , "" ), "/" )
66
- tencentDiskInfo . DiskSize = strings . Split ( strings . ReplaceAll ( tencentDiskSize , " " , "" ), "/" )
61
+ tencentDiskInfo := LookupDiskInfo {
62
+ ProviderID : "TENCENT" ,
63
+ RootDiskType : strings . Split ( strings . ReplaceAll ( tencentRootdiskType , " " , "" ), "/" ),
64
+ DataDiskType : strings .Split (strings .ReplaceAll (tencentDiskType , " " , "" ), "/" ),
65
+ DiskSize : parseDiskSize ( tencentDiskSize ),
66
+ }
67
67
diskInfoMap ["TENCENT" ] = tencentDiskInfo
68
68
69
69
dataDiskInfoList := []LookupDiskInfo {}
@@ -103,45 +103,45 @@ func AvailableDiskTypeByProviderRegion(c buffalo.Context) error {
103
103
awsRootdiskType := "standard / gp2 / gp3"
104
104
awsDiskType := "standard / gp2 / gp3 / io1 / io2 / st1 / sc1"
105
105
awsDiskSize := "standard|1|1024|GB / gp2|1|16384|GB / gp3|1|16384|GB / io1|4|16384|GB / io2|4|16384|GB / st1|125|16384|GB / sc1|125|16384|GB"
106
-
107
- awsDiskInfo := AvailableDiskType {}
108
- awsDiskInfo . ProviderID = "AWS"
109
- awsDiskInfo . RootDiskType = strings .Split (strings .ReplaceAll (awsRootdiskType , " " , "" ), "/" )
110
- awsDiskInfo . DataDiskType = strings . Split ( strings . ReplaceAll ( awsDiskType , " " , "" ), "/" )
111
- awsDiskInfo . DiskSize = strings . Split ( strings . ReplaceAll ( awsDiskSize , " " , "" ), "/" )
106
+ awsDiskInfo := AvailableDiskType {
107
+ ProviderID : "AWS" ,
108
+ RootDiskType : strings . Split ( strings . ReplaceAll ( awsRootdiskType , " " , "" ), "/" ),
109
+ DataDiskType : strings .Split (strings .ReplaceAll (awsDiskType , " " , "" ), "/" ),
110
+ DiskSize : parseDiskSize ( awsDiskSize ),
111
+ }
112
112
diskInfoMap ["AWS" ] = awsDiskInfo
113
113
114
114
gcpRootdiskType := "pd-standard / pd-balanced / pd-ssd / pd-extreme"
115
115
gcpDiskType := "pd-standard / pd-balanced / pd-ssd / pd-extreme"
116
116
gcpDiskSize := "pd-standard|10|65536|GB / pd-balanced|10|65536|GB / pd-ssd|10|65536|GB / pd-extreme|500|65536|GB"
117
-
118
- gcpDiskInfo := AvailableDiskType {}
119
- gcpDiskInfo . ProviderID = "GCP"
120
- gcpDiskInfo . RootDiskType = strings .Split (strings .ReplaceAll (gcpRootdiskType , " " , "" ), "/" )
121
- gcpDiskInfo . DataDiskType = strings . Split ( strings . ReplaceAll ( gcpDiskType , " " , "" ), "/" )
122
- gcpDiskInfo . DiskSize = strings . Split ( strings . ReplaceAll ( gcpDiskSize , " " , "" ), "/" )
117
+ gcpDiskInfo := AvailableDiskType {
118
+ ProviderID : "GCP" ,
119
+ RootDiskType : strings . Split ( strings . ReplaceAll ( gcpRootdiskType , " " , "" ), "/" ),
120
+ DataDiskType : strings .Split (strings .ReplaceAll (gcpDiskType , " " , "" ), "/" ),
121
+ DiskSize : parseDiskSize ( gcpDiskSize ),
122
+ }
123
123
diskInfoMap ["GCP" ] = gcpDiskInfo
124
124
125
125
aliRootdiskType := "cloud_essd / cloud_efficiency / cloud / cloud_ssd"
126
126
aliDiskType := "cloud / cloud_efficiency / cloud_ssd / cloud_essd"
127
127
aliDiskSize := "cloud|5|2000|GB / cloud_efficiency|20|32768|GB / cloud_ssd|20|32768|GB / cloud_essd_PL0|40|32768|GB / cloud_essd_PL1|20|32768|GB / cloud_essd_PL2|461|32768|GB / cloud_essd_PL3|1261|32768|GB"
128
-
129
- aliDiskInfo := AvailableDiskType {}
130
- aliDiskInfo . ProviderID = "ALIBABA"
131
- aliDiskInfo . RootDiskType = strings .Split (strings .ReplaceAll (aliRootdiskType , " " , "" ), "/" )
132
- aliDiskInfo . DataDiskType = strings . Split ( strings . ReplaceAll ( aliDiskType , " " , "" ), "/" )
133
- aliDiskInfo . DiskSize = strings . Split ( strings . ReplaceAll ( aliDiskSize , " " , "" ), "/" )
128
+ aliDiskInfo := AvailableDiskType {
129
+ ProviderID : "ALIBABA" ,
130
+ RootDiskType : strings . Split ( strings . ReplaceAll ( aliRootdiskType , " " , "" ), "/" ),
131
+ DataDiskType : strings .Split (strings .ReplaceAll (aliDiskType , " " , "" ), "/" ),
132
+ DiskSize : parseDiskSize ( aliDiskSize ),
133
+ }
134
134
diskInfoMap ["ALIBABA" ] = aliDiskInfo
135
135
136
136
tencentRootdiskType := "CLOUD_PREMIUM / CLOUD_SSD"
137
137
tencentDiskType := "CLOUD_PREMIUM / CLOUD_SSD / CLOUD_HSSD / CLOUD_BASIC / CLOUD_TSSD"
138
138
tencentDiskSize := "CLOUD_PREMIUM|10|32000|GB / CLOUD_SSD|20|32000|GB / CLOUD_HSSD|20|32000|GB / CLOUD_BASIC|10|32000|GB / CLOUD_TSSD|10|32000|GB"
139
-
140
- tencentDiskInfo := AvailableDiskType {}
141
- tencentDiskInfo . ProviderID = "TENCENT"
142
- tencentDiskInfo . RootDiskType = strings .Split (strings .ReplaceAll (tencentRootdiskType , " " , "" ), "/" )
143
- tencentDiskInfo . DataDiskType = strings . Split ( strings . ReplaceAll ( tencentDiskType , " " , "" ), "/" )
144
- tencentDiskInfo . DiskSize = strings . Split ( strings . ReplaceAll ( tencentDiskSize , " " , "" ), "/" )
139
+ tencentDiskInfo := AvailableDiskType {
140
+ ProviderID : "TENCENT" ,
141
+ RootDiskType : strings . Split ( strings . ReplaceAll ( tencentRootdiskType , " " , "" ), "/" ),
142
+ DataDiskType : strings .Split (strings .ReplaceAll (tencentDiskType , " " , "" ), "/" ),
143
+ DiskSize : parseDiskSize ( tencentDiskSize ),
144
+ }
145
145
diskInfoMap ["TENCENT" ] = tencentDiskInfo
146
146
147
147
dataDiskInfoList := []AvailableDiskType {}
@@ -156,3 +156,21 @@ func AvailableDiskTypeByProviderRegion(c buffalo.Context) error {
156
156
commonResponse := handler .CommonResponseStatusOK (dataDiskInfoList )
157
157
return c .Render (commonResponse .Status .StatusCode , r .JSON (commonResponse ))
158
158
}
159
+
160
+ func parseDiskSize (diskSizeString string ) []DiskSizeInfo {
161
+ diskSizeList := strings .Split (strings .ReplaceAll (diskSizeString , " " , "" ), "/" )
162
+ var diskSizes []DiskSizeInfo
163
+ for _ , size := range diskSizeList {
164
+ parts := strings .Split (size , "|" )
165
+ if len (parts ) == 4 {
166
+ diskSizeInfo := DiskSizeInfo {
167
+ DiskType : parts [0 ],
168
+ MinSize : parts [1 ],
169
+ MaxSize : parts [2 ],
170
+ Capacity : parts [3 ],
171
+ }
172
+ diskSizes = append (diskSizes , diskSizeInfo )
173
+ }
174
+ }
175
+ return diskSizes
176
+ }
0 commit comments