add first bits of upgrade test script
authorMicah Anderson <micah@riseup.net>
Tue, 20 Sep 2016 18:53:03 +0000 (14:53 -0400)
committerMicah Anderson <micah@riseup.net>
Tue, 20 Sep 2016 18:53:03 +0000 (14:53 -0400)
Leapfile
bin/lut.sh [new file with mode: 0755]

index 6dbb9dd..3c5b05c 100644 (file)
--- a/Leapfile
+++ b/Leapfile
@@ -1,2 +1,2 @@
-@platform_directory_path = "../../../../tmp/platform_lut"
+@platform_directory_path = "/tmp/lut/leap_platform"
 # see https://leap.se/en/docs/platform/config for more options
\ No newline at end of file
diff --git a/bin/lut.sh b/bin/lut.sh
new file mode 100755 (executable)
index 0000000..4a2d436
--- /dev/null
@@ -0,0 +1,104 @@
+#!/bin/sh -x
+# This script lives in the lut provider and should be run from there
+
+provider_dir=`pwd`
+platform_git=https://leap.se/git/leap_platform
+cli_git=https://leap.se/git/leap_cli
+from_version=$1
+to_version=$2
+#workdir=`mktemp -d`
+workdir='/tmp/lut'
+platform_link="${workdir}/leap_platform"
+platform_from=${workdir}/platform_$1
+platform_to=${workdir}/platform_$1
+cli_from=${workdir}/cli_master
+cli_to=${workdir}/cli_develop
+
+
+# If you hit control-c or kill the process, stop the VMs
+killed () {
+
+    leap vm stop upgrade
+    echo "VMs stopped, but not removed. Will still incur charges, please remove them if you are not using them anymore."
+}
+
+trap "{ killed ; }" TERM INT ABRT QUIT
+
+help () {
+    cat <<EOF
+Usage lut <from version> <to version>
+
+This script will setup leap platform, leap cli, for the versions required and
+perform an upgrade test using leap vm credentials stored in cloud.json.
+
+Note: the cloud.json file is encrypted with git-crypt. You need to decrypt it
+first, just do once: apt install git-crypt and then git-crypt unlock.
+
+EOF
+}
+
+check_version () {
+    git ls-remote --refs --heads --tags --exit-code $1 $2
+    if [ $? -ne 0 ]; then
+        echo "unknown <version>: $2 for $1, please use a tag from git tag -l, or specify a branch"
+        cleanup 2
+    fi
+}
+
+get_platform () {
+    echo "Setup platform, version $2"
+    git clone $1 ${workdir}/platform_${2} --branch $2
+    if [ $? -ne 0 ]; then
+        echo "Setup failed"
+        cleanup 2
+    fi
+}
+
+get_cli () {
+    cli_dir=${workdir}/cli_$2
+    echo "Setup leap_cli"
+    git clone $cli_git $cli_dir --branch $2
+    cd $cli_dir
+    rake build
+    bundle --path vendor/bundle
+}
+
+switch () {
+    rm -f $platform_link
+    ln -s platform_${1} $platform_link
+}
+
+cleanup () {
+#    leap vm stop upgrade
+    #rm -rf $workdir
+    exit $1
+}
+
+case "$1" in
+    -h | -help | --help )
+       help
+       exit
+       ;;
+esac
+
+if [ $# -ne 2 ]; then
+    help
+else
+    check_version $platform_git $from_version
+    check_version $platform_git $to_version
+    get_platform $platform_git $from_version
+    get_platform $platform_git $to_version
+    get_cli $cli_git master
+    get_cli $cli_git develop
+    cd $provider_dir
+    ln -s platform_$from_version $platform_link
+
+do stuff
+   
+    switch $to_version
+
+do new stuff
+   
+    cleanup 0
+fi
+