@@ -1035,31 +1035,55 @@ func mysqlAllInstanceRoleUpdate(ctx context.Context, d *schema.ResourceData, met
10351035 return err
10361036 }
10371037
1038- err = resource .Retry (6 * time .Hour , func () * resource.RetryError {
1039- taskStatus , message , err := mysqlService .DescribeAsyncRequestInfo (ctx , asyncRequestId )
1038+ if waitSwitch != InWindow {
1039+ err = resource .Retry (6 * time .Hour , func () * resource.RetryError {
1040+ taskStatus , message , err := mysqlService .DescribeAsyncRequestInfo (ctx , asyncRequestId )
1041+
1042+ if err != nil {
1043+ if _ , ok := err .(* errors.TencentCloudSDKError ); ! ok {
1044+ return resource .RetryableError (err )
1045+ } else {
1046+ return resource .NonRetryableError (err )
1047+ }
1048+ }
10401049
1041- if err != nil {
1042- if _ , ok := err .(* errors.TencentCloudSDKError ); ! ok {
1043- return resource .RetryableError (err )
1044- } else {
1045- return resource .NonRetryableError (err )
1050+ if taskStatus == MYSQL_TASK_STATUS_SUCCESS {
1051+ return nil
10461052 }
1047- }
1053+ if taskStatus == MYSQL_TASK_STATUS_INITIAL || taskStatus == MYSQL_TASK_STATUS_RUNNING {
1054+ return resource .RetryableError (fmt .Errorf ("update mysql mem_size/volume_size status is %s" , taskStatus ))
1055+ }
1056+ err = fmt .Errorf ("update mysql mem_size/volume_size task status is %s, we won't wait for it finish, it show message:%s" ,
1057+ taskStatus , message )
1058+ return resource .NonRetryableError (err )
1059+ })
10481060
1049- if taskStatus == MYSQL_TASK_STATUS_SUCCESS {
1050- return nil
1051- }
1052- if taskStatus == MYSQL_TASK_STATUS_INITIAL || taskStatus == MYSQL_TASK_STATUS_RUNNING {
1053- return resource .RetryableError (fmt .Errorf ("update mysql mem_size/volume_size status is %s" , taskStatus ))
1061+ if err != nil {
1062+ log .Printf ("[CRITAL]%s update mysql mem_size/volume_size fail, reason:%s\n " , logId , err .Error ())
1063+ return err
10541064 }
1055- err = fmt .Errorf ("update mysql mem_size/volume_size task status is %s,we won't wait for it finish ,it show message:%s" ,
1056- "," , message )
1057- return resource .NonRetryableError (err )
1058- })
1065+ } else {
1066+ err = resource .Retry (tccommon .ReadRetryTimeout * 5 , func () * resource.RetryError {
1067+ mysqlInfo , err := mysqlService .DescribeDBInstanceById (ctx , d .Id ())
1068+
1069+ if err != nil {
1070+ if _ , ok := err .(* errors.TencentCloudSDKError ); ! ok {
1071+ return resource .RetryableError (err )
1072+ } else {
1073+ return resource .NonRetryableError (err )
1074+ }
1075+ }
10591076
1060- if err != nil {
1061- log .Printf ("[CRITAL]%s update mysql mem_size/volume_size fail, reason:%s\n " , logId , err .Error ())
1062- return err
1077+ if * mysqlInfo .TaskStatus == 15 {
1078+ return nil
1079+ }
1080+ return resource .RetryableError (fmt .Errorf ("update mysql mem_size/volume_size task status is %v" , mysqlInfo .TaskStatus ))
1081+ })
1082+
1083+ if err != nil {
1084+ log .Printf ("[CRITAL]%s update mysql mem_size/volume_size fail, reason:%s\n " , logId , err .Error ())
1085+ return err
1086+ }
10631087 }
10641088 }
10651089 } else {
@@ -1120,31 +1144,55 @@ func mysqlAllInstanceRoleUpdate(ctx context.Context, d *schema.ResourceData, met
11201144 return err
11211145 }
11221146
1123- err = resource .Retry (6 * time .Hour , func () * resource.RetryError {
1124- taskStatus , message , err := mysqlService .DescribeAsyncRequestInfo (ctx , asyncRequestId )
1147+ if waitSwitch != InWindow {
1148+ err = resource .Retry (6 * time .Hour , func () * resource.RetryError {
1149+ taskStatus , message , err := mysqlService .DescribeAsyncRequestInfo (ctx , asyncRequestId )
11251150
1126- if err != nil {
1127- if _ , ok := err .(* errors.TencentCloudSDKError ); ! ok {
1128- return resource .RetryableError (err )
1129- } else {
1130- return resource .NonRetryableError (err )
1151+ if err != nil {
1152+ if _ , ok := err .(* errors.TencentCloudSDKError ); ! ok {
1153+ return resource .RetryableError (err )
1154+ } else {
1155+ return resource .NonRetryableError (err )
1156+ }
11311157 }
1132- }
11331158
1134- if taskStatus == MYSQL_TASK_STATUS_SUCCESS {
1135- return nil
1136- }
1137- if taskStatus == MYSQL_TASK_STATUS_INITIAL || taskStatus == MYSQL_TASK_STATUS_RUNNING {
1138- return resource .RetryableError (fmt .Errorf ("update mysql mem_size/volume_size status is %s" , taskStatus ))
1159+ if taskStatus == MYSQL_TASK_STATUS_SUCCESS {
1160+ return nil
1161+ }
1162+ if taskStatus == MYSQL_TASK_STATUS_INITIAL || taskStatus == MYSQL_TASK_STATUS_RUNNING {
1163+ return resource .RetryableError (fmt .Errorf ("update mysql mem_size/volume_size status is %s" , taskStatus ))
1164+ }
1165+ err = fmt .Errorf ("update mysql mem_size/volume_size task status is %s, we won't wait for it finish, it show message:%s" ,
1166+ taskStatus , message )
1167+ return resource .NonRetryableError (err )
1168+ })
1169+
1170+ if err != nil {
1171+ log .Printf ("[CRITAL]%s update mysql mem_size/volume_size fail, reason:%s\n " , logId , err .Error ())
1172+ return err
11391173 }
1140- err = fmt .Errorf ("update mysql mem_size/volume_size task status is %s,we won't wait for it finish ,it show message:%s" ,
1141- "," , message )
1142- return resource .NonRetryableError (err )
1143- })
1174+ } else {
1175+ err = resource .Retry (tccommon .ReadRetryTimeout * 5 , func () * resource.RetryError {
1176+ mysqlInfo , err := mysqlService .DescribeDBInstanceById (ctx , d .Id ())
1177+
1178+ if err != nil {
1179+ if _ , ok := err .(* errors.TencentCloudSDKError ); ! ok {
1180+ return resource .RetryableError (err )
1181+ } else {
1182+ return resource .NonRetryableError (err )
1183+ }
1184+ }
11441185
1145- if err != nil {
1146- log .Printf ("[CRITAL]%s update mysql mem_size/volume_size fail, reason:%s\n " , logId , err .Error ())
1147- return err
1186+ if * mysqlInfo .TaskStatus == 15 {
1187+ return nil
1188+ }
1189+ return resource .RetryableError (fmt .Errorf ("update mysql engineVersion task status is %v" , mysqlInfo .TaskStatus ))
1190+ })
1191+
1192+ if err != nil {
1193+ log .Printf ("[CRITAL]%s update mysql engineVersion fail, reason:%s\n " , logId , err .Error ())
1194+ return err
1195+ }
11481196 }
11491197 }
11501198 }
@@ -1221,17 +1269,17 @@ func mysqlAllInstanceRoleUpdate(ctx context.Context, d *schema.ResourceData, met
12211269 if taskStatus == MYSQL_TASK_STATUS_INITIAL || taskStatus == MYSQL_TASK_STATUS_RUNNING {
12221270 return resource .RetryableError (fmt .Errorf ("update mysql engineVersion status is %s" , taskStatus ))
12231271 }
1224- err = fmt .Errorf ("update mysql engineVersion task status is %s,we won't wait for it finish , it show message:%s" ,
1225- "," , message )
1272+ err = fmt .Errorf ("update mysql engineVersion task status is %s, we won't wait for it finish, it show message:%s" ,
1273+ taskStatus , message )
12261274 return resource .NonRetryableError (err )
12271275 })
12281276
12291277 if err != nil {
1230- log .Printf ("[CRITAL]%s update mysql engineVersion fail, reason:%s\n " , logId , err .Error ())
1278+ log .Printf ("[CRITAL]%s update mysql engineVersion fail, reason:%s\n " , logId , err .Error ())
12311279 return err
12321280 }
12331281 } else {
1234- err = resource .Retry (6 * time . Hour , func () * resource.RetryError {
1282+ err = resource .Retry (tccommon . ReadRetryTimeout * 5 , func () * resource.RetryError {
12351283 mysqlInfo , err := mysqlService .DescribeDBInstanceById (ctx , d .Id ())
12361284
12371285 if err != nil {
@@ -1249,7 +1297,7 @@ func mysqlAllInstanceRoleUpdate(ctx context.Context, d *schema.ResourceData, met
12491297 })
12501298
12511299 if err != nil {
1252- log .Printf ("[CRITAL]%s update mysql engineVersion fail, reason:%s\n " , logId , err .Error ())
1300+ log .Printf ("[CRITAL]%s update mysql engineVersion fail, reason:%s\n " , logId , err .Error ())
12531301 return err
12541302 }
12551303
0 commit comments