113 lines
3.2 KiB
Bash
113 lines
3.2 KiB
Bash
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
|