Move to a common lock-file directory
In a couple of places we use flock for critical sections, but we leave lockfiles around in various locations which can be confusing. Introduce DIB_LOCKFILES global (under ~/.cache/dib/lockfiles) and write lockfiles in there. Fix up removal of the lockfile in the yum path; we just want to make sure we cleanup the .rpmmacros file, but we don't need to remove the lockfile as well. Co-Authored-By: Andreas Florath <andreas@florath.net> Change-Id: Ie810b2836be521325afe923708d046112e1e1e20
This commit is contained in:
parent
a0045985f2
commit
b25d0337b8
@ -29,7 +29,7 @@ DIB_CLOUD_IMAGES=${DIB_CLOUD_IMAGES:-http://cdimage.ubuntu.com/ubuntu-core/relea
|
||||
BASE_IMAGE_FILE=${BASE_IMAGE_FILE:-ubuntu-core-$numeric_release-core-$ARCH.tar.gz}
|
||||
SHA256SUMS=${SHA256SUMS:-$DIB_CLOUD_IMAGES/SHA256SUMS}
|
||||
CACHED_FILE=$DIB_IMAGE_CACHE/$BASE_IMAGE_FILE
|
||||
CACHED_FILE_LOCK=$DIB_IMAGE_CACHE/$BASE_IMAGE_FILE.lock
|
||||
CACHED_FILE_LOCK=$DIB_LOCKFILES/$BASE_IMAGE_FILE.lock
|
||||
CACHED_SUMS=$DIB_IMAGE_CACHE/SHA256SUMS.ubuntu-core.$DIB_RELEASE.$ARCH
|
||||
|
||||
function get_ubuntu_tarball() {
|
||||
|
@ -17,7 +17,7 @@ DIB_RELEASE=${DIB_RELEASE:-trusty}
|
||||
BASE_IMAGE_FILE=${BASE_IMAGE_FILE:-$DIB_RELEASE-server-cloudimg-$ARCH-root.tar.gz}
|
||||
SHA256SUMS=${SHA256SUMS:-https://${DIB_CLOUD_IMAGES##http?(s)://}/$DIB_RELEASE/current/SHA256SUMS}
|
||||
CACHED_FILE=$DIB_IMAGE_CACHE/$BASE_IMAGE_FILE
|
||||
CACHED_FILE_LOCK=$DIB_IMAGE_CACHE/$BASE_IMAGE_FILE.lock
|
||||
CACHED_FILE_LOCK=$DIB_LOCKFILES/$BASE_IMAGE_FILE.lock
|
||||
CACHED_SUMS=$DIB_IMAGE_CACHE/SHA256SUMS.ubuntu.$DIB_RELEASE.$ARCH
|
||||
|
||||
function get_ubuntu_tarball() {
|
||||
|
@ -201,14 +201,14 @@ function _install_pkg_manager {
|
||||
--installroot $TARGET_ROOT \
|
||||
install $@ ${_lang_pack} ${_extra_pkgs} && rc=$? || rc=$?
|
||||
|
||||
# We modified the base system - make sure we clean up always!
|
||||
rm $HOME/.rpmmacros.dib.lock
|
||||
# Note we've modified the base system's .rpmmacros. Ensure we
|
||||
# clean it up *always*
|
||||
# sed makes it easy to remove last line, but not last n lines...
|
||||
sed -i '$ d' $HOME/.rpmmacros; sed -i '$ d' $HOME/.rpmmacros;
|
||||
if [ $rc != 0 ]; then
|
||||
die "Initial yum install to chroot failed! Can not continue."
|
||||
fi
|
||||
) 9>$HOME/.rpmmacros.dib.lock
|
||||
) 9>$DIB_LOCKFILES/.rpmmacros.dib.lock
|
||||
|
||||
# Set gpg path back because subsequent actions will take place in
|
||||
# the chroot
|
||||
|
@ -166,9 +166,16 @@ done
|
||||
|
||||
export DIB_DEBUG_TRACE
|
||||
|
||||
# TODO: namespace this under ~/.cache/dib/ for consistency
|
||||
export DIB_IMAGE_CACHE=${DIB_IMAGE_CACHE:-~/.cache/image-create}
|
||||
mkdir -p $DIB_IMAGE_CACHE
|
||||
|
||||
# We have a couple of critical sections (touching parts of the host
|
||||
# system or download images to common cache) that we use flock around.
|
||||
# Use this directory for lockfiles.
|
||||
export DIB_LOCKFILES=${DIB_LOCKFILES:-~/.cache/dib/lockfiles}
|
||||
mkdir -p $DIB_LOCKFILES
|
||||
|
||||
if [ "$CLEAR_ENV" = "1" -a "$HOME" != "" ]; then
|
||||
echo "Re-execing to clear environment."
|
||||
echo "(note this will prevent much of the local_config element from working)"
|
||||
|
Loading…
Reference in New Issue
Block a user