From db96d97c8d1de7dc23d97dea216c93ca39bef2af Mon Sep 17 00:00:00 2001 From: Matheus Costa Date: Thu, 3 Apr 2025 13:45:16 -0300 Subject: [PATCH] fix(aws): error handling wrap try/catch to avoid unhandled promise rejections. --- dist/index.js | Bin 15142261 -> 15142537 bytes dist/index.js.map | Bin 16833708 -> 16834012 bytes .../providers/aws/services/task-service.ts | 35 +++++++++++------- 3 files changed, 21 insertions(+), 14 deletions(-) diff --git a/dist/index.js b/dist/index.js index d2b2b67434b7e71c68d038d68d1876e085df2f32..7ffa95afa17d8170df1abe277b44721221e89e71 100644 GIT binary patch delta 1205 zcmY+-Sy;?*6vpvq{xkoXN+nssRHkHW(MY6}B}xm)R@swAvK3{`Qp6}*lzwD}C|i;! z4cW4b>}8kTg?r1D$JgV^#pj&ooQwDUUSiVZnN6DPTt%%^r4&^rO=nT7l#0Z#8T(aY zXtYu-VpLMj|EINRRY{Bg{Sx!NRU+0-A&UfAaup3Rp0X%SHaiHTEV&5V7RgaKI1QIY zjV!qruMU=lLzv_ye#%maxUaKu6#5h|Yf<$>;VKMjsjo1bH8vt$+iYVgQ%f!iQQ@rU zDGt<;Qa!gwRU9R0L~MlGPDF*8?Tbw`G-wqrg=v*)_r&m7sS6Cry390PvLR#klGG%F zZeCiF&LfMtCWtM3r<8XR`fo3EA~D*^yRe|Fy-{l=K?xOPsG)%stYL#Tu!SA$(H0J9 z2S@zP>41*t1SfPx7j%Ud&TxS%x#L7 zfPo0WAOs=^gAt4n48c$g!*GOR1V$nZ;TVMoL?Q~&7>zNA!C1s%9L8e;CSnre5RU{* z#uQA&G)%_~%tRt)AqlgQ3#Tg)FSb z8mz@SWFrUbu>rZ*h)pnJGxCs+E!c`}*p3}2z)tK!A&RgY#Sqwoy(qyxm|(_!96%`! z;t9;Dqd11+sK5zS;v}kY3e`A`GpIo=&Y}($oWpsG)~f#WSY?2pUg(!)M_RN6 z&5jkuruceXz(ribWn4i6uHqW5;|6Zx7H;DX8gUo*(1iPVfQNX5$9Q6Cihug+w@k5r te@kOrvpUe|6V!rdc#ao%iC1`yH+YLyyu*8Zz(;(-XMC~v1bvNo`Uk1lf{XwF delta 1095 zcmXBLX;92z0D$q?cX$8W7M*S)ML8-u$yTg0M{<)Rw_K4UIa9>Sm9v-Hh>%hVv4oPF zqDYPiIX^OH7@zPoKKy2$FHcIQS@$#DtV>K*6^lZ(jI|Sr{H76FS)mrGvMR(|FQYXg z;eY+mhwZd8cEzh@;^;+SYR;O~4?urPO1vXl1`MoULN>(?h9AxP) zm95NBgtyH5s@PlV72&Lsl~F2J>0%`uWnzw(PG`lIU0W~zxLV*re(8C%w zXo9A&g&i7S2ROnB&Cnbz&=RfC8g0-P?cj{|=l~aVge%<837z2%4|G9SbVGM|!VBK$ zfu8VzFZ|$-00g2JdLsyZU_dZJ5Q@I&2P67p00v?Z24e`qFciZu93v2pk%+)3jK&y@ z#W;+|1Wd#vL}D_gU@E2|3ezzIGcgOZF$Z%o57C&91z3nhSd17f!BWIx8J1%ORw53o z5RcVZgSA+P_1J&}Y(yfGunC)yj4jv-6Sg4*+pz;Xu?xGAiapqieb|o!IEXYz9KvCw zBLik+;s}l+3&(IA**JldIE5UXMlSMj2KgvJAhSX1PdThzeBV5gwxo)p&xZsIi2qpZ)%$_4f%33a}VN ztrDbZY?)N#6=v~_EOE>;84a~~ju&`|SE$2lyg@zQ;vL?j0Uz)YpYYjYG<*rG`3ErA BTvz}A diff --git a/dist/index.js.map b/dist/index.js.map index 235e1465eefa8079f46986c238898c598bcb8d0a..ccde7107b62a96927cae4a02dba6603d780bb594 100644 GIT binary patch delta 1403 zcmXBNdt8%s6vy$`#vGTaj1m;qv*$NNrOa+97HZmHgE9%Rv@8V?s;LQzWoFa}Xwps8 z+$k+arBSw$(tPsL)l4fix~UcBDwS@gl}pUZKGYxYbH3m6&k1j?i|gE47uU8lXIYU` z{A=vC4TmRgG5?p0NHlGc+3@F^wwa}6ufN#1-)QJEaDK41lZ6Ueb5() zupQ->qi+BZSA$E1zwdD&p@sR7lVj1=_807JE>=B2JE+7&Ou z_NUI1Qg_TG!++8~%@oMAron-8j7+Q6wN`eY&~hXa)?#IPSc@~Xu-054Em5s^ASJ57 zX{1E;DTT7$mhO=1TqSa5YDt3F^Hlx+X;q%8k+~!EKB7FzCC7s*K_bnWHYxTfC807s zS(>tSiV1u&C!A)M9QR`KMOj0vmAH34( zN|tf`2U?`cp~p(ol8kscny+GI_BvOR97}VJkv;pI*7Q>E4BwoJap!hz`2^KZst&1h^5B6N`6$4ZxC-NOH71}C z*PsX!QH)8r7S~}irr>(qfT_3V7%$=_tVbJO#w*x>jd&HC zVBj@u#ujYFHoT5E@Fw2E+js}t@h*1YJ?z9TypIp?A=c-+Sh5y{TH>&59$B_ delta 1337 zcmXBOc~sPO6vp8*gABtUh|7$c&hQ-<+$zy*3^BoBlPs7t)QSqt!X<^=aH$+58p#Dm z(i^E|C8CLnCjKI$$So@^mljP>M8(~58O5^n1O4%wbKm!zd+x2?k!vii$TgM~3@CIP zO#Z3)V)bb2bCI_TktX7Gmr0WcyECIq25f)Roi z2t`Y@LTj|qDxK!+e5suuYSMZ~S*|yoD>TZ%I=#u0;WNX6wrHni_}Z6;H2#xnYub>I z^X4c~{<=W9ch?f`bqy7Fw*HLQwM%Meg_t~vh6m6A9koP*wZ2%~8?6Rya;bIg5Wl_? zri!i9nk4ByYYUI^Sz*(ZFKlG8MA(%<+!0~^BC%?zEY7qAiX%?t{6FoEQ?tbxuX;+% zg0Pm76R(uaEw=^B_Qp;ntIiUTprXY!)*dWNvce29F;dxOUV`c)DPE$=3J=ouC8(}C z8MMsSNs@JTvs9&>3y`Y(E`idl+HRGI6y@)UPExR=6FQ>{x*{Ci&>cO{6TR>t9>T-u zjR^EXUp#_-coYuw$76`Z07PLR9>*X=BL;)vL@eSEj|3!Q2$JvwhT=&)g=D0_g{LtL z!|@DKF#;no3eVy>JdZTIfEV!+(lHui@G{2Y6}*ZJjKg?Lz(l-;NtldGWZ`v8!BkAc zbj(0DW?~j*V-DWHn|KRz;YJSTAs25W5AVQ(`N+q+Sb&9CgvBVp5_qu`g?JCkupEN- zQG^e$0xPi!AL1jd#>e;spJEM)u@)s*hxPaj8&Hak*o4g}!xn7C=h%jFY=?#~P=PP8 z17D#MU*j88;alv)F6_o0?8SH3hwt$Ne#Cwpz)$!Y2XP38aRk5MSNw+GaTLe!2acm! zi%zQ15A+xuCvXzAIE6Z##u=PNJM?-vx nHaM?lPno3p-El0x(9q6PRMUVv_#6M=F8;-TxVNIHMi+Y@ypj}} diff --git a/src/model/cloud-runner/providers/aws/services/task-service.ts b/src/model/cloud-runner/providers/aws/services/task-service.ts index e0ecfcd8..039969bb 100644 --- a/src/model/cloud-runner/providers/aws/services/task-service.ts +++ b/src/model/cloud-runner/providers/aws/services/task-service.ts @@ -133,27 +133,34 @@ export class TaskService { public static async awsDescribeJob(job: string) { process.env.AWS_REGION = Input.region; const CF = new CloudFormation({ region: Input.region }); - const stack = - (await CF.send(new ListStacksCommand({}))).StackSummaries?.find((_x) => _x.StackName === job) || undefined; - const stackInfo = (await CF.send(new DescribeStackResourcesCommand({ StackName: job }))) || undefined; - const stackInfo2 = (await CF.send(new DescribeStacksCommand({ StackName: job }))) || undefined; - if (stack === undefined) { - throw new Error('stack not defined'); - } - if (!stack.CreationTime) { - CloudRunnerLogger.log(`${stack.StackName} due to undefined CreationTime`); - } - const ageDate: Date = new Date(Date.now() - (stack.CreationTime?.getTime() ?? 0)); - const message = ` + try { + const stack = + (await CF.send(new ListStacksCommand({}))).StackSummaries?.find((_x) => _x.StackName === job) || undefined; + const stackInfo = (await CF.send(new DescribeStackResourcesCommand({ StackName: job }))) || undefined; + const stackInfo2 = (await CF.send(new DescribeStacksCommand({ StackName: job }))) || undefined; + if (stack === undefined) { + throw new Error('stack not defined'); + } + if (!stack.CreationTime) { + CloudRunnerLogger.log(`${stack.StackName} due to undefined CreationTime`); + } + const ageDate: Date = new Date(Date.now() - (stack.CreationTime?.getTime() ?? 0)); + const message = ` Task Stack ${stack.StackName} Age D${Math.floor(ageDate.getHours() / 24)} H${ageDate.getHours()} M${ageDate.getMinutes()} ${JSON.stringify(stack, undefined, 4)} ${JSON.stringify(stackInfo, undefined, 4)} ${JSON.stringify(stackInfo2, undefined, 4)} `; - CloudRunnerLogger.log(message); + CloudRunnerLogger.log(message); - return message; + return message; + } catch (error) { + CloudRunnerLogger.error( + `Failed to describe job ${job}: ${error instanceof Error ? error.message : String(error)}`, + ); + throw error; + } } public static async getLogGroups() { const result: Array = [];