From 43cb32ab1c5466984a9701710ed154faa3f85b9f Mon Sep 17 00:00:00 2001 From: Zach Loafman Date: Fri, 26 Feb 2016 13:38:38 -0800 Subject: [PATCH] configure-vm.sh: Only "apt-get update" when we need to install a package Factors out package install and checks for package before "apt-get update" Also fix another "echo sleep 5". Fixes #22071 --- cluster/gce/configure-vm.sh | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/cluster/gce/configure-vm.sh b/cluster/gce/configure-vm.sh index 60a6de94fb..7f05f18bec 100755 --- a/cluster/gce/configure-vm.sh +++ b/cluster/gce/configure-vm.sh @@ -165,6 +165,21 @@ validate-hash() { } apt-get-install() { + local -r packages=( $@ ) + installed=true + for package in "${packages[@]}"; do + if ! dpkg -s "${package}" &>/dev/null; then + installed=false + break + fi + done + if [[ "${installed}" == "true" ]]; then + echo "== ${packages[@]} already installed, skipped apt-get install ${packages[@]} ==" + return + fi + + apt-get-update + # Forcibly install packages (options borrowed from Salt logs). until apt-get -q -y -o DPkg::Options::=--force-confold -o DPkg::Options::=--force-confdef install $@; do echo "== install of packages $@ failed, retrying ==" @@ -176,7 +191,7 @@ apt-get-update() { echo "== Refreshing package database ==" until apt-get update; do echo "== apt-get update failed, retrying ==" - echo sleep 5 + sleep 5 done } @@ -795,7 +810,6 @@ if [[ -z "${is_push}" ]]; then set-broken-motd ensure-basic-networking fix-apt-sources - apt-get-update ensure-install-dir ensure-packages set-kube-env