@@ -313,3 +313,43 @@ func (me *MongodbService) DescribeAsyncRequestInfo(ctx context.Context, asyncId
313
313
314
314
return nil
315
315
}
316
+
317
+ func (me * MongodbService ) OfflineIsolatedDBInstance (ctx context.Context , instanceId string ) (errRet error ) {
318
+ logId := getLogId (ctx )
319
+ request := mongodb .NewOfflineIsolatedDBInstanceRequest ()
320
+ request .InstanceId = & instanceId
321
+ defer func () {
322
+ if errRet != nil {
323
+ log .Printf ("[CRITAL]%s api[%s] fail,reason[%s]" , logId , request .GetAction (), errRet .Error ())
324
+ }
325
+ }()
326
+ var response * mongodb.OfflineIsolatedDBInstanceResponse
327
+ var err error
328
+ err = resource .Retry (writeRetryTimeout , func () * resource.RetryError {
329
+ ratelimit .Check (request .GetAction ())
330
+ response , err = me .client .UseMongodbClient ().OfflineIsolatedDBInstance (request )
331
+ if err != nil {
332
+ if ee , ok := err .(* sdkErrors.TencentCloudSDKError ); ok {
333
+ if ee .Code == "InvalidParameterValue.LockFailed" {
334
+ return resource .RetryableError (err )
335
+ } else {
336
+ return resource .NonRetryableError (err )
337
+ }
338
+ }
339
+ log .Printf ("[CRITAL]%s api[%s] fail, reason:%s" , logId , request .GetAction (), err .Error ())
340
+ return resource .NonRetryableError (err )
341
+ }
342
+ return nil
343
+ })
344
+ if err != nil {
345
+ return err
346
+ }
347
+ if response != nil && response .Response != nil {
348
+ if err = me .DescribeAsyncRequestInfo (ctx , * response .Response .AsyncRequestId ); err != nil {
349
+ return err
350
+ }
351
+ }
352
+ log .Printf ("[DEBUG]%s api[%s] success, request body [%s], response body [%s]" ,
353
+ logId , request .GetAction (), request .ToJsonString (), response .ToJsonString ())
354
+ return nil
355
+ }
0 commit comments