@@ -330,49 +330,59 @@ function new_pre_upgrade_checkups(params) {
330330 ) ;
331331}
332332
333- function do_yum_update ( ) {
334- dbg . log0 ( 'fix_security_issues: Called' ) ;
335- return promise_utils . exec ( `cp -fd /etc/localtime /tmp` , {
336- ignore_rc : false ,
337- return_stdout : true ,
338- trim_stdout : true
339- } )
340- . then ( ( ) => promise_utils . exec ( `yum clean all` , {
333+ async function do_yum_update ( ) {
334+ try {
335+ dbg . log0 ( 'UPGRADE: do_yum_update: Called' ) ;
336+ dbg . log0 ( 'UPGRADE: copying /etc/localtime to tmp' ) ;
337+ await promise_utils . exec ( `cp -fd /etc/localtime /tmp` , {
341338 ignore_rc : false ,
342339 return_stdout : true ,
343340 trim_stdout : true
344- } ) )
345- . then ( res => {
346- dbg . log0 ( 'fix_security_issues: yum clean' , res ) ;
347- } )
348- . then ( ( ) => promise_utils . exec ( `yum update -y` , {
341+ } ) ;
342+ dbg . log0 ( 'UPGRADE: calling yum clean all' ) ;
343+ const clean_res = await promise_utils . exec ( `yum clean all` , {
349344 ignore_rc : false ,
350345 return_stdout : true ,
351346 trim_stdout : true
352- } ) )
353- . then ( res => {
354- dbg . log0 ( 'fix_security_issues: yum update' , res ) ;
355- } )
356- . then ( ( ) => promise_utils . exec ( `yum clean all` , {
347+ } ) ;
348+ dbg . log0 ( 'UPGRADE: yum clean result:' , clean_res ) ;
349+ let update_retries = 3 ;
350+ while ( update_retries > 0 ) {
351+ try {
352+ dbg . log0 ( 'UPGRADE: calling yum update -y' ) ;
353+ const update_res = await promise_utils . exec ( `yum update -y` , {
354+ ignore_rc : false ,
355+ return_stdout : true ,
356+ trim_stdout : true
357+ } ) ;
358+ dbg . log0 ( 'UPGRADE: yum update result:' , update_res ) ;
359+ // no retires necessary
360+ update_retries = 0 ;
361+ } catch ( err ) {
362+ update_retries -= 1 ;
363+ if ( update_retries === 0 ) throw err ;
364+ dbg . error ( `yum update failed with error. retrying in 30 seconds` , err ) ;
365+ await P . delay ( 30000 ) ;
366+ }
367+ }
368+ await promise_utils . exec ( `yum clean all` , {
357369 ignore_rc : false ,
358370 return_stdout : true ,
359371 trim_stdout : true
360- } ) )
361- . then ( ( ) => {
362- dbg . log0 ( `Updated yum packages` ) ;
363- } )
364- . then ( ( ) => promise_utils . exec ( `cp -fd /tmp/localtime /etc` , {
372+ } ) ;
373+
374+ dbg . log0 ( `Updated yum packages` ) ;
375+
376+ await promise_utils . exec ( `cp -fd /tmp/localtime /etc` , {
365377 ignore_rc : false ,
366378 return_stdout : true ,
367379 trim_stdout : true
368- } ) )
369- . then ( ( ) => {
370- dbg . log0 ( 'fix_security_issues: Success' ) ;
371- } )
372- . catch ( function ( err ) {
373- dbg . error ( 'fix_security_issues: Failure' , err ) ;
374- throw err ;
375380 } ) ;
381+ } catch ( err ) {
382+ dbg . error ( 'do_yum_update: Failure' , err ) ;
383+ throw err ;
384+
385+ }
376386}
377387
378388
0 commit comments