mdmxenctrl.sh stage 1
This commit is contained in:
parent
122485144a
commit
4a83a56447
141
mdmxen/bin/mdmxenctrl.sh
Executable file
141
mdmxen/bin/mdmxenctrl.sh
Executable file
@ -0,0 +1,141 @@
|
||||
#!/bin/bash -x
|
||||
# mdmxen project - helper for configuration
|
||||
# author mikedmorto 2024 year
|
||||
VERSION="0.0.1-dev"
|
||||
XE="/opt/xensource/bin/xe"
|
||||
|
||||
##### PARAMETERS#####
|
||||
METRIC="$1"
|
||||
ITEM="$2"
|
||||
|
||||
export LC_ALL=""
|
||||
export LANG="en_US.UTF-8"
|
||||
|
||||
# include this host config
|
||||
. /root/bin/mdmxen/etc/host.cfg
|
||||
# include libraries for work
|
||||
. /root/bin/mdmxen/lib/libsys.sh
|
||||
. /root/bin/mdmxen/lib/librotation.sh
|
||||
. /root/bin/mdmxen/lib/libxen.sh
|
||||
|
||||
|
||||
#functions
|
||||
# 1 uuid
|
||||
# ret = vm_name
|
||||
fn.xen.vm.exist_by_uuid(){
|
||||
RET=`${XE} vm-param-get param-name=name-label uuid=$1 | wc -l`
|
||||
echo ${RET}
|
||||
}
|
||||
|
||||
|
||||
fn.xen.vm.get_vmname_by_uuid(){
|
||||
RET=`${XE} vm-param-get param-name=name-label uuid=$1`
|
||||
echo ${RET}
|
||||
}
|
||||
|
||||
|
||||
fn.xen.vm.exist_by_vmname(){
|
||||
RET=`${XE} vm-list is-control-domain=false is-a-snapshot=false params=uuid name-label=$1 | awk -F: '/^[^#]/ { print $2 }' | tr -d ' ' | tr ';' '\n' | wc -l`
|
||||
echo ${RET}
|
||||
}
|
||||
|
||||
fn.xen.vm.get_uuid_by_vmname(){
|
||||
RET=`${XE} vm-list is-control-domain=false is-a-snapshot=false params=uuid name-label=$1 | awk -F: '/^[^#]/ { print $2 }' | tr -d ' ' | tr ';' '\n'`
|
||||
echo ${RET}
|
||||
}
|
||||
|
||||
|
||||
fn.xen.pool.autostart.get(){
|
||||
POOL_UUID=`${XE} pool-list params=uuid | egrep -o "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"`
|
||||
RET=`${XE} pool-param-get param-name=other-config uuid=${POOL_UUID} param-key=auto_poweron`
|
||||
echo "xen.pool.autostart = ${RET}"
|
||||
}
|
||||
|
||||
|
||||
fn.xen.vm.list.autostart.get(){
|
||||
XVM_LIST=`${XE} vm-list is-control-domain=false is-a-snapshot=false params=uuid | egrep -o "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"`
|
||||
|
||||
for VM_UUID in ${XVM_LIST}; do
|
||||
# VM_NAME=`${XE} vm-param-get param-name=name-label uuid=${VM_UUID}`
|
||||
VM_NAME=$( fn.xen.vm.get_vmname_by_uuid ${VM_UUID} )
|
||||
RET=`${XE} vm-param-get param-name=other-config param-key=auto_poweron uuid=${VM_UUID}`
|
||||
echo "${VM_UUID} = ${VM_NAME} = ${RET}"
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
|
||||
#main
|
||||
|
||||
##### PARAMETERS#####
|
||||
METRIC="$1"
|
||||
ITEM="$2"
|
||||
|
||||
case "$METRIC" in
|
||||
xen.version)
|
||||
RET=`cat "/etc/xensource-inventory" | awk -F"=" '{if($1=="PRODUCT_VERSION"){print $2} }' | tr -d "'" `
|
||||
echo ${RET}
|
||||
|
||||
exit 0
|
||||
;;
|
||||
script.version)
|
||||
echo ${VERSION}
|
||||
;;
|
||||
|
||||
xen.pool.autostart.get)
|
||||
fn.xen.pool.autostart.get
|
||||
;;
|
||||
|
||||
xen.pool.autostart.set.true)
|
||||
POOL_UUID=`${XE} pool-list params=uuid | egrep -o "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"`
|
||||
RET=`${XE} pool-param-set other-config:auto_poweron=true uuid=${POOL_UUID}`
|
||||
fn.xen.pool.autostart.get
|
||||
;;
|
||||
|
||||
xen.pool.autostart.set.false)
|
||||
POOL_UUID=`${XE} pool-list params=uuid | egrep -o "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"`
|
||||
RET=`${XE} pool-param-set other-config:auto_poweron=false uuid=${POOL_UUID}`
|
||||
fn.xen.pool.autostart.get
|
||||
;;
|
||||
|
||||
xen.vm.list.autostart.get)
|
||||
fn.xen.vm.list.autostart.get
|
||||
;;
|
||||
|
||||
xen.mv.autostart.get)
|
||||
VM_NAME=$2
|
||||
EXIST=$( fn.xen.vm.exist_by_vmname ${VM_NAME} )
|
||||
if [[ $EXIST = 0 ]]
|
||||
then
|
||||
echo "vmname is not exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
VM_UUID=$( fn.xen.vm.get_uuid_by_vmname ${VM_NAME} )
|
||||
RET=`${XE} vm-param-get param-name=other-config param-key=auto_poweron uuid=${VM_UUID}`
|
||||
echo "${VM_UUID} = ${VM_NAME} = ${RET}"
|
||||
|
||||
;;
|
||||
|
||||
help)
|
||||
echo "please use these params
|
||||
{
|
||||
xen.version
|
||||
script.version
|
||||
xen.pool.autostart.get
|
||||
xen.pool.autostart.set.true
|
||||
xen.pool.autostart.set.false
|
||||
xen.vm.list.autostart.get
|
||||
xen.mv.autostart.get
|
||||
NEED:
|
||||
xen.mv.autostart.set.true
|
||||
xen.mv.autostart.set.false
|
||||
}"
|
||||
;;
|
||||
|
||||
*)
|
||||
echo ""
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user