forked from woorea/openstack-java-sdk
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathos
More file actions
executable file
·126 lines (106 loc) · 2.58 KB
/
os
File metadata and controls
executable file
·126 lines (106 loc) · 2.58 KB
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#!/bin/bash
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ] ; do SOURCE="$(readlink "$SOURCE")"; done
SCRIPT_DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
BASE_DIR=${SCRIPT_DIR}/../
DEFAULT_FORMAT=""
parse_arguments () {
while getopts ":pq:" optname
do
case "$optname" in
"p")
echo "Option $optname is specified"
;;
"q")
echo "Option $optname has value $OPTARG"
;;
"?")
echo "Unknown option $OPTARG"
;;
":")
echo "No argument value for option $OPTARG"
;;
*)
# Should not occur
echo "Unknown error while processing options"
;;
esac
done
return $OPTIND
}
do_action() {
local verb=$1
shift
case "$verb" in
"browser")
x-www-browser $@
;;
*)
echo "Unknown action: ${verb}"
exit 1
;;
esac
}
optinfo=$(parse_arguments "$@")
#argstart=$?
shift $((OPTIND-1))
set -e
# Intelligent selection of default format based on command
# i.e. run as an action if it's an action and user didn't override
if [[ "$1" == "run-vnc" ]]; then
DEFAULT_FORMAT="action"
fi
if [[ "$1" == "create-image" || "$1" == "create-sshkey" ]]; then
USE_NAILGUN=0
fi
# By default, we won't use nailgun (for easier setup)
if [[ "${USE_NAILGUN}" == "" ]]; then
USE_NAILGUN=0
fi
if [[ "$DEFAULT_FORMAT" == "" ]]; then
DEFAULT_FORMAT="raw"
fi
if [[ "${USE_NAILGUN}" == "1" ]]; then
NAILGUN=ng-nailgun
if ! builtin type -p ${NAILGUN} &>/dev/null; then
NAILGUN=ng
if ! builtin type -p ${NAILGUN} &>/dev/null; then
NAILGUN=${BASE_DIR}/../nailgun/ng
if ! builtin type -p ${NAILGUN} &>/dev/null; then
echo "${NAILGUN} not found; try sudo apt-get install nailgun"
exit 1
fi
fi
fi
fi
if [[ "$PROFILE" == "" ]]; then
PROFILE=openstack
fi
if [[ "$FORMAT" == "" ]]; then
FORMAT=${DEFAULT_FORMAT}
fi
if [[ "$CONFIG_FILE" == "" ]]; then
CONFIG_FILE=~/.credentials/${PROFILE}
fi
if [[ "${USE_NAILGUN}" == "1" ]]; then
export NAILGUN_PORT=2102
cmd=(${NAILGUN} org.openstack.client.cli.OpenstackCli)
args=(--format "${FORMAT}" --config -)
else
cmd=(java -jar ${SCRIPT_DIR}/openstack-cli-standalone.jar)
args=(--format "${FORMAT}" --config "${CONFIG_FILE}")
fi
if [[ "${FORMAT}" == "action" ]]; then
if [[ "${USE_NAILGUN}" == "1" ]]; then
action=`${cmd[@]} ${args[@]} "${@}" < ${CONFIG_FILE}`
else
action=`${cmd[@]} ${args[@]} "${@}"`
fi
do_action ${action}
else
if [[ "${USE_NAILGUN}" == "1" ]]; then
${cmd[@]} ${args[@]} "${@}" < ${CONFIG_FILE}
else
${cmd[@]} ${args[@]} "${@}"
fi
fi