@@ -313,3 +313,43 @@ func (me *MongodbService) DescribeAsyncRequestInfo(ctx context.Context, asyncId
313313
314314 return nil
315315}
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