Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:vizhestkov:salt-bundle-testing
venv-salt-minion.1
post_start_cleanup.sh
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File post_start_cleanup.sh of Package venv-salt-minion.1
#!/bin/sh # # This script performs a cleanup of the prev_env Salt Bundle environment # that is created during a Salt Bundle upgrade. # # In case the script is triggered having WAIT_IF_SALT_JOBS env defined # then it will wait until there is no active Salt jobs running on the system # to perform the cleanup of the old environment. # # The script is triggered automatically via different ways: # # 1. As part of the Salt Highstate (via services.salt-minion). # 2. By venv-salt-minion-postinstall.service, 60 seconds after a Salt Bundle upgrade. # 3. By spec file during package installation/upgrade/removal. # # Expected execution behavior: # # - If there is no old environment detected -> Do nothing. # - If an old environment is found: # a) If WAIT_IF_SALT_JOBS env is NOT present -> Perform the cleanup. # b) If WAIT_IF_SALT_JOBS env is present -> Wait until there are no # other Salt jobs running to perform the cleanup. # # NOTE: In transactional systems, nothing is done when not running in a transaction. # # CAUTION: Do not call this script within a Salt execution and passing # the WAIT_IF_SALT_JOBS env, as it will produce the script to # go into an infinite loop. # if builtin type -P transactional-update &> /dev/null && [ "$TRANSACTIONAL_UPDATE" != "true" ]; then # Do not clean previous environment on T-U systems when not in transaction exit 0 fi if [ -d "VENV_LOCATION_PLACEHOLDER/lib/prev_env" ] || [ -L "VENV_LOCATION_PLACEHOLDER/lib/PLACEHOLDER" ]; then while [ "${WAIT_IF_SALT_JOBS}" ]; do echo "Checking for active Salt jobs..." JOBS_RUNNING=$(venv-salt-call --local --output=json saltutil.running | grep '"jid":' | wc -l) if [ $JOBS_RUNNING -gt 0 ]; then echo "Found active Salt jobs! Waiting 10 seconds..." sleep 10 else echo "No active Salt Jobs! Cleaning up the old environment..." break fi done fi if [ -d "VENV_LOCATION_PLACEHOLDER/lib/prev_env" ]; then echo "Removing VENV_LOCATION_PLACEHOLDER/lib/prev_env" rm -r "VENV_LOCATION_PLACEHOLDER/lib/prev_env" || : fi if [ -L "VENV_LOCATION_PLACEHOLDER/lib/PLACEHOLDER" ]; then echo "Unlinking VENV_LOCATION_PLACEHOLDER/lib/PLACEHOLDER" unlink "VENV_LOCATION_PLACEHOLDER/lib/PLACEHOLDER" || : fi
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor