|
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