README.running-tests.rst: Fix mis-spelled ro-apt setup command
[autopkgtest/autopkgtest.git] / ssh-setup / SKELETON
1 #!/bin/sh
2 # Skeleton for an adt-virt-ssh setup script that configures a testbed.
3 # See man adt-virt-ssh for details.
4
5 set -e
6
7 # add testbed capabilities here (possibly dynamically), see
8 # doc/README.virtualisation-server.rst
9 CAPABILITIES='isolation-machine'
10
11 SUDO_PASSWORD=''
12
13 # create a testbed (if necessary), configure ssh, copy ssh key into it,
14 # configure sudo, etc.; print a list of "key=value" parameters to stdout on
15 # success
16 # required: login, hostname
17 # optional: identity, password, port, options, capabilities, extraopts
18 # see adt-virt-ssh(1) for details
19 open() {
20     cat<<EOF
21 login=<username>
22 hostname=<host>
23 capabilities=$CAPABILITIES
24 identity=$HOME/.ssh/id_rsa
25 extraopts="<additional args to pass to the script with other commands>"
26 EOF
27     if [ -n "$SUDO_PASSWORD" ]; then
28         echo "password=$SUDO_PASSWORD"
29     fi
30 }
31
32 # called when closing the testbed; should revert/remove things installed in
33 # open() if the testbed is not ephemeral
34 cleanup() {
35     exit 0
36 }
37
38 # Called for reverting the testbed. This can optionally output some or all of
39 # the ssh config keys from open() to update the configuration.
40 # This only needs to be implemented if CAPABILITIES offers "revert".
41 revert() {
42     echo "revert not implemented" >&2
43     exit 1
44
45     # calling these two is a common method, but there might be a more efficient
46     # way like snapshots
47     # cleanup
48     # open
49 }
50
51 # only needs to handle this if CAPABILITIES offers "reboot"
52 reboot() {
53     # exiting with code 10 means: just call "reboot" through ssh
54     # exit 10
55
56     # exiting with any other non-zero code counts as failure
57     # echo "reboot not implemented" >&2
58     # exit 1
59 }
60
61 case "$1" in
62     open)
63         open $@;;
64     cleanup)
65         cleanup $@;;
66     revert)
67         revert $@;;
68     reboot)
69         reboot $@;;
70     '')
71         echo "Needs to be called with command as first argument" >&2
72         exit 1
73         ;;
74     *)
75         echo "invalid command $1" >&2
76         exit 1
77         ;;
78 esac