@@ -1035,31 +1035,55 @@ func mysqlAllInstanceRoleUpdate(ctx context.Context, d *schema.ResourceData, met
1035
1035
return err
1036
1036
}
1037
1037
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
+ }
1040
1049
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
1046
1052
}
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
+ })
1048
1060
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
1054
1064
}
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
+ }
1059
1076
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
+ }
1063
1087
}
1064
1088
}
1065
1089
} else {
@@ -1120,31 +1144,55 @@ func mysqlAllInstanceRoleUpdate(ctx context.Context, d *schema.ResourceData, met
1120
1144
return err
1121
1145
}
1122
1146
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 )
1125
1150
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
+ }
1131
1157
}
1132
- }
1133
1158
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
1139
1173
}
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
+ }
1144
1185
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
+ }
1148
1196
}
1149
1197
}
1150
1198
}
@@ -1221,17 +1269,17 @@ func mysqlAllInstanceRoleUpdate(ctx context.Context, d *schema.ResourceData, met
1221
1269
if taskStatus == MYSQL_TASK_STATUS_INITIAL || taskStatus == MYSQL_TASK_STATUS_RUNNING {
1222
1270
return resource .RetryableError (fmt .Errorf ("update mysql engineVersion status is %s" , taskStatus ))
1223
1271
}
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 )
1226
1274
return resource .NonRetryableError (err )
1227
1275
})
1228
1276
1229
1277
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 ())
1231
1279
return err
1232
1280
}
1233
1281
} else {
1234
- err = resource .Retry (6 * time . Hour , func () * resource.RetryError {
1282
+ err = resource .Retry (tccommon . ReadRetryTimeout * 5 , func () * resource.RetryError {
1235
1283
mysqlInfo , err := mysqlService .DescribeDBInstanceById (ctx , d .Id ())
1236
1284
1237
1285
if err != nil {
@@ -1249,7 +1297,7 @@ func mysqlAllInstanceRoleUpdate(ctx context.Context, d *schema.ResourceData, met
1249
1297
})
1250
1298
1251
1299
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 ())
1253
1301
return err
1254
1302
}
1255
1303
0 commit comments