Merge lp:~sseman/juju-ci-tools/update-client-server-script into lp:juju-ci-tools

Proposed by Seman
Status: Merged
Merged at revision: 1112
Proposed branch: lp:~sseman/juju-ci-tools/update-client-server-script
Merge into: lp:juju-ci-tools
Diff against target: 229 lines (+70/-85)
3 files modified
run-client-server-test-remote.bash (+26/-14)
run-client-server-test.bash (+22/-61)
run-win-client-server-remote.bash (+22/-10)
To merge this branch: bzr merge lp:~sseman/juju-ci-tools/update-client-server-script
Reviewer Review Type Date Requested Status
Curtis Hovey (community) code Approve
Review via email: mp+272060@code.launchpad.net

Description of the change

This branch removes the following steps from the client-server test:
  1. Copy the old and candidate Juju from S3 to local files.
  2. Copy the old and candidate Juju from local files to OS X and Windows machines.

Since we already created script that copies the old and candidate Juju directly to OS X and Windows machines before running the client-server test, there is no need to copy these files every time we run the test.

To post a comment you must log in.
Revision history for this message
Curtis Hovey (sinzui) wrote :

Thank you.

review: Approve (code)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'run-client-server-test-remote.bash'
--- run-client-server-test-remote.bash 2015-09-04 17:49:43 +0000
+++ run-client-server-test-remote.bash 2015-09-23 06:44:38 +0000
@@ -5,15 +5,22 @@
5export JUJU_REPOSITORY=$HOME/repository5export JUJU_REPOSITORY=$HOME/repository
6export SCRIPT=$HOME/juju-ci-tools6export SCRIPT=$HOME/juju-ci-tools
7export PATH=$HOME/juju-ci-tools:$PATH7export PATH=$HOME/juju-ci-tools:$PATH
8set -x
9usage() {8usage() {
10 echo "usage: $0 server client [--agent-stream stream | --agent-url url]"9 echo "usage: $0 candidate-version old-juju-version new-to-old [--agent-stream stream | --agent-url url]"
11 exit 110 exit 1
12}11}
13test $# -ge 2 || usage12test $# -ge 3 || usage
14server="$1"13candidate_version="$1"
15client="$2"14old_juju_version="$2"
16shift 215new_to_old="$3"
16shift 3
17
18set -x
19# Extract the client and the server.
20mkdir candidate
21mkdir old-juju
22tar zxf $HOME/candidate/osx/juju-$candidate_version-osx.tar.gz -C candidate
23tar zxf $HOME/old-juju/osx/juju-$old_juju_version-osx.tar.gz -C old-juju
1724
18# Create ssh home.25# Create ssh home.
19ssh_home="/tmp/sshhome"26ssh_home="/tmp/sshhome"
@@ -22,14 +29,19 @@
22cp $JUJU_HOME/staging-juju-rsa.pub $ssh_home/.ssh/id_rsa.pub29cp $JUJU_HOME/staging-juju-rsa.pub $ssh_home/.ssh/id_rsa.pub
23export HOME=$ssh_home30export HOME=$ssh_home
2431
25# Extract the client and the server.32
26tar zxf $server -C server33if [[ "$new_to_old" == "true" ]]; then
27tar zxf $client -C client34 server=$(find candidate -name juju)
28server_juju=$(find server -name juju)35 client=$(find old-juju -name juju)
29client_juju=$(find client -name juju)36else
37 server=$(find old-juju -name juju)
38 client=$(find candidate -name juju)
39fi
40echo "Server: " `$server --version`
41echo "Client: " `$client --version`
3042
31mkdir logs43mkdir logs
32env=compatibility-control44env=compatibility-control
33~/Bin/juju destroy-environment --force -y $env || true45/Users/jenkins/Bin/juju destroy-environment --force -y $env || true
34$SCRIPT/assess_heterogeneous_control.py $server_juju $client_juju \46$SCRIPT/assess_heterogeneous_control.py $server $client \
35 test-reliability-aws $env logs "$@"47 test-reliability-aws $env logs "$@"
3648
=== modified file 'run-client-server-test.bash'
--- run-client-server-test.bash 2015-09-08 17:12:47 +0000
+++ run-client-server-test.bash 2015-09-23 06:44:38 +0000
@@ -4,85 +4,52 @@
4export PATH=$HOME/workspace-runner:$PATH4export PATH=$HOME/workspace-runner:$PATH
55
6usage() {6usage() {
7 echo "usage: $0 old-version candidate-version new-to-old client-os revision-build log-dir"7 echo "usage: $0 old-version candidate-version new-to-old client-os log-dir"
8 exit 18 exit 1
9}9}
10test $# -eq 6 || usage10test $# -eq 5 || usage
11old_version="$1"11old_version="$1"
12candidate_version="$2"12candidate_version="$2"
13new_to_old="$3"13new_to_old="$3"
14client_os="$4"14client_os="$4"
15revision_build="$5"15log_dir="$5"
16log_dir="$6"
1716
18set -x17set -x
18
19if [[ "$new_to_old" == "true" ]]; then
20 echo "Using weekly streams for unreleased version"
21 agent_arg="--agent-url http://juju-dist.s3.amazonaws.com/weekly/tools"
22else
23 echo "Using official proposed (or released) streams"
24 agent_arg="--agent-stream proposed"
25fi
26
19if [[ "$client_os" == "ubuntu" ]]; then27if [[ "$client_os" == "ubuntu" ]]; then
20 old_juju=$(find $HOME/old-juju/$old_version -name juju)28 server=$(find $HOME/old-juju/$old_version -name juju)
21 candidate_juju=$(find $HOME/candidate/$candidate_version -name juju)29 client=$(find $HOME/candidate/$candidate_version -name juju)
30 if [[ "$new_to_old" == "true" ]]; then
31 client=$(find $HOME/old-juju/$old_version -name juju)
32 server=$(find $HOME/candidate/$candidate_version -name juju)
33 fi
34 echo "Server: " `$server --version`
35 echo "Client: " `$client --version`
22elif [[ "$client_os" == "osx" ]]; then36elif [[ "$client_os" == "osx" ]]; then
23 package=juju-$candidate_version-osx.tar.gz
24 build_dir="build-osx-client"
25 old_package=juju-$old_version-osx.tar.gz
26 archive_dir="osx"
27 user_at_host="jenkins@osx-slave.vapour.ws"37 user_at_host="jenkins@osx-slave.vapour.ws"
28 remote_script="run-client-server-test-remote.bash"38 remote_script="run-client-server-test-remote.bash"
29elif [[ "$client_os" == "windows" ]]; then39elif [[ "$client_os" == "windows" ]]; then
30 package=juju-setup-$candidate_version.exe40 remote_script="run-win-client-server-remote.bash"
31 build_dir="build-win-client"
32 old_package=juju-$old_version-win.zip
33 archive_dir="win"
34 user_at_host="Administrator@win-slave.vapour.ws"41 user_at_host="Administrator@win-slave.vapour.ws"
35 remote_script="run-win-client-server-remote.bash"
36else42else
37 echo "Unkown client OS."43 echo "Unkown client OS."
38 exit 144 exit 1
39fi45fi
4046
41# Get OS X and Windows Juju from S3.
42if [[ "$client_os" == "osx" ]] || [[ "$client_os" == "windows" ]]; then
43 temp_dir=$(mktemp -d)
44 s3cmd --config $JUJU_HOME/juju-qa.s3cfg sync \
45 s3://juju-qa-data/juju-ci/products/version-$revision_build/$build_dir \
46 $temp_dir --exclude '*' --include $package
47 candidate_juju=$(find $temp_dir -name $package)
48 if [ "$client_os" == "windows" ]; then
49 # Extract Windows exe file and compress it.
50 innoextract -e $candidate_juju -d $temp_dir
51 zip -D $temp_dir/juju-$candidate_version-win.zip $temp_dir/app/juju.exe
52 candidate_juju=$temp_dir/juju-$candidate_version-win.zip
53 fi
54 # Get the old juju from S3.
55 old_temp_dir=$(mktemp -d)
56 s3cmd --config $JUJU_HOME/juju-qa.s3cfg sync \
57 s3://juju-qa-data/client-archive/$archive_dir $old_temp_dir --exclude '*' \
58 --include $old_package
59 old_juju=$(find $old_temp_dir -name $old_package)
60fi
61
62if [[ "$new_to_old" == "true" ]]; then
63 server=$candidate_juju
64 client=$old_juju
65 echo "Using weekly streams for unreleased version"
66 agent_arg="--agent-url http://juju-dist.s3.amazonaws.com/weekly/tools"
67else
68 server=$old_juju
69 client=$candidate_juju
70 echo "Using official proposed (or released) streams"
71 agent_arg="--agent-stream proposed"
72fi
73
74run_remote_script() {47run_remote_script() {
75 cat > temp-config.yaml <<EOT48 cat > temp-config.yaml <<EOT
76install:49install:
77 remote:50 remote:
78 - $SCRIPTS/$remote_script51 - $SCRIPTS/$remote_script
79 client:52command: [remote/$remote_script, "$candidate_version", "$old_version", "$new_to_old", "$agent_arg"]
80 - $client
81 server:
82 - $server
83command: [remote/$remote_script,
84 "server/$(basename $server)", "client/$(basename $client)",
85 "$agent_arg"]
86EOT53EOT
87 workspace-run temp-config.yaml $user_at_host54 workspace-run temp-config.yaml $user_at_host
88}55}
@@ -103,10 +70,4 @@
103 rm -rf $log_dir/*70 rm -rf $log_dir/*
104 fi71 fi
105done72done
106
107# Cleanup
108if [[ "$client_os" == "osx" ]] || [[ "$client_os" == "windows" ]]; then
109 rm -rf $temp_dir
110 rm -rf $old_temp_dir
111fi
112exit $RESULT73exit $RESULT
113\ No newline at end of file74\ No newline at end of file
11475
=== modified file 'run-win-client-server-remote.bash'
--- run-win-client-server-remote.bash 2015-09-04 17:49:43 +0000
+++ run-win-client-server-remote.bash 2015-09-23 06:44:38 +0000
@@ -1,16 +1,28 @@
1# This script is intended to run on Windows. It extracts compressed Juju binary1# This script is intended to run on Windows. It extracts compressed Juju binary
2# in a ZIP archive and run the client-server test.2# in a ZIP archive and run the client-server test.
3set -eu3set -eux
44
5server="$1"5candidate_version="$1"
6client="$2"6old_juju_version="$2"
7shift 27new_to_old="$3"
88shift 3
9/cygdrive/c/progra~2/7-Zip/7z.exe e -y -oserver $server9
10/cygdrive/c/progra~2/7-Zip/7z.exe e -y -oclient $client10/cygdrive/c/progra~2/7-Zip/7z.exe e -y -oold-juju C:\\users\\Administrator\\old-juju\\win\\juju-$old_juju_version-win.zip
11/cygdrive/c/progra~2/innoextract/innoextract.exe -e C:\\users\\Administrator\\candidate\\win\\juju-setup-$candidate_version.exe -d candidate
12
13if [ "$new_to_old" = "true" ]; then
14 echo "Server:" `candidate/app/juju.exe --version`
15 echo "Client:" `old-juju/juju.exe --version`
16 server=candidate\\app\\juju.exe
17 client=old-juju\\juju.exe
18else
19 echo "Server:" `old-juju/juju.exe --version`
20 echo "Client:" `candidate/app/juju.exe --version`
21 client=candidate\\app\\juju.exe
22 server=old-juju\\juju.exe
23fi
1124
12mkdir logs25mkdir logs
13juju destroy-environment --force -y compatibility-control || true26juju destroy-environment --force -y compatibility-control || true
14python C:\\users\\Administrator\\juju-ci-tools\\assess_heterogeneous_control.py \27python C:\\users\\Administrator\\juju-ci-tools\\assess_heterogeneous_control.py \
15 server/juju.exe client/juju.exe test-win-client-server \
16 compatibility-control logs "$@"
17\ No newline at end of file28\ No newline at end of file
29 $server $client test-win-client-server compatibility-control logs "$@"
18\ No newline at end of file30\ No newline at end of file

Subscribers

People subscribed via source and target branches