1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-01-03 01:17:41 +03:00
one/share/shell/bash_completion

937 lines
27 KiB
Bash
Executable File

# -------------------------------------------------------------------------- #
# Copyright 2002-2023, OpenNebula Project, OpenNebula Systems #
# #
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
# not use this file except in compliance with the License. You may obtain #
# a copy of the License at #
# #
# http://www.apache.org/licenses/LICENSE-2.0 #
# #
# Unless required by applicable law or agreed to in writing, software #
# distributed under the License is distributed on an "AS IS" BASIS, #
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
# See the License for the specific language governing permissions and #
# limitations under the License. #
#--------------------------------------------------------------------------- #
# shellcheck disable=SC2148
# shellcheck disable=SC2207
COL_NAME="name"
################################################################################
# Helpers
################################################################################
# 1 -> cmd
# 2 -> column
# 3 -> filter
_complete() {
mapfile -t patterns < <( _one_list "$1" "$2" "$3" )
mapfile -t COMPREPLY < <( compgen -W "$( printf '%q ' "${patterns[@]}" )" -- "$cur")
compopt -o filenames
}
_one_list() {
if [ -z "$2" ]; then
col="$COL_NAME"
else
col=$2
fi
if [ -n "$3" ]; then
$1 list --no-header --csv -f "$3" -l "$col"
else
$1 list --no-header --csv -l "$col"
fi
}
_one_simple() {
COMPREPLY=()
if [ "$COMP_CWORD" == 1 ]; then
COMPREPLY=( $(compgen -W "${1}" -- "${cur}") )
return 0
fi
}
_one_owner_update() {
case "$1" in
chgrp)
_complete onegroup
;;
chown)
_complete oneuser
;;
update)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
}
_one_template() {
local cur prev
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [ "${#COMP_WORDS[@]}" -gt "2" ]; then
pprev="${COMP_WORDS[COMP_CWORD-2]}"
fi
if [ "$COMP_CWORD" == 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
elif [ "$COMP_CWORD" == 2 ]; then
case "$prev" in
clone|delete|instantiate|chgrp|chown|chmod|update|rename|show|lock|unlock)
_complete "$cmd"
;;
create)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
elif [ "$COMP_CWORD" == 3 ]; then
_one_owner_update "$pprev"
fi
}
################################################################################
# Services
################################################################################
_one() {
_one_simple "start stop restart start-sched stop-sched restart-sched"
}
_oneflow_server() {
_one_simple "start stop"
}
_onehem_server() {
_one_simple "start stop"
}
_onegate_server() {
_one_simple "start stop restart"
}
_sunstone_server() {
_one_simple "start stop restart start-sunstone stop-sunstone restart-sunstone"
}
complete -F _one one
complete -F _oneflow_server oneflow-server
complete -F _onehem_server onehem-server
complete -F _onegate_server onegate-server
complete -F _sunstone_server sunstone-server
################################################################################
# Commands
################################################################################
_oneacl() {
local cur prev opts cmd
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts="create delete list"
cmd=oneacl
if [ "$COMP_CWORD" == 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
elif [ "$COMP_CWORD" == 2 ]; then
case "$prev" in
delete)
_complete $cmd
;;
esac
fi
}
_onebackupjob() {
local cur prev opts cmd
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [ "${#COMP_WORDS[@]}" -gt "2" ]; then
pprev="${COMP_WORDS[COMP_CWORD-2]}"
fi
opts="create delete list show lock unlock chgrp chown chmod rename
update execute cancel sched-delete sched-update"
cmd=onebackupjob
if [ "$COMP_CWORD" == 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
elif [ "$COMP_CWORD" == 2 ]; then
case "$prev" in
delete|show|lock|unlock|chgrp|chown|chmod|rename| \
update|execute|cancel|sched-update|sched-delete)
_complete $cmd
;;
create)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
elif [ "$COMP_CWORD" == 3 ]; then
_one_owner_update "$pprev"
fi
}
_onecluster() {
local cur prev opts cmd
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [ "${#COMP_WORDS[@]}" -gt "2" ]; then
pprev="${COMP_WORDS[COMP_CWORD-2]}"
fi
opts="create delete list show addhost delhost adddatastore deldatastore
addvnet delvnet update rename"
cmd=onecluster
if [ "$COMP_CWORD" == 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
elif [ "$COMP_CWORD" == 2 ]; then
case "$prev" in
delete|show|addhost|delhost|adddatastore|deldatastore|addvnet| \
delvnet|update|rename)
_complete $cmd
;;
esac
elif [ "$COMP_CWORD" == 3 ]; then
case "$pprev" in
addhost|delhost)
_complete onehost
;;
adddatastore|deldatastore)
_complete onedatastore
;;
addvnet|delvnet)
_complete onevnet
;;
update)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
fi
}
_onedatastore() {
local cur prev opts cmd
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [ "${#COMP_WORDS[@]}" -gt "2" ]; then
pprev="${COMP_WORDS[COMP_CWORD-2]}"
fi
opts="create delete chgrp chown chmod list show update rename enable disable"
cmd=onedatastore
if [ "$COMP_CWORD" == 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
elif [ "$COMP_CWORD" == 2 ]; then
case "$prev" in
delete|chgrp|chown|chmod|show|update|rename|enable|disable)
_complete $cmd
;;
create)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
elif [ "$COMP_CWORD" == 3 ]; then
_one_owner_update "$pprev"
fi
}
_onedb() {
local cur prev opts cmd
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts="backup version history restore upgrade fsck vcenter-one54 patch
sqlite2mysql purge-history purge-done change-body change-history
update-body update-history show-body show-history create-index"
cmd=onedb
if [ "$COMP_CWORD" == 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
elif [ "$COMP_CWORD" == 2 ]; then
case "$prev" in
restore|patch)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
fi
}
_oneflow() {
local cur prev opts cmd
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [ "${#COMP_WORDS[@]}" -gt "2" ]; then
pprev="${COMP_WORDS[COMP_CWORD-2]}"
fi
opts="list top show delete recover scale chgrp chown chmod rename action"
cmd=oneflow
if [ "$COMP_CWORD" == 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
elif [ "$COMP_CWORD" == 2 ]; then
case "$prev" in
show|delete|recover|scale|chgrp|chown|chmod|rename|action)
_complete $cmd
;;
esac
elif [ "$COMP_CWORD" == 3 ]; then
_one_owner_update "$pprev"
fi
}
_oneflow_template() {
local cur prev opts cmd
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [ "${#COMP_WORDS[@]}" -gt "2" ]; then
pprev="${COMP_WORDS[COMP_CWORD-2]}"
fi
opts="list top show create delete instantiate chgrp chown chmod clone rename update"
cmd=oneflow-template
if [ "$COMP_CWORD" == 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
elif [ "$COMP_CWORD" == 2 ]; then
case "$prev" in
show|delete|instantiate|chgrp|chown|chmod|clone|rename|update)
_complete $cmd
;;
create)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
elif [ "$COMP_CWORD" == 3 ]; then
_one_owner_update "$pprev"
fi
}
_onegroup() {
local cur prev opts cmd
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [ "${#COMP_WORDS[@]}" -gt "2" ]; then
pprev="${COMP_WORDS[COMP_CWORD-2]}"
fi
opts="create update delete list show addadmin deladmin quota batchquota defaultquota"
cmd=onegroup
if [ "$COMP_CWORD" == 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
elif [ "$COMP_CWORD" == 2 ]; then
case "$prev" in
update|delete|show|addadmin|deladmin|quota|batchquota)
_complete $cmd
;;
defaultquota)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
elif [ "$COMP_CWORD" == 3 ]; then
case "$pprev" in
addadmin|deladmin)
_complete oneuser
;;
update|quota|batchquota)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
fi
}
_onehook() {
local cur prev opts cmd
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [ "${#COMP_WORDS[@]}" -gt "2" ]; then
pprev="${COMP_WORDS[COMP_CWORD-2]}"
fi
opts="create delete update rename list show top lock unlock retry log"
cmd=onehook
if [ "$COMP_CWORD" == 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
elif [ "$COMP_CWORD" == 2 ]; then
case "$prev" in
delete|update|rename|show|lock|unlock|retry)
_complete $cmd
;;
create)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
elif [ "$COMP_CWORD" == 3 ]; then
case "$pprev" in
update)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
fi
}
_onehost() {
local cur prev opts cmd
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [ "${#COMP_WORDS[@]}" -gt "2" ]; then
pprev="${COMP_WORDS[COMP_CWORD-2]}"
fi
opts="create delete enable disable offline update sync list show top flush
rename importvm forceupdate monitoring"
cmd=onehost
if [ "$COMP_CWORD" == 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
elif [ "$COMP_CWORD" == 2 ]; then
case "$prev" in
delete|disable|offline|update|sync|show|flush|rename|importvm| \
forceupdate|monitoring)
_complete $cmd
;;
enable)
mapfile -t patterns < <( onehost list -f "stat=off,stat=dsbl" --operator OR --no-header --csv -l $COL_NAME )
mapfile -t COMPREPLY < <( compgen -W "$( printf '%q ' "${patterns[@]}" )" -- "$cur")
compopt -o filenames
;;
esac
elif [ "$COMP_CWORD" == 3 ]; then
case "$pprev" in
update)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
fi
}
_oneimage() {
local cur prev opts cmd
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [ "${#COMP_WORDS[@]}" -gt "2" ]; then
pprev="${COMP_WORDS[COMP_CWORD-2]}"
fi
opts="create clone delete persistent nonpersistent update enable chtype
disable chgrp chown chmod rename snapshot-delete snapshot-revert
snapshot-flatten list show top lock unlock orphans dockerfile restore"
cmd=oneimage
if [ "$COMP_CWORD" == 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
elif [ "$COMP_CWORD" == 2 ]; then
case "$prev" in
clone|delete|persistent|nonpersistent|update|chtype|chgrp|chown|chmod| \
rename|snapshot-delete|snapshot-revert|snapshot-flatten|show|lock|unlock)
_complete $cmd
;;
enable)
_complete $cmd $COL_NAME "stat=disa"
;;
disable)
_complete $cmd $COL_NAME "stat=rdy"
;;
restore)
_complete $cmd $COL_NAME "type=BK"
;;
create)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
elif [ "$COMP_CWORD" == 3 ]; then
_one_owner_update "$pprev"
fi
}
_onemarket() {
local cur prev opts cmd
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [ "${#COMP_WORDS[@]}" -gt "2" ]; then
pprev="${COMP_WORDS[COMP_CWORD-2]}"
fi
opts="create delete chgrp chown chmod list show update rename enable disable"
cmd=onemarket
if [ "$COMP_CWORD" == 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
elif [ "$COMP_CWORD" == 2 ]; then
case "$prev" in
delete|chgrp|chown|chmod|show|update|rename)
_complete $cmd
;;
create)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
elif [ "$COMP_CWORD" == 3 ]; then
_one_owner_update "$pprev"
fi
}
_onemarketapp() {
local cur prev opts cmd
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [ "${#COMP_WORDS[@]}" -gt "2" ]; then
pprev="${COMP_WORDS[COMP_CWORD-2]}"
fi
opts="create export download delete update chgrp chown chmod rename list show
enable disable lock unlock"
cmd=onemarketapp
if [ "$COMP_CWORD" == 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
elif [ "$COMP_CWORD" == 2 ]; then
case "$prev" in
export|download|delete|update|chgrp|chown|chmod|rename|show|lock|unlock)
_complete $cmd
;;
create)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
enable)
_complete $cmd $COL_NAME "stat=dis"
;;
disable)
_complete $cmd $COL_NAME "stat=rdy"
;;
esac
elif [ "$COMP_CWORD" == 3 ]; then
_one_owner_update "$pprev"
fi
}
_oneprovision() {
local cur prev opts cmd
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts="create validate list show configure delete"
cmd=oneprovision
if [ "$COMP_CWORD" == 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
elif [ "$COMP_CWORD" == 2 ]; then
case "$prev" in
show|configure|delete)
_complete $cmd ID
;;
create|validate)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
fi
}
_oneprovider() {
local cur prev opts cmd
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts="create list show delete update"
cmd=oneprovider
if [ "$COMP_CWORD" == 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
elif [ "$COMP_CWORD" == 2 ]; then
case "$prev" in
show|delete|update)
_complete $cmd ID
;;
create)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
fi
}
_onesecgroup() {
local cur prev opts cmd
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [ "${#COMP_WORDS[@]}" -gt "2" ]; then
pprev="${COMP_WORDS[COMP_CWORD-2]}"
fi
opts="create clone delete chgrp chown chmod update rename commit list show"
cmd=onesecgroup
if [ "$COMP_CWORD" == 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
elif [ "$COMP_CWORD" == 2 ]; then
case "$prev" in
clone|delete|chgrp|chown|chmod|update|rename|commit|show)
_complete $cmd
;;
create)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
elif [ "$COMP_CWORD" == 3 ]; then
_one_owner_update "$pprev"
fi
}
_oneshowback() {
local opts
opts="list calculate"
_one_simple
}
_onetemplate() {
opts="create clone delete instantiate chgrp chown chmod update rename list show
top lock unlock"
cmd=onetemplate
_one_template
}
_oneuser() {
local cur prev opts cmd
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [ "${#COMP_WORDS[@]}" -gt "2" ]; then
pprev="${COMP_WORDS[COMP_CWORD-2]}"
fi
opts="create update quota batchquota defaultquota umask login key delete
passwd chgrp addgroup delgroup chauth list show encode passwdsearch
token-create token-set token-delete token-delete-all"
cmd=oneuser
if [ "$COMP_CWORD" == 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
elif [ "$COMP_CWORD" == 2 ]; then
case "$prev" in
update|quota|batchquota|umask|delete|passwd|chgrp|addgroup| \
delgroup|chauth|show)
_complete $cmd
;;
defaultquota)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
elif [ "$COMP_CWORD" == 3 ]; then
case "$pprev" in
chgrp|addgroup|delgroup)
_complete onegroup
;;
update|quota|batchquota)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
fi
}
_onevcenter() {
local cur prev opts cmd
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts="list list_all import import_defaults hosts cleartags"
cmd=onevcenter
if [ "$COMP_CWORD" == 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
elif [ "$COMP_CWORD" == 2 ]; then
case "$prev" in
cleartags)
_complete onevm
;;
esac
fi
}
_onevdc() {
local cur prev opts cmd
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [ "${#COMP_WORDS[@]}" -gt "2" ]; then
pprev="${COMP_WORDS[COMP_CWORD-2]}"
fi
opts="create rename update delete addgroup delgroup addcluster delcluster
addhost delhost adddatastore deldatastore addvnet delvnet list show"
cmd=onevdc
if [ "$COMP_CWORD" == 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
elif [ "$COMP_CWORD" == 2 ]; then
case "$prev" in
rename|update|delete|addgroup|delgroup|addcluster|delcluster|addhost| \
delhost|adddatastore|deldatastore|addvnet|delvnet)
_complete $cmd
;;
esac
elif [ "$COMP_CWORD" == 3 ]; then
case "$pprev" in
addgroup|delgroup)
_complete onegroup
;;
addcluster|delcluster)
_complete onecluster
;;
addhost|delhost)
_complete onehost
;;
adddatastore|deldatastore)
_complete onedatastore
;;
addvnet|delvnet)
_complete onevnet
;;
update)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
fi
}
_onevm() {
local cur prev opts cmd
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [ "${#COMP_WORDS[@]}" -gt "2" ]; then
pprev="${COMP_WORDS[COMP_CWORD-2]}"
fi
opts="create update hold release disk-saveas terminate undeploy poweroff
reboot deploy migrate stop suspend resume recover disk-attach
disk-detach nic-attach nic-detach chgrp chown chmod resched unresched
rename snapshot-create snapshot-revert snapshot-delete disk-snapshot-create
disk-snapshot-revert disk-snapshot-delete disk-snapshot-rename disk-resize
list show top resize save updateconf lock unlock create-chart
delete-chart update-chart backup restore ssh port-forward backupmode"
cmd=onevm
if [ "$COMP_CWORD" == 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
elif [ "$COMP_CWORD" == 2 ]; then
case "$prev" in
update|hold|release|disk-saveas|terminate|show|delete|resume|recover| \
disk-attach|disk-detach|nic-attach|nic-detach|chgrp|chown|chmod|resched| \
unresched|rename|snapshot-create|snapshot-revert|snapshot-delete| \
disk-snapshot-create|disk-snapshot-delete|disk-snapshot-revert| \
disk-snapshot-rename|disk-resize|save|updateconf|lock|unlock|create-chart| \
delete-chart|update-chart|backup|restore|ssh|port-forward|backupmode)
_complete $cmd
;;
undeploy|poweroff|reboot|shutdown|suspend|stop|migrate)
_complete $cmd $COL_NAME "stat=runn"
;;
deploy)
_complete $cmd $COL_NAME "stat=pend"
;;
resize)
_complete $cmd $COL_NAME "stat=poff"
;;
create)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
elif [ "$COMP_CWORD" == 3 ]; then
case "$pprev" in
deploy|migrate)
_complete onehost $COL_NAME "stat=on"
;;
esac
_one_owner_update "$pprev"
fi
}
_onevmgroup() {
local cur prev opts cmd
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [ "${#COMP_WORDS[@]}" -gt "2" ]; then
pprev="${COMP_WORDS[COMP_CWORD-2]}"
fi
opts="create delete list show chgrp chown chmod update rename lock unlock"
cmd=onevmgroup
if [ "$COMP_CWORD" == 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
elif [ "$COMP_CWORD" == 2 ]; then
case "$prev" in
delete|show|chgrp|chown|chmod|update|rename|lock|unlock)
_complete $cmd
;;
create)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
elif [ "$COMP_CWORD" == 3 ]; then
_one_owner_update "$pprev"
fi
}
_onevnet() {
local cur prev opts cmd
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [ "${#COMP_WORDS[@]}" -gt "2" ]; then
pprev="${COMP_WORDS[COMP_CWORD-2]}"
fi
opts="create delete addar addleases rmar rmleases free hold release release
chgrp chown chmod list show update updatear rename lock unlock orphans"
cmd=onevnet
if [ "$COMP_CWORD" == 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
elif [ "$COMP_CWORD" == 2 ]; then
case "$prev" in
delete|addar|addleases|rmar|rmleases|free|hold|release|reserve|chgrp| \
chown|chmod|show|update|updatear|rename|lock|unlock)
_complete $cmd
;;
create)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
elif [ "$COMP_CWORD" == 3 ]; then
case "$pprev" in
addar|update)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
_one_owner_update "$pprev"
fi
}
_onevntemplate() {
local opts cmd
opts="create clone delete instantiate chgrp chown chmod update rename list show
top lock unlock"
cmd=onevntemplate
_one_template
}
_onevrouter() {
local cur prev opts cmd
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [ "${#COMP_WORDS[@]}" -gt "2" ]; then
pprev="${COMP_WORDS[COMP_CWORD-2]}"
fi
opts="create instantiate delete chgrp chown chmod update rename nic-attach
nic-detach list show top lock unlock"
cmd=onevrouter
if [ "$COMP_CWORD" == 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
elif [ "$COMP_CWORD" == 2 ]; then
case "$prev" in
instantiate|delete|chgrp|chown|chmod|update|rename|nic-attach| \
nic-detach|show|lock|unlock)
_complete $cmd
;;
create)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
elif [ "$COMP_CWORD" == 3 ]; then
_one_owner_update "$pprev"
fi
}
_onezone() {
local cur prev opts cmd
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [ "${#COMP_WORDS[@]}" -gt "2" ]; then
pprev="${COMP_WORDS[COMP_CWORD-2]}"
fi
opts="create rename server-add server-del server-reset update delete list show set serversync"
cmd=onezone
if [ "$COMP_CWORD" == 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
elif [ "$COMP_CWORD" == 2 ]; then
case "$prev" in
rename|server-add|server-del|server-reset|update|delete|show|set)
_complete $cmd
;;
create)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
elif [ "$COMP_CWORD" == 3 ]; then
case "$pprev" in
update)
COMPREPLY=( $(compgen -A file -- "${cur}") )
return 0
;;
esac
fi
}
complete -F _oneacl oneacl
complete -F _onebackupjob onebackupjob
complete -F _onecluster onecluster
complete -F _onedatastore onedatastore
complete -F _onedb onedb
complete -F _oneflow oneflow
complete -F _oneflow_template oneflow-template
complete -F _onegroup onegroup
complete -F _onehook onehook
complete -F _onehost onehost
complete -F _oneimage oneimage
complete -F _onemarket onemarket
complete -F _onemarketapp onemarketapp
complete -F _oneprovision oneprovision
complete -F _oneprovider oneprovider
complete -F _onesecgroup onesecgroup
complete -F _oneshowback oneshowback
complete -F _onetemplate onetemplate
complete -F _oneuser oneuser
complete -F _onevcenter onevcenter
complete -F _onevdc onevdc
complete -F _onevm onevm
complete -F _onevmgroup onevmgroup
complete -F _onevnet onevnet
complete -F _onevntemplate onevntemplate
complete -F _onevrouter onevrouter
complete -F _onezone onezone