Files
vm-bhyve/lib/vm-cmd
Matt Churchyard 5fa71fd5a6 vm info & vm switch info
Output pretty much all the useful info we can get our hands
on about guests or switches (if_bridges).
2015-11-11 15:22:56 +00:00

158 lines
3.0 KiB
Bash

#!/bin/sh
#-------------------------------------------------------------------------+
# Copyright (C) 2015 Matt Churchyard (churchers@gmail.com)
# All rights reserved
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted providing that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
# cmd: vm ...
#
# process the vm command line to see which function is requested
#
# @param string _cmd the command right after 'vm '
#
__parse_cmd(){
local _cmd="$1"
shift
case "${_cmd}" in
init)
__setup
__switch_init
;;
switch)
__parse_switch_cmd "$@"
;;
image)
__zfs_parse_image_cmd "$@"
;;
list)
__vm_list
;;
info)
__vm_info "$@"
;;
create)
__vm_create "$@"
;;
destroy)
__vm_destroy "$@"
;;
rename)
__vm_rename "$@"
;;
install)
__vm_install "$@"
;;
start)
__vm_start "$1"
;;
stop)
__vm_stop "$@"
;;
add)
__vm_add "$@"
;;
reset)
__vm_reset "$@"
;;
poweroff)
__vm_poweroff "$@"
;;
startall)
__vm_startall
;;
stopall)
__vm_stopall
;;
console)
__vm_console "$@"
;;
_run)
__vm_run "$@"
;;
iso)
__vm_iso "$@"
;;
configure)
__vm_configure "$@"
;;
clone)
__zfs_clone "$@"
;;
snapshot)
__zfs_snapshot "$@"
;;
rollback)
__zfs_rollback "$@"
;;
*)
__usage
;;
esac
}
# cmd: vm switch ...
#
# parse switch command
# we've already shifted once, so $1 is the switch function
#
# @param string _cmd the command right after 'vm switch '
#
__parse_switch_cmd(){
local _cmd="$1"
shift
case "${_cmd}" in
create)
__switch_create "$@"
;;
list)
__switch_list
;;
info)
__vm_info_switch "$@"
;;
destroy)
__switch_remove "$@"
;;
import)
__switch_import "$@"
;;
add)
__switch_add_member "$@"
;;
remove)
__switch_remove_member "$@"
;;
vlan)
__switch_vlan "$@"
;;
nat)
__switch_nat "$@"
;;
*)
__usage
;;
esac
}