set_or_update(): Sync with nova-cloud-controller.
This commit is contained in:
parent
e2c53a155d
commit
49458ff9aa
@ -14,17 +14,37 @@ PPA=$(config-get nova-release)
|
|||||||
VIRT_TYPE=$(config-get virt-type)
|
VIRT_TYPE=$(config-get virt-type)
|
||||||
|
|
||||||
function set_or_update {
|
function set_or_update {
|
||||||
# set or update a key=value config option in nova.conf
|
# Set a config option in nova.conf or api-paste.ini, depending
|
||||||
KEY=$1
|
# Defaults to updating nova.conf
|
||||||
VALUE=$2
|
local KEY=$1
|
||||||
[[ -z $KEY ]] && exit 1
|
local VALUE=$2
|
||||||
[[ -z $VALUE ]] && exit 1
|
local CONF_FILE=$3
|
||||||
cat $NOVA_CONF | grep "\-\-$KEY=$VALUE" >/dev/null \
|
local pattern=""
|
||||||
&& juju-log "nova-compute: $KEY=$VALUE already set" exit 0
|
[[ -z $KEY ]] && juju-log "set_or_update: value $VALUE missing KEY" && exit 1
|
||||||
if cat $NOVA_CONF | grep "\-\-$KEY=" >/dev/null ; then
|
[[ -z $VALUE ]] && juju-log "set_or_update: key $KEY missing VALUE" && exit 1
|
||||||
sed -i "s|\(--$KEY=\).*|\1$VALUE|" $NOVA_CONF
|
[[ -z "$CONF_FILE" ]] && CONF_FILE=$NOVA_CONF
|
||||||
|
|
||||||
|
case "$CONF_FILE" in
|
||||||
|
"$NOVA_CONF") match="^$KEY="
|
||||||
|
pattern="$KEY="
|
||||||
|
out=$pattern
|
||||||
|
;;
|
||||||
|
"$API_CONF") match="^$KEY = "
|
||||||
|
pattern="$match"
|
||||||
|
out="$KEY = "
|
||||||
|
;;
|
||||||
|
*) juju-log "ERROR: set_or_update: Invalid CONF_FILE ($CONF_FILE)"
|
||||||
|
esac
|
||||||
|
|
||||||
|
cat $CONF_FILE | grep "$match$VALUE" >/dev/null &&
|
||||||
|
juju-log "nova-cloud-controller: $KEY=$VALUE already in set in $CONF_FILE" \
|
||||||
|
&& return 0
|
||||||
|
if cat $CONF_FILE | grep "$match" >/dev/null ; then
|
||||||
|
juju-log "nova-cloud-controller: Updating $CONF_FILE, $KEY=$VALUE"
|
||||||
|
sed -i "s|\($pattern\).*|\1$VALUE|" $CONF_FILE
|
||||||
else
|
else
|
||||||
echo "--$KEY=$VALUE" >>$NOVA_CONF
|
juju-log "nova-cloud-controller: Setting new option $KEY=$VALUE in $CONF_FILE"
|
||||||
|
echo "$out$VALUE" >>$CONF_FILE
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user