summaryrefslogtreecommitdiffstats
path: root/xci
diff options
context:
space:
mode:
authorMarkos Chandras <mchandras@suse.de>2017-10-09 11:18:41 +0100
committerMarkos Chandras <mchandras@suse.de>2017-10-09 13:17:59 +0100
commit19f594e3a1427536555149efb0c8922518468dc1 (patch)
tree9a5b95570a267c1c0d41082b953efbff1de85f9d /xci
parent5ea389f23fb6053855e4840baf6c7c8e0f4b8f99 (diff)
xci: scripts: start-new-vm.sh: Do not run multiple package manager processes
Package managers get upset if multiple instances run in parallel since the last one will fail to aquire some sort of DB locking and fail. As such, lets fix that and only run one package manager process at any time. Change-Id: I4ab13f61eee861ef70cb4115403d0e239ec14308 Signed-off-by: Markos Chandras <mchandras@suse.de>
Diffstat (limited to 'xci')
-rwxr-xr-xxci/scripts/vm/start-new-vm.sh36
1 files changed, 29 insertions, 7 deletions
diff --git a/xci/scripts/vm/start-new-vm.sh b/xci/scripts/vm/start-new-vm.sh
index 5112cf40..23d166d0 100755
--- a/xci/scripts/vm/start-new-vm.sh
+++ b/xci/scripts/vm/start-new-vm.sh
@@ -45,6 +45,22 @@ usage() {
"""
}
+wait_for_pkg_mgr() {
+ local pkg_mgr=$1
+ local _retries=30
+ while [[ $_retries -gt 0 ]]; do
+ if pgrep -a $pkg_mgr &> /dev/null; then
+ echo "There is another $pkg_mgr process running... ($_retries retries left)"
+ sleep 30
+ (( _retries = _retries - 1 ))
+ else
+ return 0
+ fi
+ done
+ echo "$pkg_mgr still running... Maybe stuck?"
+ exit 1
+}
+
update_clean_vm_files() {
local opnfv_url="http://artifacts.opnfv.org/releng/xci/images"
local vm_cache=${XCI_CACHE_DIR}/clean_vm/images
@@ -108,13 +124,19 @@ if ! sudo -n "true"; then
exit 1
fi
case ${ID,,} in
- *suse) sudo zypper -q -n in virt-manager qemu-kvm qemu-tools libvirt-daemon docker libvirt-client libvirt-daemon-driver-qemu iptables ebtables dnsmasq
- ;;
- centos) sudo yum install -q -y epel-release
- sudo yum install -q -y in virt-manager qemu-kvm qemu-kvm-tools qemu-img libvirt-daemon-kvm docker iptables ebtables dnsmasq
- ;;
- ubuntu) sudo apt-get install -y -q=3 virt-manager qemu-kvm libvirt-bin qemu-utils docker.io docker iptables ebtables dnsmasq
- ;;
+ *suse)
+ wait_for_pkg_mgr zypper
+ sudo zypper -q -n in virt-manager qemu-kvm qemu-tools libvirt-daemon docker libvirt-client libvirt-daemon-driver-qemu iptables ebtables dnsmasq
+ ;;
+ centos)
+ wait_for_pkg_mgr yum
+ sudo yum install -q -y epel-release
+ sudo yum install -q -y in virt-manager qemu-kvm qemu-kvm-tools qemu-img libvirt-daemon-kvm docker iptables ebtables dnsmasq
+ ;;
+ ubuntu)
+ wait_for_pkg_mgr apt-get
+ sudo apt-get install -y -q=3 virt-manager qemu-kvm libvirt-bin qemu-utils docker.io docker iptables ebtables dnsmasq
+ ;;
esac
echo "Ensuring libvirt and docker services are running..."