diff --git a/xCAT-genesis-scripts/usr/bin/getdestiny b/xCAT-genesis-scripts/usr/bin/getdestiny index 9fd2685da..4838cb19c 100755 --- a/xCAT-genesis-scripts/usr/bin/getdestiny +++ b/xCAT-genesis-scripts/usr/bin/getdestiny @@ -45,7 +45,16 @@ done temporary_dir=$(mktemp -d "${TMPDIR:-/tmp}/getdestiny.XXXXXX") || exit 1 request_file=$temporary_dir/request.xml response_file=$temporary_dir/response.xml -trap 'rm -rf -- "$temporary_dir"; [[ -z $metadata_temporary ]] || rm -f -- "$metadata_temporary"' EXIT HUP INT TERM + +cleanup() { + rm -rf -- "$temporary_dir" + [[ -z $metadata_temporary ]] || rm -f -- "$metadata_temporary" +} + +trap cleanup EXIT +trap 'exit 129' HUP +trap 'exit 130' INT +trap 'exit 143' TERM printf '%s\n' \ '' \ diff --git a/xCAT-genesis-scripts/usr/bin/nextdestiny b/xCAT-genesis-scripts/usr/bin/nextdestiny index de523290b..292ca8843 100755 --- a/xCAT-genesis-scripts/usr/bin/nextdestiny +++ b/xCAT-genesis-scripts/usr/bin/nextdestiny @@ -45,7 +45,16 @@ done temporary_dir=$(mktemp -d "${TMPDIR:-/tmp}/nextdestiny.XXXXXX") || exit 1 request_file=$temporary_dir/request.xml response_file=$temporary_dir/response.xml -trap 'rm -rf -- "$temporary_dir"; [[ -z $metadata_temporary ]] || rm -f -- "$metadata_temporary"' EXIT HUP INT TERM + +cleanup() { + rm -rf -- "$temporary_dir" + [[ -z $metadata_temporary ]] || rm -f -- "$metadata_temporary" +} + +trap cleanup EXIT +trap 'exit 129' HUP +trap 'exit 130' INT +trap 'exit 143' TERM printf '%s\n' \ '' \ @@ -62,20 +71,17 @@ request_destiny() { openssl s_client -connect "$destination" -quiet \ 2>/dev/null <"$request_file" >"$response_file" fi - [[ -s $response_file ]] && \ - { grep -q '' "$response_file" || grep -q '' "$response_file"; } + [[ -s $response_file ]] } -while ! request_destiny; do - if ((once)); then - exit 1 - fi - for ((timer = 60; timer > 0; timer--)); do - printf 'Retrying in %s seconds \r' "$timer" >&2 - sleep 1 - done - printf '%*s\r' 48 '' >&2 -done +if ((once)); then + request_destiny \ + && { grep -q '' "$response_file" \ + || grep -q '' "$response_file"; } \ + || exit 1 +else + request_destiny || true +fi extract_element() { local element=$1