Import rest of modules.
This commit is contained in:
parent
02fa10f33c
commit
3f225ced9b
39 changed files with 2056 additions and 0 deletions
113
vmware/files/scripts/vmware.sh
Normal file
113
vmware/files/scripts/vmware.sh
Normal file
|
@ -0,0 +1,113 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# $Id: vmware.sh,v 1.4 2009/07/29 20:04:19 root Exp $
|
||||
#
|
||||
|
||||
# List all datastores on server
|
||||
list_datastores() {
|
||||
vmware-vim-cmd hostsvc/storage/fs_info | awk '
|
||||
/^[ ]*path = / {
|
||||
path = substr($3, 2, length($3)-3)
|
||||
}
|
||||
/^[ ]*name = / {
|
||||
print substr($3, 2, length($3)-3) " " path
|
||||
}
|
||||
'
|
||||
}
|
||||
|
||||
|
||||
# Get list of all registered virtual machines.
|
||||
#
|
||||
# Returns list in format:
|
||||
#
|
||||
# vmid|displayName|path
|
||||
#
|
||||
list_vms() {
|
||||
vmware-vim-cmd vmsvc/getallvms | sed -n \
|
||||
's/^\([0-9][0-9]*\)[ ]*\([^ ]*\)[ ]*\(\[[^ ]*\] [^ ]*\).*/\1|\2|\3/p'
|
||||
}
|
||||
|
||||
|
||||
# Convert given path into datastore format.
|
||||
#
|
||||
# Eg. dspath /vmfs/volumes/mystore/foo.vmx returns
|
||||
# [mystore] foo.vmx
|
||||
#
|
||||
dspath() {
|
||||
case "$1" in
|
||||
/*)
|
||||
list_datastores | while read n p ; do
|
||||
echo "$1" | egrep -q "^${p}" || continue
|
||||
echo -n "[${n}] "
|
||||
echo "$1" | cut -c `echo ${p} | wc -m`- | cut -c 2-
|
||||
break
|
||||
done
|
||||
;;
|
||||
[*)
|
||||
echo "$1"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
||||
# Convert given path into filesystem format.
|
||||
#
|
||||
# Eg. abspath [mystore] foo.vmx returns
|
||||
# /vmfs/volumes/mystore/foo.vmx
|
||||
#
|
||||
abspath() {
|
||||
case "$1" in
|
||||
/*)
|
||||
echo "$1"
|
||||
;;
|
||||
[*)
|
||||
ds=`echo "$1" | sed -e 's/^\[\(.*\)\] .*$/\1/'`
|
||||
vmware-vim-cmd hostsvc/datastore/info ds-local | \
|
||||
sed -n 's/^[ ]*path = \"\(.*\)\",[ ]*/\1/p' | uniq | tr '\n' '/'
|
||||
echo "$1" | sed -e 's/^\[.*\] \(.*\)$/\1/'
|
||||
;;
|
||||
[0-9]*)
|
||||
abspath "`list_vms | sed -n \"s/^$1|.*|\(\[.*\] .*\)$/\1/p\"`"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
||||
# Get id for given virtual machine
|
||||
#
|
||||
vmid() {
|
||||
case "$1" in
|
||||
/*)
|
||||
ds="`dspath "\${1}\"`"
|
||||
if [ "${ds}" == "" ]; then
|
||||
exit
|
||||
fi
|
||||
list_vms | awk -F'|' '{print $1 " " $3}' | while read vmid vmpath ; do
|
||||
if [ "${vmpath}" = "${ds}" ]; then
|
||||
echo ${vmid}
|
||||
break
|
||||
fi
|
||||
done
|
||||
;;
|
||||
[*)
|
||||
list_vms | awk -F'|' '{print $1 " " $3}' | while read vmid vmpath ; do
|
||||
if [ "${vmpath}" = "${1}" ]; then
|
||||
echo ${vmid}
|
||||
break
|
||||
fi
|
||||
done
|
||||
;;
|
||||
*)
|
||||
list_vms | awk -F'|' '{print $1 " " $2}' | while read vmid vmname ; do
|
||||
if [ "${vmid}" = "${1}" ]; then
|
||||
echo ${vmid}
|
||||
break
|
||||
elif [ "${vmname}" = "${1}" ]; then
|
||||
echo ${vmid}
|
||||
break
|
||||
fi
|
||||
done
|
||||
;;
|
||||
esac
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue