blob: f55e1e0fb387dae25089c258305aa64d402228cb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
#!/usr/bin/env bash
# Utility script used to interact with a deployment
# @author Tim Rozet (trozet@redhat.com)
CONFIG=${CONFIG:-'/var/opt/opnfv'}
RESOURCES=${RESOURCES:-"$CONFIG/images"}
LIB=${LIB:-"$CONFIG/lib"}
VALID_CMDS="undercloud overcloud debug-stack -h --help"
source $LIB/utility-functions.sh
resolve_cmd() {
local given=$1
shift
local list=($*)
local inv=(${list[*]##${given}*})
local OIFS=$IFS; IFS='|'; local pat="${inv[*]}"; IFS=$OIFS
shopt -s extglob
echo "${list[*]##+($pat)}"
shopt -u extglob
}
display_usage() {
echo -e "Usage:\n$0 [arguments] \n"
echo -e " undercloud <user> <command> : Connect to Undercloud VM as <user> and execute command <command>\n"
echo -e " <user> Optional: Defaults to 'stack', <command> Optional: Defaults to none\n"
echo -e " overcloud <node> <command> : Connect to an Overcloud <node> and execute command <command>\n"
echo -e " <node> Required in format controller|compute<number>. Example: controller0\n"
echo -e " <command> Optional: Defaults to none\n"
echo -e " debug-stack : Print parsed deployment failures to stdout \n"
}
##translates the command line argument
##params: $@ the entire command line is passed
##usage: parse_cmd_line() "$@"
parse_cmdline() {
local match
match=($(resolve_cmd $1 $VALID_CMDS))
if [ ${#match[*]} -gt 1 ]; then
echo "$1 is ambiguous, possible matches: ${match[*]}" >&2
exit 1
elif [ ${#match[*]} -lt 1 ]; then
echo "$1 is not a recognized command. Use -h to see acceptable list" >&2
exit 1
else
match=$(echo $match | tr -d ' ')
fi
case "$match" in
-h|--help)
display_usage
exit 0
;;
undercloud)
if [ -z "$2" ]; then
# connect as stack by default
undercloud_connect stack
elif [ -z "$3" ]; then
undercloud_connect "$2"
else
undercloud_connect "$2" "$3"
fi
exit 0
;;
overcloud)
if [ -z "$2" ]; then
overcloud_connect
elif [ -z "$3" ]; then
overcloud_connect "$2"
else
overcloud_connect "$2" "$3"
fi
exit 0
;;
debug-stack)
undercloud_connect stack "$(typeset -f debug_stack); debug_stack"
exit 0
;;
*)
echo -e "\n\nThis script is used to interact with Apex deployments\n\n"
echo "Use -h to display help"
exit 1
;;
esac
}
main() {
parse_cmdline "$@"
}
main "$@"
|