|
5 | 5 | "crypto/sha256"
|
6 | 6 | "encoding/base64"
|
7 | 7 | "encoding/hex"
|
| 8 | + "encoding/json" |
8 | 9 | "fmt"
|
9 | 10 | "log"
|
10 | 11 | "sort"
|
@@ -1221,77 +1222,132 @@ func resourceTencentCloudInstanceRead(d *schema.ResourceData, meta interface{})
|
1221 | 1222 | return err
|
1222 | 1223 | }
|
1223 | 1224 |
|
1224 |
| - // update instance DataDisks |
| 1225 | + // make data disks data |
| 1226 | + sourceDataDisks := make([]*map[string]interface{}, 0) |
1225 | 1227 | for _, cvmDisk := range instance.DataDisks {
|
1226 | 1228 | for _, cbsDisk := range cbsDisks {
|
1227 | 1229 | if *cvmDisk.DiskId == *cbsDisk.DiskId {
|
1228 |
| - dName := *cbsDisk.DiskName |
1229 |
| - cvmDisk.DiskName = &dName |
| 1230 | + dataDisk := make(map[string]interface{}, 10) |
| 1231 | + dataDisk["data_disk_id"] = cvmDisk.DiskId |
| 1232 | + dataDisk["data_disk_size"] = cvmDisk.DiskSize |
| 1233 | + dataDisk["data_disk_name"] = cbsDisk.DiskName |
| 1234 | + dataDisk["data_disk_type"] = cvmDisk.DiskType |
| 1235 | + dataDisk["data_disk_snapshot_id"] = cvmDisk.SnapshotId |
| 1236 | + dataDisk["delete_with_instance"] = cvmDisk.DeleteWithInstance |
| 1237 | + dataDisk["encrypt"] = cvmDisk.Encrypt |
| 1238 | + dataDisk["throughput_performance"] = cvmDisk.ThroughputPerformance |
| 1239 | + dataDisk["flag"] = 0 |
| 1240 | + sourceDataDisks = append(sourceDataDisks, &dataDisk) |
1230 | 1241 | break
|
1231 | 1242 | }
|
1232 | 1243 | }
|
1233 | 1244 | }
|
1234 | 1245 |
|
| 1246 | + a, _ := json.Marshal(instance.DataDisks) |
| 1247 | + b, _ := json.Marshal(dDiskHash) |
| 1248 | + fmt.Println(1111111111111) |
| 1249 | + fmt.Println(1111111111111) |
| 1250 | + fmt.Printf("%+v\n", string(a)) |
| 1251 | + fmt.Println(1111111111111) |
| 1252 | + fmt.Println(1111111111111) |
| 1253 | + fmt.Printf("%+v\n", string(b)) |
| 1254 | + fmt.Println(1111111111111) |
| 1255 | + fmt.Println(1111111111111) |
| 1256 | + |
1235 | 1257 | // has set disk name first
|
1236 |
| - for _, disk := range instance.DataDisks { |
1237 |
| - for _, hashItem := range dDiskHash { |
1238 |
| - diskName := *disk.DiskName |
| 1258 | + for v := range sourceDataDisks { |
| 1259 | + for i := range dDiskHash { |
| 1260 | + disk := *sourceDataDisks[v] |
| 1261 | + diskFlag := disk["flag"].(int) |
| 1262 | + diskName := disk["data_disk_name"].(*string) |
| 1263 | + diskType := disk["data_disk_type"].(*string) |
| 1264 | + diskSize := disk["data_disk_size"].(*int64) |
| 1265 | + deleteWithInstance := disk["delete_with_instance"].(*bool) |
| 1266 | + encrypt := disk["encrypt"].(*bool) |
1239 | 1267 | tmpHash := getDataDiskHash(diskHash{
|
1240 |
| - diskType: *disk.DiskType, |
1241 |
| - diskSize: *disk.DiskSize, |
1242 |
| - deleteWithInstance: *disk.DeleteWithInstance, |
1243 |
| - encrypt: *disk.Encrypt, |
| 1268 | + diskType: *diskType, |
| 1269 | + diskSize: *diskSize, |
| 1270 | + deleteWithInstance: *deleteWithInstance, |
| 1271 | + encrypt: *encrypt, |
1244 | 1272 | })
|
1245 | 1273 |
|
1246 | 1274 | // get disk name
|
1247 |
| - if v, ok := hashItem[diskName].(string); ok && v != "" { |
| 1275 | + hashItem := dDiskHash[i] |
| 1276 | + if _, ok := hashItem[*diskName]; ok { |
1248 | 1277 | // check hash and flag
|
1249 |
| - if tmpHash == hashItem[diskName] && hashItem["flag"] == 0 { |
1250 |
| - dataDisk := make(map[string]interface{}, 5) |
1251 |
| - dataDisk["data_disk_id"] = disk.DiskId |
1252 |
| - dataDisk["data_disk_size"] = disk.DiskSize |
1253 |
| - dataDisk["data_disk_name"] = disk.DiskName |
1254 |
| - dataDisk["data_disk_type"] = disk.DiskType |
1255 |
| - dataDisk["data_disk_snapshot_id"] = disk.SnapshotId |
1256 |
| - dataDisk["delete_with_instance"] = disk.DeleteWithInstance |
1257 |
| - dataDisk["encrypt"] = disk.Encrypt |
1258 |
| - dataDisk["throughput_performance"] = disk.ThroughputPerformance |
| 1278 | + if hashItem["flag"] == 0 && diskFlag == 0 && tmpHash == hashItem[*diskName] { |
| 1279 | + dataDisk := make(map[string]interface{}, 8) |
| 1280 | + dataDisk["data_disk_id"] = disk["data_disk_id"] |
| 1281 | + dataDisk["data_disk_size"] = disk["data_disk_size"] |
| 1282 | + dataDisk["data_disk_name"] = disk["data_disk_name"] |
| 1283 | + dataDisk["data_disk_type"] = disk["data_disk_type"] |
| 1284 | + dataDisk["data_disk_snapshot_id"] = disk["data_disk_snapshot_id"] |
| 1285 | + dataDisk["delete_with_instance"] = disk["delete_with_instance"] |
| 1286 | + dataDisk["encrypt"] = disk["encrypt"] |
| 1287 | + dataDisk["throughput_performance"] = disk["throughput_performance"] |
1259 | 1288 | tmpDataDiskMap[hashItem["index"].(int)] = dataDisk
|
1260 | 1289 | hashItem["flag"] = 1
|
| 1290 | + disk["flag"] = 1 |
1261 | 1291 | break
|
1262 | 1292 | }
|
1263 | 1293 | }
|
1264 | 1294 | }
|
1265 | 1295 | }
|
1266 | 1296 |
|
| 1297 | + c, _ := json.Marshal(sourceDataDisks) |
| 1298 | + c1, _ := json.Marshal(dDiskHash) |
| 1299 | + fmt.Println(2222222222222) |
| 1300 | + fmt.Println(2222222222222) |
| 1301 | + fmt.Printf("%+v\n", string(c)) |
| 1302 | + fmt.Printf("%+v\n", string(c1)) |
| 1303 | + fmt.Println(2222222222222) |
| 1304 | + fmt.Println(2222222222222) |
| 1305 | + |
1267 | 1306 | // no set disk name last
|
1268 |
| - for _, disk := range instance.DataDisks { |
1269 |
| - for index, hashItem := range dDiskHash { |
| 1307 | + for v := range sourceDataDisks { |
| 1308 | + for i := range dDiskHash { |
| 1309 | + disk := *sourceDataDisks[v] |
| 1310 | + diskFlag := disk["flag"].(int) |
| 1311 | + diskType := disk["data_disk_type"].(*string) |
| 1312 | + diskSize := disk["data_disk_size"].(*int64) |
| 1313 | + deleteWithInstance := disk["delete_with_instance"].(*bool) |
| 1314 | + encrypt := disk["encrypt"].(*bool) |
1270 | 1315 | tmpHash := getDataDiskHash(diskHash{
|
1271 |
| - diskType: *disk.DiskType, |
1272 |
| - diskSize: *disk.DiskSize, |
1273 |
| - deleteWithInstance: *disk.DeleteWithInstance, |
1274 |
| - encrypt: *disk.Encrypt, |
| 1316 | + diskType: *diskType, |
| 1317 | + diskSize: *diskSize, |
| 1318 | + deleteWithInstance: *deleteWithInstance, |
| 1319 | + encrypt: *encrypt, |
1275 | 1320 | })
|
1276 | 1321 |
|
1277 | 1322 | // check hash and flag
|
1278 |
| - if tmpHash == hashItem[strconv.Itoa(index)] && hashItem["flag"] == 0 { |
1279 |
| - dataDisk := make(map[string]interface{}, 5) |
1280 |
| - dataDisk["data_disk_id"] = disk.DiskId |
1281 |
| - dataDisk["data_disk_size"] = disk.DiskSize |
1282 |
| - dataDisk["data_disk_name"] = disk.DiskName |
1283 |
| - dataDisk["data_disk_type"] = disk.DiskType |
1284 |
| - dataDisk["data_disk_snapshot_id"] = disk.SnapshotId |
1285 |
| - dataDisk["delete_with_instance"] = disk.DeleteWithInstance |
1286 |
| - dataDisk["encrypt"] = disk.Encrypt |
1287 |
| - dataDisk["throughput_performance"] = disk.ThroughputPerformance |
| 1323 | + hashItem := dDiskHash[i] |
| 1324 | + if hashItem["flag"] == 0 && diskFlag == 0 && tmpHash == hashItem[strconv.Itoa(i)] { |
| 1325 | + dataDisk := make(map[string]interface{}, 8) |
| 1326 | + dataDisk["data_disk_id"] = disk["data_disk_id"] |
| 1327 | + dataDisk["data_disk_size"] = disk["data_disk_size"] |
| 1328 | + dataDisk["data_disk_name"] = disk["data_disk_name"] |
| 1329 | + dataDisk["data_disk_type"] = disk["data_disk_type"] |
| 1330 | + dataDisk["data_disk_snapshot_id"] = disk["data_disk_snapshot_id"] |
| 1331 | + dataDisk["delete_with_instance"] = disk["delete_with_instance"] |
| 1332 | + dataDisk["encrypt"] = disk["encrypt"] |
| 1333 | + dataDisk["throughput_performance"] = disk["throughput_performance"] |
1288 | 1334 | tmpDataDiskMap[hashItem["index"].(int)] = dataDisk
|
1289 | 1335 | hashItem["flag"] = 1
|
| 1336 | + disk["flag"] = 1 |
1290 | 1337 | break
|
1291 | 1338 | }
|
1292 | 1339 | }
|
1293 | 1340 | }
|
1294 | 1341 |
|
| 1342 | + e, _ := json.Marshal(sourceDataDisks) |
| 1343 | + e1, _ := json.Marshal(dDiskHash) |
| 1344 | + fmt.Println(3333333333333) |
| 1345 | + fmt.Println(3333333333333) |
| 1346 | + fmt.Printf("%+v\n", string(e)) |
| 1347 | + fmt.Printf("%+v\n", string(e1)) |
| 1348 | + fmt.Println(3333333333333) |
| 1349 | + fmt.Println(3333333333333) |
| 1350 | + |
1295 | 1351 | keys := make([]int, 0, len(tmpDataDiskMap))
|
1296 | 1352 | for k := range tmpDataDiskMap {
|
1297 | 1353 | keys = append(keys, k)
|
|
0 commit comments