@@ -256,7 +256,7 @@ func ResourceTencentCloudInstance() *schema.Resource {
256
256
Description : "Resize online." ,
257
257
},
258
258
"data_disks" : {
259
- Type : schema .TypeSet ,
259
+ Type : schema .TypeList ,
260
260
Optional : true ,
261
261
Computed : true ,
262
262
ForceNew : true ,
@@ -630,7 +630,7 @@ func resourceTencentCloudInstanceCreate(d *schema.ResourceData, meta interface{}
630
630
}
631
631
632
632
if v , ok := d .GetOk ("data_disks" ); ok {
633
- dataDisks := v .(* schema. Set ). List ( )
633
+ dataDisks := v .([] interface {} )
634
634
request .DataDisks = make ([]* cvm.DataDisk , 0 , len (dataDisks ))
635
635
for _ , d := range dataDisks {
636
636
value := d .(map [string ]interface {})
@@ -947,7 +947,6 @@ func resourceTencentCloudInstanceRead(d *schema.ResourceData, meta interface{})
947
947
_ = d .Set ("system_disk_type" , instance .SystemDisk .DiskType )
948
948
_ = d .Set ("system_disk_size" , instance .SystemDisk .DiskSize )
949
949
_ = d .Set ("system_disk_id" , instance .SystemDisk .DiskId )
950
- _ = d .Set ("system_disk_name" , instance .SystemDisk .DiskName )
951
950
_ = d .Set ("instance_status" , instance .InstanceState )
952
951
_ = d .Set ("create_time" , instance .CreatedTime )
953
952
_ = d .Set ("expired_time" , instance .ExpiredTime )
@@ -981,7 +980,34 @@ func resourceTencentCloudInstanceRead(d *schema.ResourceData, meta interface{})
981
980
delete (tags , "tencentcloud:autoscaling:auto-scaling-group-id" )
982
981
_ = d .Set ("tags" , tags )
983
982
984
- //set data_disks
983
+ // set system_disk_name
984
+ if instance .SystemDisk .DiskId != nil {
985
+ err := resource .Retry (tccommon .ReadRetryTimeout , func () * resource.RetryError {
986
+ disks , err := cbsService .DescribeDiskList (ctx , []* string {instance .SystemDisk .DiskId })
987
+ if err != nil {
988
+ return resource .NonRetryableError (err )
989
+ }
990
+
991
+ for i := range disks {
992
+ disk := disks [i ]
993
+ if * disk .DiskState == "EXPANDING" {
994
+ return resource .RetryableError (fmt .Errorf ("data_disk[%d] is expending" , i ))
995
+ }
996
+
997
+ if * disk .DiskId == * instance .SystemDisk .DiskId {
998
+ _ = d .Set ("system_disk_name" , disk .DiskName )
999
+ }
1000
+ }
1001
+
1002
+ return nil
1003
+ })
1004
+
1005
+ if err != nil {
1006
+ return err
1007
+ }
1008
+ }
1009
+
1010
+ // set data_disks
985
1011
var hasDataDisks , isCombineDataDisks bool
986
1012
dataDiskList := make ([]map [string ]interface {}, 0 , len (instance .DataDisks ))
987
1013
diskSizeMap := map [string ]* uint64 {}
@@ -1043,7 +1069,7 @@ func resourceTencentCloudInstanceRead(d *schema.ResourceData, meta interface{})
1043
1069
1044
1070
tmpDataDisks := make ([]interface {}, 0 , len (instance .DataDisks ))
1045
1071
if v , ok := d .GetOk ("data_disks" ); ok {
1046
- tmpDataDisks = v .(* schema. Set ). List ( )
1072
+ tmpDataDisks = v .([] interface {} )
1047
1073
}
1048
1074
1049
1075
for index , disk := range instance .DataDisks {
@@ -1064,7 +1090,6 @@ func resourceTencentCloudInstanceRead(d *schema.ResourceData, meta interface{})
1064
1090
}
1065
1091
}
1066
1092
1067
- dataDisk ["data_disk_name" ] = disk .DiskName
1068
1093
dataDisk ["data_disk_type" ] = disk .DiskType
1069
1094
dataDisk ["data_disk_snapshot_id" ] = disk .SnapshotId
1070
1095
dataDisk ["delete_with_instance" ] = disk .DeleteWithInstance
0 commit comments