aboutsummaryrefslogtreecommitdiffstats
path: root/coin/provisioning/common
diff options
context:
space:
mode:
Diffstat (limited to 'coin/provisioning/common')
-rwxr-xr-xcoin/provisioning/common/linux/android_linux.sh7
-rwxr-xr-xcoin/provisioning/common/linux/version.sh6
-rwxr-xr-xcoin/provisioning/common/macos/InstallPKGFromURL.sh14
-rwxr-xr-xcoin/provisioning/common/macos/homebrew.sh17
-rw-r--r--coin/provisioning/common/macos/telegraf-coin.conf8
-rwxr-xr-xcoin/provisioning/common/macos/version.sh6
-rw-r--r--coin/provisioning/common/shared/requirements.txt2
-rw-r--r--coin/provisioning/common/shared/telegraf/telegraf_packages.sha256.txt10
-rwxr-xr-xcoin/provisioning/common/unix/DownloadURL.sh41
-rwxr-xr-xcoin/provisioning/common/unix/libclang.sh4
-rwxr-xr-xcoin/provisioning/common/unix/telegraf_install.sh2
-rw-r--r--coin/provisioning/common/windows/android.ps15
-rw-r--r--coin/provisioning/common/windows/install_telegraf.ps16
-rw-r--r--coin/provisioning/common/windows/version.ps16
14 files changed, 93 insertions, 41 deletions
diff --git a/coin/provisioning/common/linux/android_linux.sh b/coin/provisioning/common/linux/android_linux.sh
index 44bd2281..ca9110b8 100755
--- a/coin/provisioning/common/linux/android_linux.sh
+++ b/coin/provisioning/common/linux/android_linux.sh
@@ -37,6 +37,8 @@
# It also runs update for SDK API, latest SDK tools, latest platform-tools and build-tools version
+set -e
+
# shellcheck source=../unix/DownloadURL.sh
source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
# shellcheck source=../unix/check_and_set_proxy.sh
@@ -80,8 +82,11 @@ else
sudo chown -R qt:users "$targetFolder"
fi
-# Run the following command under `eval` or `sh -c` so that the shell properly splits it
+# Stop the sdkmanager from printing thousands of lines of #hashmarks.
+# Run the following command under `eval` or `sh -c` so that the shell properly splits it.
sdkmanager_no_progress_bar_cmd="tr '\r' '\n' | grep -v '^\[[ =]*\]'"
+# But don't let the pipeline hide sdkmanager failures.
+set -o pipefail
echo "Running SDK manager for platforms;$sdkApiLevel, platform-tools and build-tools;$sdkBuildToolsVersion."
# shellcheck disable=SC2031
diff --git a/coin/provisioning/common/linux/version.sh b/coin/provisioning/common/linux/version.sh
index 3e2a7f19..9e23a77e 100755
--- a/coin/provisioning/common/linux/version.sh
+++ b/coin/provisioning/common/linux/version.sh
@@ -41,3 +41,9 @@ echo "*********************************************"
echo "***** SW VERSIONS *****"
cat ~/versions.txt
echo "*********************************************"
+echo "*************** mount ***********************"
+mount
+echo "*********************************************"
+echo "*************** df **************************"
+df -hT
+echo "*********************************************"
diff --git a/coin/provisioning/common/macos/InstallPKGFromURL.sh b/coin/provisioning/common/macos/InstallPKGFromURL.sh
index 77ef128a..d9b55d3b 100755
--- a/coin/provisioning/common/macos/InstallPKGFromURL.sh
+++ b/coin/provisioning/common/macos/InstallPKGFromURL.sh
@@ -42,7 +42,9 @@ function InstallPKGFromURL {
targetDirectory=$4
echo "Creating temporary file"
- targetFile=$(mktemp "$TMPDIR$(uuidgen).pkg")
+ package_basename=$(echo "$url" | sed 's|^.*/||')
+ tmpdir=$(mktemp -d)
+ targetFile="$tmpdir/$package_basename"
echo "Downloading PKG from primary URL '$url'"
curl --fail -L --retry 5 --retry-delay 5 -o "$targetFile" "$url" || (
echo "Failed to download '$url' multiple times"
@@ -50,10 +52,12 @@ function InstallPKGFromURL {
curl --fail -L --retry 5 --retry-delay 5 -o "$targetFile" "$url_alt"
)
echo "Checking SHA1 on PKG '$targetFile'"
- echo "$expectedSha1 *$targetFile" > "$targetFile.sha1"
- /usr/bin/shasum --check "$targetFile.sha1"
+ echo "$expectedSha1 *$targetFile" > "$targetFile".sha1
+ /usr/bin/shasum --check "$targetFile".sha1
echo "Run installer on PKG"
sudo installer -package "$targetFile" -target "$targetDirectory"
- echo "Removing file '$targetFile'"
- rm "$targetFile"
+
+ rm -f "$targetFile".sha1
+ rm -f "$targetFile"
+ rmdir "$tmpdir"
}
diff --git a/coin/provisioning/common/macos/homebrew.sh b/coin/provisioning/common/macos/homebrew.sh
index 715477c0..66463c44 100755
--- a/coin/provisioning/common/macos/homebrew.sh
+++ b/coin/provisioning/common/macos/homebrew.sh
@@ -1,12 +1,21 @@
-#!/usr/bin/env bash
+#!/bin/sh
# Will install homebrew package manager for macOS.
# WARNING: Requires commandlinetools
-# TODO audit and cache this file locally, see QTQAINFRA-3134
-curl -L -o /tmp/homebrew_install https://raw.githubusercontent.com/Homebrew/install/master/install
+set -e
+
+. "$(dirname "$0")"/../../common/unix/DownloadURL.sh
+
+
+DownloadURL \
+ http://ci-files01-hki.intra.qt.io/input/mac/homebrew-install.c744a716f9845988d01e6e238eee7117b8c366c9.rb \
+ https://raw.githubusercontent.com/Homebrew/install/c744a716f9845988d01e6e238eee7117b8c366c9/install \
+ b9782cc0b550229de77b429b56ffce04157e60486ab9df00461ccf3dad565b0a \
+ /tmp/homebrew_install
/usr/bin/ruby /tmp/homebrew_install </dev/null
-brew update
+# No need to manually do `brew update`, the homebrew installer script does it.
+### brew update
diff --git a/coin/provisioning/common/macos/telegraf-coin.conf b/coin/provisioning/common/macos/telegraf-coin.conf
index 24440a05..006de88c 100644
--- a/coin/provisioning/common/macos/telegraf-coin.conf
+++ b/coin/provisioning/common/macos/telegraf-coin.conf
@@ -24,7 +24,13 @@
# collect_cpu_time = false
# report_active = false
[[inputs.disk]]
- ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]
+ # macOS needs two extra filesystem exceptions:
+ # + cd9660: This is a read-only filesystem, and always 100% full
+ # + msdos: Sometimes at boot a short-lived unique mount of type "msdos"
+ # is performed, at the random directory
+ # /Volumes/firmwaresyncd.XXXXXX.
+ # The uniqueness of the path bloats the cardinality of InfluxDB.
+ ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs", "cd9660", "msdos"]
#[[inputs.diskio]] # linux-only
[[inputs.kernel]]
[[inputs.mem]]
diff --git a/coin/provisioning/common/macos/version.sh b/coin/provisioning/common/macos/version.sh
index 3e2a7f19..e57fb60b 100755
--- a/coin/provisioning/common/macos/version.sh
+++ b/coin/provisioning/common/macos/version.sh
@@ -41,3 +41,9 @@ echo "*********************************************"
echo "***** SW VERSIONS *****"
cat ~/versions.txt
echo "*********************************************"
+echo "*************** mount ***********************"
+mount
+echo "*********************************************"
+echo "*************** df **************************"
+df -h
+echo "*********************************************"
diff --git a/coin/provisioning/common/shared/requirements.txt b/coin/provisioning/common/shared/requirements.txt
index 60239142..7285caca 100644
--- a/coin/provisioning/common/shared/requirements.txt
+++ b/coin/provisioning/common/shared/requirements.txt
@@ -9,7 +9,7 @@ argh==0.26.2
click==6.7
coloredlogs==10.0
humanfriendly==4.15.1
-Jinja2==2.10
+Jinja2==2.10.3
MarkupSafe==1.0
path.py==11.0.1
pathtools==0.1.2
diff --git a/coin/provisioning/common/shared/telegraf/telegraf_packages.sha256.txt b/coin/provisioning/common/shared/telegraf/telegraf_packages.sha256.txt
index 7d1cdada..28304114 100644
--- a/coin/provisioning/common/shared/telegraf/telegraf_packages.sha256.txt
+++ b/coin/provisioning/common/shared/telegraf/telegraf_packages.sha256.txt
@@ -1,6 +1,4 @@
-https://dl.influxdata.com/telegraf/releases/telegraf-1.12.1_windows_i386.zip d2dea67a28fd7a9e21395d14f0b7ce1b6413e85cc9ffd89cc7ff8f35e8af5837
-https://dl.influxdata.com/telegraf/releases/telegraf-1.12.1_windows_amd64.zip 88d8c8146b561f43726e61688b42d0b5ab88fc22607b94df5a2c8245bbb27e29
-https://dl.influxdata.com/telegraf/releases/telegraf-1.12.1_darwin_amd64.tar.gz 58a2b294c1b6408c396b5526719cf7cad557f7075fed10ff0b2a74141ea2d629
-https://dl.influxdata.com/telegraf/releases/telegraf-1.12.1_linux_amd64.tar.gz 070a76800d1a5f33413b8948286f75caa55ebd924f6fb6996a753b9979799ef5
-https://dl.influxdata.com/telegraf/releases/telegraf-1.12.1_linux_i386.tar.gz 964077b6846708f579a100d7ea6090e2d8350ace75ec735d539bc452bc551038
-https://dl.influxdata.com/telegraf/releases/telegraf-1.12.1-static_linux_amd64.tar.gz bb03814c99c037ce0758e3884660910f2f6fd78f3d49a8e1ef531693b3cfe25d
+https://dl.influxdata.com/telegraf/releases/telegraf-1.12.6_darwin_amd64.tar.gz 2bc056e1ad38af2ba95d2cb1d43b513cc611fdd3b851b2ff5e09991d52b01253
+https://dl.influxdata.com/telegraf/releases/telegraf-1.12.6_linux_amd64.tar.gz b33cf0f5935a5c225ab0de69db1e6b249d581f3213313de62a8de928aedadbec
+https://dl.influxdata.com/telegraf/releases/telegraf-1.12.6_windows_amd64.zip 5d025d85070e8c180c443580afa8a27421a7bbcf14b5044894e9f3298d0ce97a
+https://dl.influxdata.com/telegraf/releases/telegraf-1.12.6_windows_i386.zip 5178a0bdaab448c2ef965b0e36f835849cea731ccd87c4a4527f0f05fbbdf271
diff --git a/coin/provisioning/common/unix/DownloadURL.sh b/coin/provisioning/common/unix/DownloadURL.sh
index 5bafc33d..1d48a565 100755
--- a/coin/provisioning/common/unix/DownloadURL.sh
+++ b/coin/provisioning/common/unix/DownloadURL.sh
@@ -39,10 +39,12 @@
# based on the SHA length). Target filename should also be given.
############################ BOILERPLATE ###############################
-command -v sha1sum >/dev/null || alias sha1sum='shasum -a 1'
-command -v sha256sum >/dev/null || alias sha256sum='shasum -a 256'
-command -v sha384sum >/dev/null || alias sha384sum='shasum -a 384'
-command -v sha512sum >/dev/null || alias sha512sum='shasum -a 512'
+
+command -v sha1sum >/dev/null || sha1sum () { shasum -a 1 "$@" ; }
+command -v sha256sum >/dev/null || sha256sum () { shasum -a 256 "$@" ; }
+command -v sha384sum >/dev/null || sha384sum () { shasum -a 384 "$@" ; }
+command -v sha512sum >/dev/null || sha512sum () { shasum -a 512 "$@" ; }
+
########################################################################
@@ -98,20 +100,27 @@ DownloadURL () {
targetFile=$4
fi
- if VerifyHash "$targetFile" "$expectedHash"
+ # If a non-empty file already exists
+ if [ -s "$targetFile" ]
then
- echo "Skipping download, found and validated existing file: $targetFile"
- else
- echo "Downloading from primary URL: $url"
- if ! Download "$url" "$targetFile"
+ if VerifyHash "$targetFile" "$expectedHash"
+ then
+ echo "Skipping download, found and validated existing file: $targetFile"
+ return
+ else
+ echo "WARNING: Non-empty but different file found at destination; will re-download and overwrite file: $targetFile"
+ fi
+ fi
+
+ echo "Downloading from primary URL: $url"
+ if ! Download "$url" "$targetFile"
+ then
+ echo "FAIL! to download, trying alternative URL: $url2" 1>&2
+ if ! Download "$url2" "$targetFile"
then
- echo "FAIL! to download, trying alternative URL: $url2" 1>&2
- if ! Download "$url2" "$targetFile"
- then
- echo 'FAIL! to download even from alternative URL' 1>&2
- return 1
- fi
+ echo 'FAIL! to download even from alternative URL' 1>&2
+ return 1
fi
- VerifyHash "$targetFile" "$expectedHash"
fi
+ VerifyHash "$targetFile" "$expectedHash"
}
diff --git a/coin/provisioning/common/unix/libclang.sh b/coin/provisioning/common/unix/libclang.sh
index a9d1cc49..6fa6c040 100755
--- a/coin/provisioning/common/unix/libclang.sh
+++ b/coin/provisioning/common/unix/libclang.sh
@@ -65,10 +65,10 @@ zip="/tmp/libclang.7z"
destination="/usr/local/libclang-$version"
DownloadURL $url_cached $url $sha1 $zip
-7z x $zip -o/tmp/
+sudo 7z x $zip -o/usr/local/
+sudo mv /usr/local/libclang "$destination"
rm -rf $zip
-sudo mv /tmp/libclang "$destination"
echo "export LLVM_INSTALL_DIR=$destination" >> ~/.bash_profile
echo "libClang = $version" >> ~/versions.txt
diff --git a/coin/provisioning/common/unix/telegraf_install.sh b/coin/provisioning/common/unix/telegraf_install.sh
index 1412650e..b2dd244e 100755
--- a/coin/provisioning/common/unix/telegraf_install.sh
+++ b/coin/provisioning/common/unix/telegraf_install.sh
@@ -73,7 +73,7 @@ $CMD_INSTALL -m 755 "$PROVISIONING_DIR"/common/shared/telegraf/telegraf-ioping.
[ x"$PROVISIONING_OS" = xmacos ] && os=darwin || os=linux
[ x"$PROVISIONING_ARCH" = xx86 ] && arch=i386 || arch=amd64
-package_filename=telegraf-1.12.1_${os}_${arch}.tar.gz
+package_filename=telegraf-1.12.6_${os}_${arch}.tar.gz
package_sha256_list="$PROVISIONING_DIR"/common/shared/telegraf/telegraf_packages.sha256.txt
package_sha256=$(sed -n "s/.*$package_filename *//p" "$package_sha256_list")
diff --git a/coin/provisioning/common/windows/android.ps1 b/coin/provisioning/common/windows/android.ps1
index 537e14a2..2cf18cdc 100644
--- a/coin/provisioning/common/windows/android.ps1
+++ b/coin/provisioning/common/windows/android.ps1
@@ -95,9 +95,12 @@ Out-File -FilePath C:\Utils\Android\licenses\android-sdk-license -Encoding utf8
# Get a PATH where Java's path is defined from previous provisioning
[Environment]::SetEnvironmentVariable("PATH", [Environment]::GetEnvironmentVariable("PATH", "Machine"), "Process")
+# Attempt to catch all errors of sdkmanager.bat, even when hidden behind a pipeline.
+$ErrorActionPreference = "Stop"
+
cd $toolsFolder\bin\
$sdkmanager_args += "platforms;$sdkApiLevel", "platform-tools", "build-tools;$sdkBuildToolsVersion"
-$command = 'for($i=0;$i -lt 6;$i++) { $response += "y`n"}; $response | .\sdkmanager.bat @sdkmanager_args'
+$command = 'for($i=0;$i -lt 6;$i++) { $response += "y`n"}; $response | .\sdkmanager.bat @sdkmanager_args | Out-Null'
Invoke-Expression $command
$command = 'for($i=0;$i -lt 6;$i++) { $response += "y`n"}; $response | .\sdkmanager.bat --licenses'
iex $command
diff --git a/coin/provisioning/common/windows/install_telegraf.ps1 b/coin/provisioning/common/windows/install_telegraf.ps1
index fee550b1..0a64cfd4 100644
--- a/coin/provisioning/common/windows/install_telegraf.ps1
+++ b/coin/provisioning/common/windows/install_telegraf.ps1
@@ -37,14 +37,14 @@
# Install a specific version of Telegraf
# https://github.com/influxdata/telegraf/releases
-$version = "1.12.1"
+$version = "1.12.6"
if (Is64BitWinHost) {
$arch = "amd64"
- $sha256 = "88d8c8146b561f43726e61688b42d0b5ab88fc22607b94df5a2c8245bbb27e29"
+ $sha256 = "5d025d85070e8c180c443580afa8a27421a7bbcf14b5044894e9f3298d0ce97a"
} else {
$arch = "i386"
- $sha256 = "d2dea67a28fd7a9e21395d14f0b7ce1b6413e85cc9ffd89cc7ff8f35e8af5837"
+ $sha256 = "5178a0bdaab448c2ef965b0e36f835849cea731ccd87c4a4527f0f05fbbdf271"
}
$filename = "telegraf-" + $version + "_windows_" + $arch + ".zip"
diff --git a/coin/provisioning/common/windows/version.ps1 b/coin/provisioning/common/windows/version.ps1
new file mode 100644
index 00000000..7f701f63
--- /dev/null
+++ b/coin/provisioning/common/windows/version.ps1
@@ -0,0 +1,6 @@
+Write-Host '******************** SW VERSIONS ********************'
+type ~/versions.txt
+Write-Host '*****************************************************'
+Write-Host '******************** Get-PSDrive ********************'
+Get-PSDrive
+Write-Host '*****************************************************'