@@ -35,6 +35,7 @@ print_help() {
35
35
echo -e ' \t-k\tName or ID of the SSH public key to add to the server.'
36
36
echo -e ' \t-d\tRun the script in debug mode'
37
37
echo -e ' \t-p\tDo not clean up the server after creation'
38
+ echo -e ' \t-z\tAvailability zone where to create the server and volume'
38
39
echo -e ' \t\t(will print a cleanup script instead of executing it).'
39
40
echo -e ' \t-u\tName of the cloud user from the image (e.g. centos) [not used, except to imply -l]'
40
41
echo -e ' \t-l\tInstall and run a connectivity test application'
@@ -49,21 +50,23 @@ declare \
49
50
server_flavor=' ' \
50
51
server_image=' ' \
51
52
key_name=' ' \
53
+ availability_zone=' ' \
52
54
external_network=' external'
53
55
# Note that the $OPTARG to -u is ignored because it is deprecated
54
- while getopts dtplf:u:i:e:k:h opt; do
56
+ while getopts dtplf:u:i:e:k:z: h opt; do
55
57
case " $opt " in
56
- d) debug=' yes' ;;
57
- p) persistent=' yes' ;;
58
- t) interactive=' no' ;;
59
- u) liveness=' yes' ;;
60
- l) liveness=' yes' ;;
61
- f) server_flavor=" $OPTARG " ;;
62
- i) server_image=" $OPTARG " ;;
63
- e) external_network=" $OPTARG " ;;
64
- k) key_name=" $OPTARG " ;;
65
- h) print_help; exit 0 ;;
66
- * ) exit 1 ;;
58
+ d) debug=' yes' ;;
59
+ p) persistent=' yes' ;;
60
+ t) interactive=' no' ;;
61
+ u) liveness=' yes' ;;
62
+ l) liveness=' yes' ;;
63
+ f) server_flavor=" $OPTARG " ;;
64
+ i) server_image=" $OPTARG " ;;
65
+ e) external_network=" $OPTARG " ;;
66
+ k) key_name=" $OPTARG " ;;
67
+ z) availability_zone=" $OPTARG " ;;
68
+ h) print_help; exit 0 ;;
69
+ * ) exit 1 ;;
67
70
esac
68
71
done
69
72
74
77
shift " $(( OPTIND- 1 )) "
75
78
declare -r name=" ${1:? This script requires one positional argument: the resource name} "
76
79
readonly \
77
- server_flavor \
78
- server_image \
79
- key_name \
80
+ server_flavor \
81
+ server_image \
82
+ key_name \
83
+ availability_zone \
80
84
external_network
81
85
82
86
declare \
176
180
177
181
}
178
182
179
- vol_id=" $( openstack volume create --size 10 -f value -c id " $name " ) "
183
+ volume_create_args=(
184
+ --size 10
185
+ )
186
+ if [ -n " $availability_zone " ]; then
187
+ volume_create_args+=(--availability-zone " $availability_zone " )
188
+ fi
189
+ vol_id=" $( openstack volume create -f value -c id " ${volume_create_args[@]} " " $name " ) "
180
190
>&2 echo " Created volume ${vol_id} "
181
191
182
192
sg_id=" $( openstack security group create -f value -c id " $name " ) "
@@ -219,6 +229,9 @@ server_create_args=(
219
229
if [ -n " $key_name " ]; then
220
230
server_create_args+=(--key-name " $key_name " )
221
231
fi
232
+ if [ -n " $availability_zone " ]; then
233
+ server_create_args+=(--availability-zone " $availability_zone " )
234
+ fi
222
235
if [ " $liveness " == ' yes' ]; then
223
236
server_create_args+=(--user-data " ${script_dir} /connectivity-test-cloud-init.yaml" )
224
237
fi
0 commit comments