@@ -2,6 +2,7 @@ const { Capi } = require('@tencent-sdk/capi');
22const { waitResponse } = require ( '@ygkit/request' ) ;
33const capis = require ( './apis/apis' ) ;
44const apis = require ( './apis' ) ;
5+ const { ApiError } = require ( '../../utils/error' ) ;
56
67// timeout 2 minutes
78const TIMEOUT = 2 * 60 * 1000 ;
@@ -57,23 +58,42 @@ class Layer {
5758 console . log ( `Creating layer ${ inputs . name } ` ) ;
5859 const version = await apis . publishLayer ( this . capi , layerInputs ) ;
5960 // loop for active status
60- await waitResponse ( {
61- callback : async ( ) => this . getLayerDetail ( inputs . name , version ) ,
62- targetProp : 'Status' ,
63- targetResponse : 'Active' ,
64- timeout : TIMEOUT ,
65- } ) ;
66- console . log ( `Created layer: ${ inputs . name } , version: ${ version } successful` ) ;
61+ try {
62+ await waitResponse ( {
63+ callback : async ( ) => this . getLayerDetail ( inputs . name , version ) ,
64+ targetProp : 'Status' ,
65+ targetResponse : 'Active' ,
66+ timeout : TIMEOUT ,
67+ } ) ;
68+ } catch ( e ) {
69+ const detail = await this . getLayerDetail ( inputs . name , version ) ;
70+ if ( detail ) {
71+ // if not active throw error
72+ if ( detail . Status !== 'Active' ) {
73+ throw new ApiError ( {
74+ type : 'API_LAYER_GetLayerVersion' ,
75+ message : `Cannot create layer success in 2 minutes, status: ${ detail . Status } (reqId: ${ detail . RequestId } )` ,
76+ } ) ;
77+ }
78+ } else {
79+ // if can not get detail throw error
80+ throw new ApiError ( {
81+ type : 'API_LAYER_GetLayerVersion' ,
82+ message : `Cannot create layer success in 2 minutes` ,
83+ } ) ;
84+ }
85+ }
86+ console . log ( `Created layer: ${ inputs . name } , version: ${ version } success` ) ;
6787 outputs . version = version ;
6888
6989 return outputs ;
7090 }
7191
7292 async remove ( inputs = { } ) {
7393 try {
74- console . log ( `Start removing layer: ${ inputs . name } , version: ${ inputs . version } ... ` ) ;
94+ console . log ( `Start removing layer: ${ inputs . name } , version: ${ inputs . version } ` ) ;
7595 await apis . deleteLayerVersion ( this . capi , inputs . name , inputs . version ) ;
76- console . log ( `Remove layer: ${ inputs . name } , version: ${ inputs . version } successfully ` ) ;
96+ console . log ( `Remove layer: ${ inputs . name } , version: ${ inputs . version } success ` ) ;
7797 } catch ( e ) {
7898 console . log ( e ) ;
7999 }
0 commit comments