alias vla="virsh list --all" alias vl="virsh list" # Control LIBVIRT_DEFAULT_SESSION function chcon() { if [[ "$1" == "session" ]]; then sed 's/^\(export LIBVIRT_DEFAULT_URI=\).*/\1"qemu:\/\/\/session"/' $ZDOTDIR/zshrc; fi if [[ "$1" == "systen" ]]; then sed 's/^\(export LIBVIRT_DEFAULT_URI=\).*/\1"qemu:\/\/\/system"/' $ZDOTDIR/zshrc; fi if [[ "$1" == "virt" ]]; then sed 's/^\(export LIBVIRT_DEFAULT_URI=\).*/\1"qemu:\/\/virt\/system"/' $ZDOTDIR/zshrc; fi source $ZDOTDIR/zshrc } # virsh start function vs() { if [[ "$1" = "latest" ]]; then source $ZSH/plugins/virsh/variables.zsh for VM in ${PULL_VMS[@]}; do virsh start $VM done else for VM in "$@"; do virsh start $VM done echo "declare -a PULL_VMS=($@)" > ~/.oh-my-zsh/plugins/virsh/variables.zsh fi } # destroy function vd() { if [[ "$1" = "latest" ]]; then source $ZSH/plugins/virsh/variables.zsh for VM in ${PULL_VMS[@]}; do virsh destroy $VM done else for VM in "$@"; do virsh destroy $VM done echo "declare -a PULL_VMS=($@)" > ~/.oh-my-zsh/plugins/virsh/variables.zsh fi } # snapshot-revert --current function vsr() { if [[ "$1" = "latest" ]]; then source $ZSH/plugins/virsh/variables.zsh for VM in ${PULL_VMS[@]}; do virsh snapshot-revert --current --domain $VM done else for VM in "$@"; do virsh snapshot-revert --current --domain $VM done echo "declare -a PULL_VMS=($@)" > ~/.oh-my-zsh/plugins/virsh/variables.zsh fi } # snapshot-create function vsc() { if [[ "$1" = "latest" ]]; then source $ZSH/plugins/virsh/variables.zsh for VM in ${PULL_VMS[@]}; do echo $VM virsh snapshot-create-as --domain $VM --name "$(date +"%d-%m-%y-%H-%M")" done else for VM in "$@"; do virsh snapshot-create-as --domain $VM --name "$(date +"%d.%m.%y %H:%M")" done echo "declare -a PULL_VMS=($@)" > ~/.oh-my-zsh/plugins/virsh/variables.zsh fi } # rewrite init snapshot function ris() { if [[ "$1" = "latest" ]]; then source $ZSH/plugins/virsh/variables.zsh for VM in ${PULL_VMS[@]}; do echo $VM virsh snapshot-delete --domain $VM --snapshotname _init > /dev/null virsh snapshot-create-as --domain $VM --name "_init" > /dev/null echo "Снимок _init домена $VM перезаписан\n" done else for VM in "$@"; do virsh snapshot-delete --domain $VM --snapshotname _init > /dev/null virsh snapshot-create-as --domain $VM --name "_init" > /dev/null echo "Снимок _init домена $VM перезаписан\n" done echo "declare -a PULL_VMS=($@)" > ~/.oh-my-zsh/plugins/virsh/variables.zsh fi } # autocomplitions function _domains_all { local -a domains domains=("${(@f)$(virsh list --all --name 2>/dev/null)}") domains=(${domains:#}) (( $#domains )) && _describe -t domains 'libvirt domain' domains || _message 'Домены не найдены' } compdef _domains_all vs vsr vsc function _domains_started { local -a domains domains=("${(@f)$(virsh list --name 2>/dev/null)}") domains=(${domains:#}) (( $#domains )) && _describe -t domains 'libvirt domain' domains || _message 'Домены не найдены' } compdef _domains_started vd