@@ -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 }  ) ; 
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 } ${ 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 }  ) ; 
6787 outputs . version  =  version ; 
6888
6989 return  outputs ; 
7090 } 
7191
7292 async  remove ( inputs  =  { } )  { 
7393 try  { 
74-  console . log ( `Start removing layer: ${ inputs . name } ${ inputs . version } ... ` ) ; 
94+  console . log ( `Start removing layer: ${ inputs . name } ${ inputs . version }  ) ; 
7595 await  apis . deleteLayerVersion ( this . capi ,  inputs . name ,  inputs . version ) ; 
76-  console . log ( `Remove layer: ${ inputs . name } ${ inputs . version } successfully ` ) ; 
96+  console . log ( `Remove layer: ${ inputs . name } ${ inputs . version } success ` ) ; 
7797 }  catch  ( e )  { 
7898 console . log ( e ) ; 
7999 } 
0 commit comments