releasing package autopkgtest version 3.3.3
[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 # only needs implement this if CAPABILITIES offers "revert"
39 revert() {
40     echo "revert not implemented" >&2
41     exit 1
42 }
43
44 # only needs to handle this if CAPABILITIES offers "reboot"
45 reboot() {
46     echo "reboot not implemented" >&2
47     exit 1
48 }
49
50 case "$1" in
51     open)
52         open $@;;
53     cleanup)
54         cleanup $@;;
55     revert)
56         revert $@;;
57     reboot)
58         reboot $@;;
59     '')
60         echo "Needs to be called with command as first argument" >&2
61         exit 1
62         ;;
63     *)
64         echo "invalid command $1" >&2
65         exit 1
66         ;;
67 esac