hilfe mein git ist komisch
This commit is contained in:
134
etc/vmware-tools/poweroff-vm-default
Executable file
134
etc/vmware-tools/poweroff-vm-default
Executable file
@@ -0,0 +1,134 @@
|
||||
#!/bin/sh
|
||||
##########################################################
|
||||
# Copyright (c) 2010-2016, 2023 VMware, Inc. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation version 2.1 and no later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public
|
||||
# License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
##########################################################
|
||||
|
||||
##########################################################################
|
||||
# DO NOT modify this file directly as it will be overwritten the next
|
||||
# time the VMware Tools are installed.
|
||||
##########################################################################
|
||||
|
||||
#
|
||||
# statechange.sh
|
||||
#
|
||||
# This script is a refactored version of the legacy power scripts (e.g.,
|
||||
# poweron-vm-default). It expects to be installed in their places --
|
||||
# in other words, `basename "$0"` might be poweron-vm-default.
|
||||
#
|
||||
# Handy reference/shorthand used in this doc/scripts:
|
||||
# TOOLS_CONFDIR ::= Depends on platform and installation settings. Likely
|
||||
# "/etc/vmware-tools" or
|
||||
# "/Library/Application Support/VMware Tools"
|
||||
# powerOp ::= One of "poweron-vm", "poweroff-vm", "suspend-vm", and
|
||||
# "resume-vm".
|
||||
# vmwScriptDir ::= $TOOLS_CONFDIR/scripts/vmware
|
||||
# userScriptDir ::= $TOOLS_CONFDIR/scripts/${powerOp}-default.d
|
||||
#
|
||||
# End users may install scripts of their own under $userScriptDir. They
|
||||
# are executed in alphabetical order with "$powerOp" as the only argument.
|
||||
#
|
||||
# NB: This directory layout remains to preserve backwards compatibility. End
|
||||
# users are free to write a single script which uses its only parameter
|
||||
# (${powerOp}) as a discriminator, and then install symlinks to it in each
|
||||
# of the ${powerOp}-default.d directories.
|
||||
#
|
||||
# On power-on and resume, VMware's scripts execute before the end user's. On
|
||||
# suspend and power-off, the end user's execute before VMware's. (This way,
|
||||
# VMware stops services only after the user's scripts have finished their
|
||||
# work, and conversely restores the same services before the user's scripts
|
||||
# attempt to use them.)
|
||||
#
|
||||
# Should any script exit non-zero, only its value will be saved to exitCode.
|
||||
# (Any further non-zero exits will have no effect on exitCode.) This script
|
||||
# exits with $exitCode.
|
||||
#
|
||||
# XXX Consider using the available/enabled pattern for VMware's scripts.
|
||||
#
|
||||
# XXX This should be staged as a single executable whereby the desired
|
||||
# power operation is passed in as a parameter. (I.e., one would run
|
||||
# "/path/to/statechange.sh suspend-vm" rather than having to install
|
||||
# statechange.sh as suspend-vm-default.)
|
||||
#
|
||||
|
||||
echo `date` ": Executing '$0'"
|
||||
|
||||
# See above.
|
||||
TOOLS_CONFDIR=`dirname "$0"`
|
||||
export TOOLS_CONFDIR
|
||||
|
||||
# Pull in subroutines like Panic.
|
||||
. "$TOOLS_CONFDIR"/statechange.subr
|
||||
|
||||
|
||||
#
|
||||
# RunScripts --
|
||||
#
|
||||
# Executes scripts installed under $scriptDir.
|
||||
#
|
||||
# Side effects:
|
||||
# exitCode may be incremented.
|
||||
#
|
||||
|
||||
RunScripts() {
|
||||
scriptDir="$1"
|
||||
|
||||
if [ -d "$scriptDir" ]; then
|
||||
for scriptFile in "$scriptDir"/*; do
|
||||
if [ -f "$scriptFile" -a -x "$scriptFile" ]; then
|
||||
"$scriptFile" $powerOp
|
||||
exitCode=`expr $exitCode \| $?`
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# main --
|
||||
#
|
||||
# Entry point. See comments at top of file for details.
|
||||
#
|
||||
# Results:
|
||||
# Exits with $exitCode.
|
||||
#
|
||||
|
||||
main() {
|
||||
# This is confidence checked in the case/esac bit below.
|
||||
powerOp=`basename "$0" | sed 's,-default,,'`
|
||||
exitCode=0
|
||||
|
||||
vmwScriptDir="$TOOLS_CONFDIR/scripts/vmware"
|
||||
userScriptDir="$TOOLS_CONFDIR/scripts/${powerOp}-default.d"
|
||||
|
||||
case "$powerOp" in
|
||||
poweron-vm|resume-vm)
|
||||
RunScripts "$vmwScriptDir"
|
||||
RunScripts "$userScriptDir"
|
||||
;;
|
||||
poweroff-vm|suspend-vm)
|
||||
RunScripts "$userScriptDir"
|
||||
RunScripts "$vmwScriptDir"
|
||||
;;
|
||||
*)
|
||||
Panic "Invalid argument: $powerOp"
|
||||
;;
|
||||
esac
|
||||
|
||||
return $exitCode
|
||||
}
|
||||
|
||||
main
|
||||
134
etc/vmware-tools/poweron-vm-default
Executable file
134
etc/vmware-tools/poweron-vm-default
Executable file
@@ -0,0 +1,134 @@
|
||||
#!/bin/sh
|
||||
##########################################################
|
||||
# Copyright (c) 2010-2016, 2023 VMware, Inc. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation version 2.1 and no later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public
|
||||
# License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
##########################################################
|
||||
|
||||
##########################################################################
|
||||
# DO NOT modify this file directly as it will be overwritten the next
|
||||
# time the VMware Tools are installed.
|
||||
##########################################################################
|
||||
|
||||
#
|
||||
# statechange.sh
|
||||
#
|
||||
# This script is a refactored version of the legacy power scripts (e.g.,
|
||||
# poweron-vm-default). It expects to be installed in their places --
|
||||
# in other words, `basename "$0"` might be poweron-vm-default.
|
||||
#
|
||||
# Handy reference/shorthand used in this doc/scripts:
|
||||
# TOOLS_CONFDIR ::= Depends on platform and installation settings. Likely
|
||||
# "/etc/vmware-tools" or
|
||||
# "/Library/Application Support/VMware Tools"
|
||||
# powerOp ::= One of "poweron-vm", "poweroff-vm", "suspend-vm", and
|
||||
# "resume-vm".
|
||||
# vmwScriptDir ::= $TOOLS_CONFDIR/scripts/vmware
|
||||
# userScriptDir ::= $TOOLS_CONFDIR/scripts/${powerOp}-default.d
|
||||
#
|
||||
# End users may install scripts of their own under $userScriptDir. They
|
||||
# are executed in alphabetical order with "$powerOp" as the only argument.
|
||||
#
|
||||
# NB: This directory layout remains to preserve backwards compatibility. End
|
||||
# users are free to write a single script which uses its only parameter
|
||||
# (${powerOp}) as a discriminator, and then install symlinks to it in each
|
||||
# of the ${powerOp}-default.d directories.
|
||||
#
|
||||
# On power-on and resume, VMware's scripts execute before the end user's. On
|
||||
# suspend and power-off, the end user's execute before VMware's. (This way,
|
||||
# VMware stops services only after the user's scripts have finished their
|
||||
# work, and conversely restores the same services before the user's scripts
|
||||
# attempt to use them.)
|
||||
#
|
||||
# Should any script exit non-zero, only its value will be saved to exitCode.
|
||||
# (Any further non-zero exits will have no effect on exitCode.) This script
|
||||
# exits with $exitCode.
|
||||
#
|
||||
# XXX Consider using the available/enabled pattern for VMware's scripts.
|
||||
#
|
||||
# XXX This should be staged as a single executable whereby the desired
|
||||
# power operation is passed in as a parameter. (I.e., one would run
|
||||
# "/path/to/statechange.sh suspend-vm" rather than having to install
|
||||
# statechange.sh as suspend-vm-default.)
|
||||
#
|
||||
|
||||
echo `date` ": Executing '$0'"
|
||||
|
||||
# See above.
|
||||
TOOLS_CONFDIR=`dirname "$0"`
|
||||
export TOOLS_CONFDIR
|
||||
|
||||
# Pull in subroutines like Panic.
|
||||
. "$TOOLS_CONFDIR"/statechange.subr
|
||||
|
||||
|
||||
#
|
||||
# RunScripts --
|
||||
#
|
||||
# Executes scripts installed under $scriptDir.
|
||||
#
|
||||
# Side effects:
|
||||
# exitCode may be incremented.
|
||||
#
|
||||
|
||||
RunScripts() {
|
||||
scriptDir="$1"
|
||||
|
||||
if [ -d "$scriptDir" ]; then
|
||||
for scriptFile in "$scriptDir"/*; do
|
||||
if [ -f "$scriptFile" -a -x "$scriptFile" ]; then
|
||||
"$scriptFile" $powerOp
|
||||
exitCode=`expr $exitCode \| $?`
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# main --
|
||||
#
|
||||
# Entry point. See comments at top of file for details.
|
||||
#
|
||||
# Results:
|
||||
# Exits with $exitCode.
|
||||
#
|
||||
|
||||
main() {
|
||||
# This is confidence checked in the case/esac bit below.
|
||||
powerOp=`basename "$0" | sed 's,-default,,'`
|
||||
exitCode=0
|
||||
|
||||
vmwScriptDir="$TOOLS_CONFDIR/scripts/vmware"
|
||||
userScriptDir="$TOOLS_CONFDIR/scripts/${powerOp}-default.d"
|
||||
|
||||
case "$powerOp" in
|
||||
poweron-vm|resume-vm)
|
||||
RunScripts "$vmwScriptDir"
|
||||
RunScripts "$userScriptDir"
|
||||
;;
|
||||
poweroff-vm|suspend-vm)
|
||||
RunScripts "$userScriptDir"
|
||||
RunScripts "$vmwScriptDir"
|
||||
;;
|
||||
*)
|
||||
Panic "Invalid argument: $powerOp"
|
||||
;;
|
||||
esac
|
||||
|
||||
return $exitCode
|
||||
}
|
||||
|
||||
main
|
||||
134
etc/vmware-tools/resume-vm-default
Executable file
134
etc/vmware-tools/resume-vm-default
Executable file
@@ -0,0 +1,134 @@
|
||||
#!/bin/sh
|
||||
##########################################################
|
||||
# Copyright (c) 2010-2016, 2023 VMware, Inc. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation version 2.1 and no later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public
|
||||
# License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
##########################################################
|
||||
|
||||
##########################################################################
|
||||
# DO NOT modify this file directly as it will be overwritten the next
|
||||
# time the VMware Tools are installed.
|
||||
##########################################################################
|
||||
|
||||
#
|
||||
# statechange.sh
|
||||
#
|
||||
# This script is a refactored version of the legacy power scripts (e.g.,
|
||||
# poweron-vm-default). It expects to be installed in their places --
|
||||
# in other words, `basename "$0"` might be poweron-vm-default.
|
||||
#
|
||||
# Handy reference/shorthand used in this doc/scripts:
|
||||
# TOOLS_CONFDIR ::= Depends on platform and installation settings. Likely
|
||||
# "/etc/vmware-tools" or
|
||||
# "/Library/Application Support/VMware Tools"
|
||||
# powerOp ::= One of "poweron-vm", "poweroff-vm", "suspend-vm", and
|
||||
# "resume-vm".
|
||||
# vmwScriptDir ::= $TOOLS_CONFDIR/scripts/vmware
|
||||
# userScriptDir ::= $TOOLS_CONFDIR/scripts/${powerOp}-default.d
|
||||
#
|
||||
# End users may install scripts of their own under $userScriptDir. They
|
||||
# are executed in alphabetical order with "$powerOp" as the only argument.
|
||||
#
|
||||
# NB: This directory layout remains to preserve backwards compatibility. End
|
||||
# users are free to write a single script which uses its only parameter
|
||||
# (${powerOp}) as a discriminator, and then install symlinks to it in each
|
||||
# of the ${powerOp}-default.d directories.
|
||||
#
|
||||
# On power-on and resume, VMware's scripts execute before the end user's. On
|
||||
# suspend and power-off, the end user's execute before VMware's. (This way,
|
||||
# VMware stops services only after the user's scripts have finished their
|
||||
# work, and conversely restores the same services before the user's scripts
|
||||
# attempt to use them.)
|
||||
#
|
||||
# Should any script exit non-zero, only its value will be saved to exitCode.
|
||||
# (Any further non-zero exits will have no effect on exitCode.) This script
|
||||
# exits with $exitCode.
|
||||
#
|
||||
# XXX Consider using the available/enabled pattern for VMware's scripts.
|
||||
#
|
||||
# XXX This should be staged as a single executable whereby the desired
|
||||
# power operation is passed in as a parameter. (I.e., one would run
|
||||
# "/path/to/statechange.sh suspend-vm" rather than having to install
|
||||
# statechange.sh as suspend-vm-default.)
|
||||
#
|
||||
|
||||
echo `date` ": Executing '$0'"
|
||||
|
||||
# See above.
|
||||
TOOLS_CONFDIR=`dirname "$0"`
|
||||
export TOOLS_CONFDIR
|
||||
|
||||
# Pull in subroutines like Panic.
|
||||
. "$TOOLS_CONFDIR"/statechange.subr
|
||||
|
||||
|
||||
#
|
||||
# RunScripts --
|
||||
#
|
||||
# Executes scripts installed under $scriptDir.
|
||||
#
|
||||
# Side effects:
|
||||
# exitCode may be incremented.
|
||||
#
|
||||
|
||||
RunScripts() {
|
||||
scriptDir="$1"
|
||||
|
||||
if [ -d "$scriptDir" ]; then
|
||||
for scriptFile in "$scriptDir"/*; do
|
||||
if [ -f "$scriptFile" -a -x "$scriptFile" ]; then
|
||||
"$scriptFile" $powerOp
|
||||
exitCode=`expr $exitCode \| $?`
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# main --
|
||||
#
|
||||
# Entry point. See comments at top of file for details.
|
||||
#
|
||||
# Results:
|
||||
# Exits with $exitCode.
|
||||
#
|
||||
|
||||
main() {
|
||||
# This is confidence checked in the case/esac bit below.
|
||||
powerOp=`basename "$0" | sed 's,-default,,'`
|
||||
exitCode=0
|
||||
|
||||
vmwScriptDir="$TOOLS_CONFDIR/scripts/vmware"
|
||||
userScriptDir="$TOOLS_CONFDIR/scripts/${powerOp}-default.d"
|
||||
|
||||
case "$powerOp" in
|
||||
poweron-vm|resume-vm)
|
||||
RunScripts "$vmwScriptDir"
|
||||
RunScripts "$userScriptDir"
|
||||
;;
|
||||
poweroff-vm|suspend-vm)
|
||||
RunScripts "$userScriptDir"
|
||||
RunScripts "$vmwScriptDir"
|
||||
;;
|
||||
*)
|
||||
Panic "Invalid argument: $powerOp"
|
||||
;;
|
||||
esac
|
||||
|
||||
return $exitCode
|
||||
}
|
||||
|
||||
main
|
||||
730
etc/vmware-tools/scripts/vmware/network
Executable file
730
etc/vmware-tools/scripts/vmware/network
Executable file
@@ -0,0 +1,730 @@
|
||||
#!/bin/sh -x
|
||||
##########################################################
|
||||
# Copyright (c) 2001-2018, 2021, 2023-2024 Broadcom. All rights reserved.
|
||||
# The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation version 2.1 and no later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public
|
||||
# License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
##########################################################
|
||||
|
||||
|
||||
#
|
||||
# network (Linux)
|
||||
#
|
||||
# Using a combination of a system networking script, ifconfig, ifup, ifdown
|
||||
# and the ip command, attempt to release and renew DHCP leases upon receipt
|
||||
# of suspend and resume events, respectively.
|
||||
#
|
||||
|
||||
SOURCE=$0
|
||||
logdir=/var/log
|
||||
logbase=$logdir/vmware-network
|
||||
logfile=$logbase.log
|
||||
|
||||
# Defines logging mode enabled (1) or disabled (0)
|
||||
logmode=1
|
||||
|
||||
# Defines whether to rotate logs (1) or not (0)
|
||||
logrotate=1
|
||||
|
||||
# Defines whether to set log file permissions (1) or not (0)
|
||||
logsetperms=1
|
||||
|
||||
#
|
||||
# Get log file path
|
||||
#
|
||||
get_logfile() {
|
||||
file=`vmware-toolbox-cmd config get logging network.data | \
|
||||
sed -e 's/.*= *//' -e 's/ *$//'`
|
||||
if [ -n "${file##*"UNSET"*}" ]; then
|
||||
logfile=$file
|
||||
logdir=`dirname $logfile`
|
||||
logbase=`echo $logfile | sed 's/\..*$//'`
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# Get Network logging config
|
||||
#
|
||||
get_logconfig() {
|
||||
handler=`vmware-toolbox-cmd config get logging network.handler | \
|
||||
sed -e 's/.*= *//' -e 's/ *$//'`
|
||||
if [ -z "${handler##*"UNSET"*}" ]; then
|
||||
# Default unset to file handler
|
||||
handler=file
|
||||
fi
|
||||
case $handler in
|
||||
"file")
|
||||
get_logfile
|
||||
;;
|
||||
"file+")
|
||||
# Append to a file instead of recreating each time
|
||||
get_logfile
|
||||
logrotate=0
|
||||
;;
|
||||
"vmx"|"std")
|
||||
logrotate=0
|
||||
logsetperms=0
|
||||
;;
|
||||
"syslog")
|
||||
logfile=/var/log/syslog
|
||||
logdir=`dirname $logfile`
|
||||
logrotate=0
|
||||
logsetperms=0
|
||||
;;
|
||||
*)
|
||||
# Default unknown to 'file' handler, log the issue.
|
||||
vmtoolsd --cmd "log WARNING: [$SOURCE] Logging unknown network.handler: $handler"
|
||||
get_logfile
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
#
|
||||
# Rotate any logs
|
||||
#
|
||||
rotate_logfile() {
|
||||
if [ $logrotate -eq 1 ]; then
|
||||
max=`vmware-toolbox-cmd config get logging network.maxOldLogFiles | \
|
||||
sed -e 's/.*= *//' -e 's/ *$//'`
|
||||
if [ `expr "$max" : '[0-9]\+$'` -eq 0 ]; then
|
||||
# max is not numeric (UNSET or else), use default.
|
||||
max=9
|
||||
fi
|
||||
if [ $max -lt 1 ]; then
|
||||
# max must be > 0, use default.
|
||||
max=9
|
||||
fi
|
||||
max=`expr $max - 1`
|
||||
for s in `seq $max -1 1`; do
|
||||
d=`expr $s + 1`
|
||||
mv -f $logbase.$s.log $logbase.$d.log
|
||||
done
|
||||
mv -f $logbase.log $logbase.1.log
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# Logging api
|
||||
#
|
||||
log() {
|
||||
if [ $logmode -eq 1 ]; then
|
||||
if [ "$handler" = "vmx" ]; then
|
||||
vmtoolsd --cmd "log $*"
|
||||
elif [ "$handler" = "std" ]; then
|
||||
echo `date` ": $*"
|
||||
elif [ -w $logdir ]; then
|
||||
space=`df -k $logdir | awk 'NR == 2 { print $4 }'`
|
||||
if [ $space -gt 1024 ]; then
|
||||
echo `date` ": $*" >> $logfile
|
||||
else
|
||||
vmtoolsd --cmd "log WARNING: [$SOURCE] Logging disabled. No space left in $logdir"
|
||||
logmode=0
|
||||
fi
|
||||
else
|
||||
vmtoolsd --cmd "log WARNING: [$SOURCE] Logging disabled. $logdir is not writable"
|
||||
logmode=0
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
get_logconfig
|
||||
rotate_logfile
|
||||
|
||||
if [ $logsetperms -eq 1 ]; then
|
||||
# Create/Recreate logfile
|
||||
if [ ! -e $logfile ]; then
|
||||
touch $logfile
|
||||
fi
|
||||
|
||||
# Set logfile permissions before writing first log to file.
|
||||
# ** When handler is 'file+' and logfile existed prior to execution, this
|
||||
# updates the permissions before appending to logfile.
|
||||
# ** Otherwise sets permission on new file.
|
||||
chmod 0600 $logfile
|
||||
fi
|
||||
|
||||
log "Executing '$0 $*'"
|
||||
|
||||
. `dirname "$0"`/../../statechange.subr
|
||||
|
||||
|
||||
#
|
||||
# find_networking_script --
|
||||
#
|
||||
# Searches common Linux distro init/rc paths to find a singular network
|
||||
# services script.
|
||||
#
|
||||
# Result:
|
||||
# Returns a valid networking script path on success or "error" on failure.
|
||||
#
|
||||
# Side effects:
|
||||
# None.
|
||||
#
|
||||
|
||||
find_networking_script() {
|
||||
local script="error"
|
||||
for dir in "/etc/init.d" "/sbin/init.d" "/etc" "/etc/rc.d" ; do
|
||||
if [ -d "$dir/rc0.d" ] &&
|
||||
[ -d "$dir/rc1.d" ] &&
|
||||
[ -d "$dir/rc2.d" ] &&
|
||||
[ -d "$dir/rc3.d" ] &&
|
||||
[ -d "$dir/rc4.d" ] &&
|
||||
[ -d "$dir/rc5.d" ] &&
|
||||
[ -d "$dir/rc6.d" ]; then
|
||||
|
||||
# Now find the appropriate networking script.
|
||||
if [ -d "$dir/init.d" ]; then
|
||||
if [ -x "$dir/init.d/network" ]; then
|
||||
script="$dir/init.d/network"
|
||||
elif [ -x "$dir/init.d/networking" ]; then
|
||||
script="$dir/init.d/networking"
|
||||
fi
|
||||
else
|
||||
if [ -x "$dir/network" ]; then
|
||||
script="$dir/network"
|
||||
elif [ -x "$dir/networking" ]; then
|
||||
script="$dir/networking"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
log "$script"
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# exec_networking_script --
|
||||
#
|
||||
# Execute the networking script to bring network interfaces up or down
|
||||
# based on the given input action argument.
|
||||
#
|
||||
|
||||
exec_networking_script()
|
||||
{
|
||||
local script=$1
|
||||
local action=$2
|
||||
|
||||
# Using SysV "service" if it exists, otherwise fall back to run the
|
||||
# script directly
|
||||
service=`which service 2>/dev/null`
|
||||
if [ $? = 0 -a -n "$service" ]; then
|
||||
serviceName=`basename "$script"`
|
||||
"$service" "$serviceName" "$action"
|
||||
else
|
||||
"$script" "$action"
|
||||
fi
|
||||
|
||||
return $?
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# exec_systemctl_service --
|
||||
#
|
||||
# Handle linux distributions that use systemd to replace the legacy
|
||||
# system V startup scripts. The previous network script searching
|
||||
# approach is no longer viable in these systems. Invoke the systemctl
|
||||
# command to control the network service instead.
|
||||
#
|
||||
|
||||
exec_systemctl_service()
|
||||
{
|
||||
local rc=1
|
||||
local action=$1
|
||||
local ctlcmd=$(which systemctl 2>/dev/null)
|
||||
local service
|
||||
|
||||
[ -z "$ctlcmd" ] && return $rc
|
||||
|
||||
for svc in systemd-networkd network; do
|
||||
if ! $ctlcmd status $svc | grep -iq 'not-found'; then
|
||||
service=$svc && break
|
||||
fi
|
||||
done
|
||||
|
||||
[ -z "$service" ] && return $rc
|
||||
|
||||
$ctlcmd $action $service; rc=$?
|
||||
|
||||
# When use the systemd-networkd service to shut down interfaces, interface
|
||||
# address and state remain unchanged. Need to use ip command to change its
|
||||
# address and state.
|
||||
if [ $rc = 0 -a $service = 'systemd-networkd' -a $action = 'stop' ]; then
|
||||
config_network_intfs $action; rc=$?
|
||||
fi
|
||||
|
||||
return $rc
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# del_intf_ip --
|
||||
#
|
||||
# Use the ip command to remove all the addresses of an interface.
|
||||
#
|
||||
|
||||
del_intf_ip()
|
||||
{
|
||||
local nic=$1
|
||||
|
||||
$ip_cmd addr flush dev $nic
|
||||
return $?
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# ip_intf_ops --
|
||||
#
|
||||
# Use the ip command to change the state of an interface to up or down.
|
||||
#
|
||||
|
||||
ip_intf_ops()
|
||||
{
|
||||
local rc=1
|
||||
local nic=$1
|
||||
local ops=$2
|
||||
|
||||
[ -z "$ip_cmd" ] && return $rc
|
||||
|
||||
$ip_cmd link set $nic $ops; rc=$?
|
||||
|
||||
# Remove interface addresses when taking an interface down.
|
||||
if [ $rc = 0 -a $ops = down ]; then
|
||||
del_intf_ip $nic; rc=$?
|
||||
fi
|
||||
|
||||
return $rc
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# intf_ops --
|
||||
#
|
||||
# Execute the specified command (ifup or ifdown) if available, otherwise use
|
||||
# the ip command as fallback. If ifup or ifdown fails, run the ip command to
|
||||
# retry the intended operation.
|
||||
#
|
||||
|
||||
intf_ops()
|
||||
{
|
||||
local rc=0
|
||||
local cmd=$1
|
||||
local ops=$2
|
||||
local nic=$3
|
||||
local tmp
|
||||
|
||||
if [ ! -z "$cmd" ]; then
|
||||
tmp=$($cmd $nic 2>&1); rc=$?
|
||||
|
||||
# Some systems still return a successful status even the command fails
|
||||
# because the interface is not configured in the configuration file. So
|
||||
# have to examine the command output to determine the actual status.
|
||||
if [ $rc = 0 ]; then
|
||||
echo $tmp | egrep -iq 'not configured|ignoring unknown' && rc=1
|
||||
fi
|
||||
fi
|
||||
|
||||
# If ifup/ifdown fails, try the ip fallback.
|
||||
if [ -z "$cmd" -o $rc != 0 ]; then
|
||||
ip_intf_ops $nic $ops; rc=$?
|
||||
fi
|
||||
|
||||
return $rc
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# exec_intf_ops --
|
||||
#
|
||||
# Perform an operation to bring an individual interface up or down.
|
||||
#
|
||||
|
||||
exec_intf_ops()
|
||||
{
|
||||
local rc=0
|
||||
local action=$1
|
||||
local nic=$2
|
||||
|
||||
case $action in
|
||||
start)
|
||||
intf_ops "$ifup_cmd" up $nic; rc=$?
|
||||
;;
|
||||
stop)
|
||||
intf_ops "$ifdown_cmd" down $nic; rc=$?
|
||||
;;
|
||||
*)
|
||||
Panic "Illegal interface action: $action"
|
||||
;;
|
||||
esac
|
||||
|
||||
return $rc
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# config_network_intfs --
|
||||
#
|
||||
# For Linux systems not supporting networking scripts to bring interfaces
|
||||
# up or down, provide a way to change the interface state individually.
|
||||
#
|
||||
|
||||
config_network_intfs()
|
||||
{
|
||||
local rc=0
|
||||
local action=$1
|
||||
|
||||
if [ -f "$activeList" ]; then
|
||||
|
||||
while read nic; do
|
||||
exec_intf_ops $action $nic
|
||||
rc=$(expr $rc \| $?)
|
||||
done < $activeList
|
||||
fi
|
||||
|
||||
return $rc
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# run_network_script --
|
||||
#
|
||||
# Finds out how to run the system's script used to control networking, and
|
||||
# runs it with the given argument (which should be one of the usual SysV
|
||||
# init script arguments). If it does not work, tries the other alternatives.
|
||||
# So far, our alternatives are (a) systemctl (b) network script (c) perform
|
||||
# an individual interface state change.
|
||||
#
|
||||
|
||||
run_network_script()
|
||||
{
|
||||
local action=$1
|
||||
local rc=0
|
||||
local script
|
||||
|
||||
while true; do
|
||||
|
||||
exec_systemctl_service $action
|
||||
[ $? != 0 ] || break
|
||||
|
||||
script=`find_networking_script`
|
||||
|
||||
if [ $script != "error" ]; then
|
||||
exec_networking_script $script $action
|
||||
[ $? != 0 ] || break
|
||||
fi
|
||||
|
||||
# Since all the other alternatives fail, need to manually change
|
||||
# individual interface state.
|
||||
config_network_intfs $action; rc=$?
|
||||
break
|
||||
done
|
||||
|
||||
return $rc
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# save_active_NIC_list --
|
||||
#
|
||||
# Records a list of every active NIC to /var/run/vmware-active-nics.
|
||||
#
|
||||
# XXX What's the story on aliases? Should they still be included, or will
|
||||
# they be recreated automatically upon resume?
|
||||
#
|
||||
# Results:
|
||||
# $activeList has, one per line, a list of all active NICs.
|
||||
#
|
||||
# Side effects:
|
||||
# None.
|
||||
#
|
||||
|
||||
save_active_NIC_list()
|
||||
{
|
||||
local intf_out
|
||||
|
||||
>$activeList
|
||||
|
||||
# Find out all the non-loopback up interfaces. Use ip if available
|
||||
# otherwise fall back to the ifconfig command.
|
||||
# ifconfig is buggy on some platforms and truncates long
|
||||
# network names
|
||||
if [ -n "$ip_cmd" ]; then
|
||||
for nic in $($ip_cmd link show up | egrep '\bUP\b' | awk -F: '{print $2}'); do
|
||||
$ip_cmd link show ${nic%@*} | grep -iq 'link/ether' && echo ${nic%@*} >> $activeList
|
||||
done
|
||||
else
|
||||
for nic in $($ifconfig_cmd | sed -n 's/^\([^: \t]*\).*$/\1/p'); do
|
||||
intf_out=$($ifconfig_cmd $nic)
|
||||
echo $intf_out | grep -iq loopback && continue
|
||||
echo $intf_out | egrep -q '\bUP\b' && echo $nic >> $activeList
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# rescue_NIC --
|
||||
#
|
||||
# For each NIC recorded in $activeList that is not currently "up", run
|
||||
# "ifup $nic" or "ip link set $nic up" to bring the interface up.
|
||||
#
|
||||
# Results:
|
||||
# All downed NICs should be active.
|
||||
#
|
||||
|
||||
rescue_NIC()
|
||||
{
|
||||
local rc=0
|
||||
local intf_out
|
||||
|
||||
if [ -f "$activeList" ]; then
|
||||
while read nic; do
|
||||
if [ -n "$ip_cmd" ]; then
|
||||
intf_out=$($ip_cmd link show $nic up)
|
||||
else
|
||||
intf_out=$($ifconfig_cmd $nic)
|
||||
fi
|
||||
|
||||
if echo $intf_out | grep -q 'UP'; then
|
||||
log "[rescue_nic] $nic is already active."
|
||||
else
|
||||
log "[rescue_nic] activating $nic ..."
|
||||
|
||||
# Our best effort to activate interfaces, use ifup if available
|
||||
# otherwise use the ip command as fallback.
|
||||
intf_ops "$ifup_cmd" up $nic
|
||||
rc=$(expr $rc \| $?)
|
||||
fi
|
||||
done < $activeList
|
||||
|
||||
rm -f $activeList
|
||||
fi
|
||||
|
||||
return $rc
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# TranquilizeNetworkManager --
|
||||
#
|
||||
# Put the NetworkManager daemon to sleep (maybe).
|
||||
#
|
||||
# See http://projects.gnome.org/NetworkManager/developers/spec.html .
|
||||
#
|
||||
# Results:
|
||||
# Sleep(true) request is sent to the NetworkManager D-Bus interface.
|
||||
#
|
||||
# Side effects:
|
||||
# None.
|
||||
#
|
||||
|
||||
TranquilizeNetworkManager()
|
||||
{
|
||||
# 'which' may be a bit noisy, so we'll shush it.
|
||||
dbusSend=`which dbus-send 2>/dev/null`
|
||||
rc=$?
|
||||
if [ $rc -ne 0 ]; then
|
||||
return $rc
|
||||
fi
|
||||
|
||||
# Check NetworkManager state before disabling it.
|
||||
nm_state=`$dbusSend --system --print-reply \
|
||||
--dest=org.freedesktop.NetworkManager \
|
||||
/org/freedesktop/NetworkManager \
|
||||
org.freedesktop.DBus.Properties.Get \
|
||||
string:'org.freedesktop.NetworkManager' \
|
||||
string:'State' \
|
||||
| awk '/variant/ {print $3;}'`
|
||||
if [ -z "$nm_state" ]; then
|
||||
return 1
|
||||
fi
|
||||
# NetworkManager API 0.7/0.8 0.9
|
||||
# NM_STATE_ASLEEP 1 10
|
||||
# NM_STATE_DISCONNECTED 4 20
|
||||
case $nm_state in
|
||||
1|4|10|20)
|
||||
# Nothing needs to be done.
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
|
||||
# NetworkManager 0.9.1 and above + earlier versions that honor
|
||||
# the "Sleep" config boolean.
|
||||
$dbusSend --system --print-reply \
|
||||
--dest=org.freedesktop.NetworkManager \
|
||||
/org/freedesktop/NetworkManager \
|
||||
org.freedesktop.NetworkManager.Sleep boolean:true
|
||||
rc=$?
|
||||
if [ $rc -eq 0 ]; then
|
||||
return $rc
|
||||
fi
|
||||
# NetworkManager 0.9.0
|
||||
$dbusSend --system --print-reply \
|
||||
--dest=org.freedesktop.NetworkManager \
|
||||
/org/freedesktop/NetworkManager \
|
||||
org.freedesktop.NetworkManager.Enable boolean:false
|
||||
rc=$?
|
||||
if [ $rc -eq 0 ]; then
|
||||
return $rc
|
||||
fi
|
||||
# NetworkManager 0.6
|
||||
$dbusSend --system --print-reply \
|
||||
--dest=org.freedesktop.NetworkManager \
|
||||
/org/freedesktop/NetworkManager \
|
||||
org.freedesktop.NetworkManager.sleep
|
||||
rc=$?
|
||||
|
||||
return $rc
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# WakeNetworkManager --
|
||||
#
|
||||
# Wake the NetworkManager daemon (maybe).
|
||||
#
|
||||
# See http://projects.gnome.org/NetworkManager/developers/spec.html .
|
||||
#
|
||||
# Results:
|
||||
# Sleep(false)request is sent to the NetworkManager D-Bus interface.
|
||||
#
|
||||
# Side effects:
|
||||
# None.
|
||||
#
|
||||
|
||||
WakeNetworkManager()
|
||||
{
|
||||
# 'which' may be a bit noisy, so we'll shush it.
|
||||
dbusSend=`which dbus-send 2>/dev/null`
|
||||
rc=$?
|
||||
if [ $rc = 0 ]; then
|
||||
# NetworkManager 0.9.1 and above + earlier versions that honor
|
||||
# the "Sleep" config boolean.
|
||||
$dbusSend --system --print-reply \
|
||||
--dest=org.freedesktop.NetworkManager \
|
||||
/org/freedesktop/NetworkManager \
|
||||
org.freedesktop.NetworkManager.Sleep boolean:false
|
||||
rc=$?
|
||||
if [ $rc = 0 ]; then
|
||||
return $rc
|
||||
fi
|
||||
# NetworkManager 0.9.0
|
||||
$dbusSend --system --print-reply \
|
||||
--dest=org.freedesktop.NetworkManager \
|
||||
/org/freedesktop/NetworkManager \
|
||||
org.freedesktop.NetworkManager.Enable boolean:true
|
||||
rc=$?
|
||||
if [ $rc = 0 ]; then
|
||||
return $rc
|
||||
fi
|
||||
# NetworkManager 0.6
|
||||
$dbusSend --system --print-reply \
|
||||
--dest=org.freedesktop.NetworkManager \
|
||||
/org/freedesktop/NetworkManager \
|
||||
org.freedesktop.NetworkManager.wake
|
||||
rc=$?
|
||||
fi
|
||||
return $rc
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# confidence_check --
|
||||
#
|
||||
# Check if the script has all the commands it needs to carry out the
|
||||
# request. So far, it requires either ip or ifconfig command to read
|
||||
# interface configuration. Ifup is not checked here. It is checked at
|
||||
# the place where we need to do individual interface state change.
|
||||
#
|
||||
|
||||
confidence_check()
|
||||
{
|
||||
ip_cmd=$(which ip 2>/dev/null)
|
||||
ifconfig_cmd=$(which ifconfig 2>/dev/null)
|
||||
ifup_cmd=$(which ifup 2>/dev/null)
|
||||
ifdown_cmd=$(which ifdown 2>/dev/null)
|
||||
|
||||
[ -z "$ifconfig_cmd" -a -z "$ip_cmd" ] && \
|
||||
Panic "ip and ifconfig not in search path."
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# main --
|
||||
#
|
||||
# Main entry point. Perform some confidence checking, then map state change
|
||||
# events to relevant networking operations.
|
||||
#
|
||||
# Results:
|
||||
# See comment at top of file.
|
||||
#
|
||||
|
||||
main() {
|
||||
exitCode=0
|
||||
activeList=/var/run/vmware-active-nics
|
||||
|
||||
case "$1" in
|
||||
poweron-vm)
|
||||
rm -f $activeList
|
||||
;;
|
||||
suspend-vm)
|
||||
TranquilizeNetworkManager
|
||||
exitCode=$?
|
||||
if [ $exitCode != 0 ]; then
|
||||
confidence_check suspend-vm
|
||||
save_active_NIC_list
|
||||
run_network_script stop
|
||||
exitCode=$?
|
||||
fi
|
||||
;;
|
||||
resume-vm)
|
||||
WakeNetworkManager
|
||||
exitCode=$?
|
||||
if [ $exitCode != 0 ]; then
|
||||
confidence_check resume-vm
|
||||
# According to hfu, "/etc/init.d/networking restart" on Debian 5.0
|
||||
# may bring down ethernet interfaces tagged as "allow-hotplug" without
|
||||
# bringing them back up.
|
||||
#
|
||||
# This is especially a problem when reverting to a live, running
|
||||
# VM snapshot where an active NIC list hadn't yet been generated,
|
||||
# resulting in sudden loss of an otherwise operational NIC.
|
||||
#
|
||||
# So, if the active list doesn't exist, assume we're coming back to
|
||||
# a live snapshot and capture the current active list now for
|
||||
# rescue later.
|
||||
if [ ! -s $activeList ]; then
|
||||
save_active_NIC_list
|
||||
fi
|
||||
|
||||
# We shall use start not restart here. Otherwise we may not be able
|
||||
# to bring back active list on distros like sles11sp2
|
||||
# -- PR 816791
|
||||
run_network_script start
|
||||
rescue_NIC
|
||||
exitCode=$?
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
log "No argument supplied."
|
||||
;;
|
||||
esac
|
||||
|
||||
return $exitCode
|
||||
}
|
||||
|
||||
main "$@"
|
||||
log "Finished '$0 $*'"
|
||||
47
etc/vmware-tools/statechange.subr
Normal file
47
etc/vmware-tools/statechange.subr
Normal file
@@ -0,0 +1,47 @@
|
||||
#!/bin/sh
|
||||
##########################################################
|
||||
# Copyright (C) 2010-2016 VMware, Inc. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation version 2.1 and no later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public
|
||||
# License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
##########################################################
|
||||
|
||||
##########################################################################
|
||||
# DO NOT modify this file directly as it will be overwritten the next
|
||||
# time the VMware Tools are installed.
|
||||
##########################################################################
|
||||
|
||||
|
||||
#
|
||||
# Panic --
|
||||
#
|
||||
# Write a formatted error message to stderr and exit.
|
||||
#
|
||||
# Results:
|
||||
# Stderr is spammed, program exits with exit code 1.
|
||||
#
|
||||
# Side effects:
|
||||
# None.
|
||||
#
|
||||
|
||||
Panic() {
|
||||
fmt="`date '+%b %d %H:%M:%S'` `basename \"$0\"`"
|
||||
if [ -n "$1" ]; then
|
||||
fmt="${fmt}: $1"
|
||||
shift
|
||||
fi
|
||||
|
||||
printf >&2 "${fmt}\n" "$@"
|
||||
exit 1
|
||||
}
|
||||
134
etc/vmware-tools/suspend-vm-default
Executable file
134
etc/vmware-tools/suspend-vm-default
Executable file
@@ -0,0 +1,134 @@
|
||||
#!/bin/sh
|
||||
##########################################################
|
||||
# Copyright (c) 2010-2016, 2023 VMware, Inc. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation version 2.1 and no later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public
|
||||
# License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
##########################################################
|
||||
|
||||
##########################################################################
|
||||
# DO NOT modify this file directly as it will be overwritten the next
|
||||
# time the VMware Tools are installed.
|
||||
##########################################################################
|
||||
|
||||
#
|
||||
# statechange.sh
|
||||
#
|
||||
# This script is a refactored version of the legacy power scripts (e.g.,
|
||||
# poweron-vm-default). It expects to be installed in their places --
|
||||
# in other words, `basename "$0"` might be poweron-vm-default.
|
||||
#
|
||||
# Handy reference/shorthand used in this doc/scripts:
|
||||
# TOOLS_CONFDIR ::= Depends on platform and installation settings. Likely
|
||||
# "/etc/vmware-tools" or
|
||||
# "/Library/Application Support/VMware Tools"
|
||||
# powerOp ::= One of "poweron-vm", "poweroff-vm", "suspend-vm", and
|
||||
# "resume-vm".
|
||||
# vmwScriptDir ::= $TOOLS_CONFDIR/scripts/vmware
|
||||
# userScriptDir ::= $TOOLS_CONFDIR/scripts/${powerOp}-default.d
|
||||
#
|
||||
# End users may install scripts of their own under $userScriptDir. They
|
||||
# are executed in alphabetical order with "$powerOp" as the only argument.
|
||||
#
|
||||
# NB: This directory layout remains to preserve backwards compatibility. End
|
||||
# users are free to write a single script which uses its only parameter
|
||||
# (${powerOp}) as a discriminator, and then install symlinks to it in each
|
||||
# of the ${powerOp}-default.d directories.
|
||||
#
|
||||
# On power-on and resume, VMware's scripts execute before the end user's. On
|
||||
# suspend and power-off, the end user's execute before VMware's. (This way,
|
||||
# VMware stops services only after the user's scripts have finished their
|
||||
# work, and conversely restores the same services before the user's scripts
|
||||
# attempt to use them.)
|
||||
#
|
||||
# Should any script exit non-zero, only its value will be saved to exitCode.
|
||||
# (Any further non-zero exits will have no effect on exitCode.) This script
|
||||
# exits with $exitCode.
|
||||
#
|
||||
# XXX Consider using the available/enabled pattern for VMware's scripts.
|
||||
#
|
||||
# XXX This should be staged as a single executable whereby the desired
|
||||
# power operation is passed in as a parameter. (I.e., one would run
|
||||
# "/path/to/statechange.sh suspend-vm" rather than having to install
|
||||
# statechange.sh as suspend-vm-default.)
|
||||
#
|
||||
|
||||
echo `date` ": Executing '$0'"
|
||||
|
||||
# See above.
|
||||
TOOLS_CONFDIR=`dirname "$0"`
|
||||
export TOOLS_CONFDIR
|
||||
|
||||
# Pull in subroutines like Panic.
|
||||
. "$TOOLS_CONFDIR"/statechange.subr
|
||||
|
||||
|
||||
#
|
||||
# RunScripts --
|
||||
#
|
||||
# Executes scripts installed under $scriptDir.
|
||||
#
|
||||
# Side effects:
|
||||
# exitCode may be incremented.
|
||||
#
|
||||
|
||||
RunScripts() {
|
||||
scriptDir="$1"
|
||||
|
||||
if [ -d "$scriptDir" ]; then
|
||||
for scriptFile in "$scriptDir"/*; do
|
||||
if [ -f "$scriptFile" -a -x "$scriptFile" ]; then
|
||||
"$scriptFile" $powerOp
|
||||
exitCode=`expr $exitCode \| $?`
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# main --
|
||||
#
|
||||
# Entry point. See comments at top of file for details.
|
||||
#
|
||||
# Results:
|
||||
# Exits with $exitCode.
|
||||
#
|
||||
|
||||
main() {
|
||||
# This is confidence checked in the case/esac bit below.
|
||||
powerOp=`basename "$0" | sed 's,-default,,'`
|
||||
exitCode=0
|
||||
|
||||
vmwScriptDir="$TOOLS_CONFDIR/scripts/vmware"
|
||||
userScriptDir="$TOOLS_CONFDIR/scripts/${powerOp}-default.d"
|
||||
|
||||
case "$powerOp" in
|
||||
poweron-vm|resume-vm)
|
||||
RunScripts "$vmwScriptDir"
|
||||
RunScripts "$userScriptDir"
|
||||
;;
|
||||
poweroff-vm|suspend-vm)
|
||||
RunScripts "$userScriptDir"
|
||||
RunScripts "$vmwScriptDir"
|
||||
;;
|
||||
*)
|
||||
Panic "Invalid argument: $powerOp"
|
||||
;;
|
||||
esac
|
||||
|
||||
return $exitCode
|
||||
}
|
||||
|
||||
main
|
||||
17
etc/vmware-tools/tools.conf
Normal file
17
etc/vmware-tools/tools.conf
Normal file
@@ -0,0 +1,17 @@
|
||||
[logging]
|
||||
# Turns on logging globally. It can still be disabled for each domain.
|
||||
# log = true
|
||||
|
||||
# Disables core dumps on fatal errors; they're enabled by default.
|
||||
# enableCoreDump = false
|
||||
|
||||
# Defines the "vmsvc" domain, logging to file
|
||||
# vmsvc.level = message
|
||||
vmsvc.handler = file
|
||||
# Setup file rotation - keep 3 files
|
||||
vmsvc.maxOldLogFiles = 3
|
||||
# Max log file size kept: 1 MB
|
||||
vmsvc.maxLogSize = 1
|
||||
|
||||
# Defines the "vmtoolsd" domain, and disable logging for it.
|
||||
# vmtoolsd.level = none
|
||||
569
etc/vmware-tools/tools.conf.example
Normal file
569
etc/vmware-tools/tools.conf.example
Normal file
@@ -0,0 +1,569 @@
|
||||
# ************************************************************************
|
||||
# Copyright (c) 2019-2024 Broadcom. All Rights Reserved.
|
||||
# The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
||||
# *************************************************************************
|
||||
|
||||
# "CAUTION: tools.conf is highly syntax sensitive file. Use extreme caution
|
||||
# while editing it. If modified, it is automatically re-loaded by
|
||||
# VMware Tools services every 5 seconds."
|
||||
#
|
||||
# Lines must not end with trailing white space.
|
||||
|
||||
[unsetenvironment]
|
||||
# Defines environment variables to be removed from the service reading
|
||||
# the configuration file. Supported formats are:
|
||||
#
|
||||
# 1. <variableName>=
|
||||
# 2. <serviceName>.<variableName>=
|
||||
#
|
||||
# Where <serviceName> refers to the 'vmsvc' and 'vmusr',
|
||||
# <variableName> refers to the name of the environment
|
||||
# variable to be removed. '=' sign after <variableName>
|
||||
# is mandatory to maintain the configuration file syntax.
|
||||
# However, anything after '=' is ignored.
|
||||
#
|
||||
# Case-sensitive behavior is defined by the operating system.
|
||||
#
|
||||
# Note: unsetenvironment group is processed before setenvironment group.
|
||||
# As the service environment is setup at start up time, any changes
|
||||
# in this group require service to be restarted in order to take effect.
|
||||
#
|
||||
# Unsetting PATH for all services:
|
||||
# PATH=
|
||||
#
|
||||
# Unsetting PATH for vmsvc only:
|
||||
# vmsvc.PATH=
|
||||
#
|
||||
# Unsetting PATH for vmusr only:
|
||||
# vmusr.PATH=
|
||||
|
||||
[setenvironment]
|
||||
# Defines environment variables to be set for the service reading
|
||||
# the configuration file. Supported formats are:
|
||||
#
|
||||
# 1. <variableName>=<variableValue>
|
||||
# 2. <serviceName>.<variableName>=<variableValue>
|
||||
#
|
||||
# Where <serviceName> refers to the 'vmsvc' and 'vmusr',
|
||||
# <variableName> refers to the name of the environment
|
||||
# variable to be set, and <variableValue> refers to the
|
||||
# value to be assigned to the environment variable.
|
||||
#
|
||||
# Case-sensitive behavior is defined by the operating system.
|
||||
#
|
||||
# Note: setenvironment group is processed after unsetenvironment group.
|
||||
# As the service environment is setup at start up time, any changes
|
||||
# in this group require service to be restarted in order to take effect.
|
||||
#
|
||||
# Setting TMPDIR for all services:
|
||||
# TMPDIR=/vmware/temp
|
||||
#
|
||||
# Setting TMPDIR for vmsvc only:
|
||||
# vmsvc.TMPDIR=/vmware/vmsvc/temp
|
||||
#
|
||||
# Setting TMPDIR for vmusr only:
|
||||
# vmusr.TMPDIR=/vmware/vmusr/temp
|
||||
|
||||
[logging]
|
||||
# set to false to turn off logging
|
||||
#log = true
|
||||
|
||||
# Log destinations for various services
|
||||
# By default, logs go to
|
||||
# %windir%/temp/vmware-<servicename>.log
|
||||
# for Windows, and
|
||||
# /var/log/vmware-<servicename>-<username>.log
|
||||
# for Linux, MacOS and Solaris.
|
||||
|
||||
# Possible values for handler are:
|
||||
# file: logs to a file. Set *.data to the file name
|
||||
# file+: same as 'file', but appends to the file
|
||||
# All file paths used in *.data value need to be in Unix
|
||||
# format (forward slashes) and in utf-8, for all operating
|
||||
# systems.
|
||||
# vmx: logs to the host (ESXi, Workstation, Fusion)
|
||||
# std: Logs to stdout for level >= 'message',
|
||||
# and to stderr for more severe than 'message'.
|
||||
# syslog: logs to syslog
|
||||
# outputdebugstring: uses OutputDebugString (Windows only)
|
||||
|
||||
# If handler is 'syslog' and the OS is Linux, the facility
|
||||
# can be set with <domain>.facility. The facility value can be one of
|
||||
# 'local0'..'local7', 'daemon' or 'user'. The default is 'user'.
|
||||
#vmtoolsd.facility = user
|
||||
|
||||
# possible values for level are:
|
||||
# debug, info, message, warning, critical, error
|
||||
# Note that "debug" level logs generate huge amounts of logs and may also
|
||||
# include sensitive data required for diagnosis. Therefore, this level should
|
||||
# be used only for the duration of diagnosis of an issue and reverted back to
|
||||
# default setting post diagnosis.
|
||||
|
||||
# Enable tools service logging to a file.
|
||||
#vmtoolsd.level = debug
|
||||
#vmtoolsd.handler = file
|
||||
#vmtoolsd.data = c:/tmp/vmtoolsd-${USER}.log
|
||||
|
||||
# Enable 'vmsvc' service logging to a file.
|
||||
#vmsvc.level = debug
|
||||
#vmsvc.handler = file
|
||||
#vmsvc.data = c:/tmp/vmsvc.log
|
||||
|
||||
# Enable VMwareResolutionSet.exe logging to a file.
|
||||
# Comment this for Linux guest, sometimes vmusr logs are not generated due
|
||||
# to this being uncommented
|
||||
#vmresset.level = debug
|
||||
#vmresset.handler = file+
|
||||
#vmresset.data = c:/tmp/vmresset.log
|
||||
|
||||
# Enable new "vmusr" service logging to a file.
|
||||
#vmusr.level = debug
|
||||
#vmusr.handler = file
|
||||
#vmusr.data = c:/tmp/vmusr.${USER}.log
|
||||
|
||||
# Set the following configuration if you want to collect the logs for
|
||||
# vmware-toolbox-cmd utility
|
||||
#toolboxcmd.level = debug
|
||||
#toolboxcmd.handler = file
|
||||
#toolboxcmd.data = c:/tmp/vmtoolboxcmd-${USER}.log
|
||||
|
||||
# With no explicit logging configuration for deployPkg, its default log path in
|
||||
# Linux is /var/log/vmware-imc/toolsDeployPkg.log, and in Windows is
|
||||
# %WINDIR%/Temp/vmware-imc/toolsDeployPkg.log
|
||||
# Set the following configuration if you want to redirect the deployPkg log to
|
||||
# any existing location other than the default.
|
||||
#deployPkg.level = debug
|
||||
#deployPkg.handler = file
|
||||
#deployPkg.data = c:/tmp/toolsDeployPkg-${USER}.log
|
||||
|
||||
# Redirecting the deployPkg log to the vmx log file. Please note that
|
||||
# "log = true" and the vmsvc log handler setting to vmx are also neccessary
|
||||
# if you want to redirect the deployPkg log to vmx.
|
||||
#log = true
|
||||
#vmsvc.level = debug
|
||||
#vmsvc.handler = vmx
|
||||
#deployPkg.level = debug
|
||||
#deployPkg.handler = vmx
|
||||
|
||||
# Enable old VMwareUser/vmware-user logging to file.
|
||||
#log.file = c:/tmp/vmtools.log
|
||||
|
||||
# Enable "hgfsServer" request handling logging to the appropriate service file.
|
||||
#hgfsServer.level = debug
|
||||
|
||||
# Enable "hgfs" manager and transport logging to the appropriate service file.
|
||||
#hgfsd.level = debug
|
||||
|
||||
#vmbackup.level = debug
|
||||
#vmbackup.handler = vmx
|
||||
|
||||
#vmvss.level = debug
|
||||
#vmvss.handler = vmx
|
||||
|
||||
# Default 4096, 0=> deactivate log caching
|
||||
#maxCacheEntries=4096
|
||||
|
||||
|
||||
# Set the following configurations for modifying network script logging file.
|
||||
# Only for Linux, Mac OS X, Solaris, and FreeBSD
|
||||
#network.handler = file
|
||||
#network.data = /tmp/network.log
|
||||
#network.maxOldLogFiles = 9
|
||||
|
||||
# Redirect network script logs to vmx
|
||||
#network.handler = vmx
|
||||
|
||||
[powerops]
|
||||
# Custom scripts for power operations
|
||||
# This can be an absolute path, or a path relative to the tools
|
||||
# install path (/etc/vmware-tools/ for Linux).
|
||||
# For more information on configuring and querying custom scripts with
|
||||
# VMware Tools, see the "Use Custom VMware Tools Scripts" section of the
|
||||
# "VMware Tools Configuration Utility User's Guide".
|
||||
|
||||
# Runs when the virtual machine is being powered on rather than resumed.
|
||||
# Also runs after virtual machine restarts.
|
||||
# The default script has no effect on networking for the virtual machine.
|
||||
#poweron-script=poweron-vm-default
|
||||
|
||||
# Runs when the virtual machine is being powered off or reset.
|
||||
# The default script has no effect on networking for the virtual machine.
|
||||
#poweroff-script=poweroff-vm-default
|
||||
|
||||
# Runs when the virtual machine is resumed after it was suspended.
|
||||
# On Windows guest operating systems, if the virtual machine is configured to
|
||||
# use DHCP, the default script renews the IP address of the virtual machine.
|
||||
# On Linux, Mac OS X, Solaris, and FreeBSD guest operating systems,
|
||||
# this script starts networking for the virtual machine.
|
||||
#resume-script=resume-vm-default
|
||||
|
||||
# Runs when the virtual machine is being suspended.
|
||||
# On Windows guest operating systems, if the virtual machine is configured
|
||||
# to use DHCP, the default script releases the IP address of the virtual
|
||||
# machine.
|
||||
# On Linux, Mac OS X, Solaris, and FreeBSD, this script stops networking for
|
||||
# the virtual machine.
|
||||
#suspend-script=suspend-vm-default
|
||||
|
||||
[guestinfo]
|
||||
|
||||
# Set to true to deactivate the perf monitor.
|
||||
#disable-perf-mon=false
|
||||
|
||||
# Set to true to deactivate DiskInfo.
|
||||
#disable-query-diskinfo=false
|
||||
|
||||
# User-defined poll interval in seconds. Set to 0 to deactivate polling.
|
||||
#poll-interval=30
|
||||
|
||||
# User-defined stats interval in seconds. Set to 0 to deactivate stats collection.
|
||||
#stats-interval=20
|
||||
|
||||
# Whether stat results should be written to the log.
|
||||
#enable-stat-logging=false
|
||||
|
||||
# Set a comma separated list of network interface names that can be the
|
||||
# primary ones. These will be sorted to the top. Interface names can use
|
||||
# wildcards like '*' and '?'. Default is no value.
|
||||
#primary-nics=
|
||||
|
||||
# Set a comma separated list of network interface names that have low priority
|
||||
# (so they will be sorted to the end). Interface names can use wildcards like
|
||||
# '*' and '?'. Default is no value.
|
||||
#low-priority-nics=
|
||||
|
||||
# Set a comma separated list of network interface names that shall be ignored.
|
||||
# Interface names can use wildcards like '*' and '?'.
|
||||
# Default for Linux and all non-Windows:
|
||||
#exclude-nics=veth*,docker*,virbr*,antrea-*,cali*
|
||||
# Default for Windows:
|
||||
#exclude-nics=vEthernet*
|
||||
|
||||
# max umber of IPv4 routes to gather.
|
||||
#max-ipv4-routes=100
|
||||
|
||||
# max umber of IPv6 routes to gather.
|
||||
#max-ipv6-routes=100
|
||||
|
||||
# whether to include reserved space in diskInfo space metrics on Linux
|
||||
#diskinfo-include-reserved=false
|
||||
|
||||
[globalconf]
|
||||
|
||||
# The GlobalConf feature provides an ability for the vSphere administrators
|
||||
# to distribute a 'VMware Tools Configuration File' (tools.conf) via the
|
||||
# GuestStore for multiple VMs at scale.
|
||||
|
||||
# Defines the configuration to activate/deactivate the GlobalConf module.
|
||||
# Set to true to enable(activate) the module.
|
||||
# Set to false to deactivate the module. Default false.
|
||||
#enabled=false
|
||||
|
||||
# Defines a custom GlobalConf poll interval (in seconds).
|
||||
# Default 3600 seconds. Minimum 1800 seconds.
|
||||
#poll-interval=3600
|
||||
|
||||
# Defines the global configuration resource in GuestStore.
|
||||
# Windows guests
|
||||
#resource=/vmware/configurations/vmtools/windows/tools.conf
|
||||
#
|
||||
# Linux guests
|
||||
#resource=/vmware/configurations/vmtools/linux/tools.conf
|
||||
|
||||
[componentmgr]
|
||||
|
||||
# This plugin manages the known and enabled components add/remove status.
|
||||
# The plugin polls at regular interval and triggers action add/remove for
|
||||
# all the known and enabled components in the componentMgr plugin.
|
||||
|
||||
# Default and minimum polling interval in seconds (0 => polling deactivated)
|
||||
#poll-interval=180
|
||||
|
||||
# Comma separated list of components managed by the plugin. If not specified,
|
||||
# default value is all, which means all components are enabled by default.
|
||||
# A special value of none means no component, which is equivalent to disabling
|
||||
# the plugin completely. Value is parsed left to right and parsing stops at
|
||||
# first occurrence of all or none or end of line.
|
||||
#included=all
|
||||
|
||||
[appinfo]
|
||||
|
||||
# This plugin collects info about running applications in guest OS.
|
||||
|
||||
# Set to true to deactivate the appinfo plugin.
|
||||
#disabled=false
|
||||
|
||||
# User-defined poll interval in seconds. Set to 0 to deactivate the plugin.
|
||||
#poll-interval=21600
|
||||
|
||||
# For Windows guest, set to true to use WMI for getting the application
|
||||
# version info, otherwise native Win32 API is used.
|
||||
#useWMI=false
|
||||
|
||||
# Whether to remove the duplicate applications information in the
|
||||
# guestinfo variable.
|
||||
#remove-duplicates=true
|
||||
|
||||
[containerinfo]
|
||||
|
||||
# This plugin collects info about running containers in guest OS.
|
||||
|
||||
# User-defined poll interval in seconds. Set to 0 to deactivate the plugin.
|
||||
#poll-interval=21600
|
||||
|
||||
# Maximum number of containers to be retrieved per namespace.
|
||||
#max-containers=256
|
||||
|
||||
# Whether to remove the duplicate containers information in the
|
||||
# guestinfo variable.
|
||||
#remove-duplicates=true
|
||||
|
||||
# Unix socket to use to communicate with the docker daemon.
|
||||
#docker-unix-socket=/var/run/docker.sock
|
||||
|
||||
# The unix socket to connect to communicate with containerd grpc server
|
||||
# for retrieving the list of running containers.
|
||||
#containerd-unix-socket=/run/containerd/containerd.sock
|
||||
|
||||
# List of namespaces to be queried for the running containers.
|
||||
# The value for this key is a comman separated list.
|
||||
#allowed-namespaces=moby,k8s.io,default
|
||||
|
||||
[servicediscovery]
|
||||
|
||||
# This plugin provides admins with additional info for better VM management.
|
||||
|
||||
# Set to true to deactivate the servicediscovery plugin.
|
||||
#disabled=false
|
||||
|
||||
[unity]
|
||||
#
|
||||
# Unity is available for Windows only.
|
||||
#
|
||||
|
||||
# Set to true to override system decisions about whether unity should be available.
|
||||
#forceEnable=false
|
||||
|
||||
# Override the desktop background color when in Unity mode.
|
||||
#desktop.backgroundColor=
|
||||
|
||||
# The socket type can be 'ipsocket' or 'vsocket':
|
||||
#pbrpc.socketType
|
||||
|
||||
[resolutionKMS]
|
||||
|
||||
# Default is true if tools finds an xf86-video-vmware driver with
|
||||
# version >= 13.2.0. If you don't have X installed, set this to true manually.
|
||||
# This only affects tools for Linux.
|
||||
#enable=true
|
||||
|
||||
[guestosinfo]
|
||||
|
||||
# Override the short OS name sent by tools.
|
||||
#short-name=
|
||||
|
||||
# Override the long OS name sent by tools. Ignored if short-name is not set.
|
||||
#long-name=
|
||||
|
||||
[vmbackup]
|
||||
|
||||
# enableSyncDriver is Linux only.
|
||||
#enableSyncDriver=true
|
||||
|
||||
# enableVSS is Windows only.
|
||||
#enableVSS=true
|
||||
|
||||
# vss.disableAppQuiescing is Windows only.
|
||||
# This setting can be used to force file system quiescing on Windows systems
|
||||
# having problems with application quiescing.
|
||||
# See https://kb.vmware.com/s/article/2146204
|
||||
#vss.disableAppQuiescing=false
|
||||
|
||||
# Linux:
|
||||
# The value of excludedFileSystems is a comma-separated list of glob-style
|
||||
# patterns specifying the file system mount points to be excluded from
|
||||
# quiescing operation. The patterns may use '*' (wildcard) to represent
|
||||
# any string of characters and '?' (joker) to represent any single character.
|
||||
# The characters represented by the patterns '*' and '?' may include any
|
||||
# characters, including '/'.
|
||||
#
|
||||
# Windows:
|
||||
# The value of excludedFileSystems is a comma-separated list of mount points
|
||||
# specifying the volumes to be excluded from quiesced snapshots.
|
||||
# Each mount point must be a full path separated and ended with "\\".
|
||||
# For example, to exclude volumes with drive letter 'E' or mount point
|
||||
# "F:\mount\", use:
|
||||
# excludedFileSystems=E:\\,F:\\mount\\
|
||||
# This setting is ignored when application quiescing is used.
|
||||
|
||||
#excludedFileSystems=
|
||||
|
||||
# Linux:
|
||||
# It is possible that filesystems are being frozen in pre-freeze scripts
|
||||
# to control the order in which those specific filesystems are to be frozen.
|
||||
# The vmtoolsd process must be informed of all such filesystems with the help
|
||||
# of "excludedFileSystems" setting of tools.conf.
|
||||
#
|
||||
# A temporary workaround is available (starting from 12.3.0) for admins to allow
|
||||
# quiesceing operation to succeed until the "excludedFileSystems" list
|
||||
# is configured.
|
||||
#
|
||||
# If another process thaws the file system while a quiescing operation
|
||||
# operation is ongoing, the snapshot may be compromised. Once the
|
||||
# "excludedFileSystems" list is configured this setting MUST be unset (or set
|
||||
# to false).
|
||||
#
|
||||
# The value of ignoreFrozenFileSystems is a true or false; the default is
|
||||
# false.
|
||||
#
|
||||
# Set to true to ignore pre-frozen file systems during the quiescing operation.
|
||||
#
|
||||
# ignoreFrozenFileSystems is Linux only (Not supported on Windows).
|
||||
#ignoreFrozenFileSystems=false
|
||||
|
||||
# execScripts specifies whether to execute scripts as part of the quiescing
|
||||
# operation. Scripts are executed from the scripts directory along with the
|
||||
# legacy scripts.
|
||||
#
|
||||
# Scripts directory:
|
||||
# Linux: /etc/vmware-tools/backupScripts.d
|
||||
# Windows: <Install-Path>\backupScripts.d
|
||||
#
|
||||
# Legacy scripts:
|
||||
# Linux: /usr/sbin/pre-freeze-script and /usr/sbin/post-thaw-script
|
||||
# Windows: C:\windows\pre-freeze-script.bat and C:\windows\post-thaw-script.bat
|
||||
#
|
||||
# On each quiescing operation, scripts are invoked before quiescing and
|
||||
# either after a quiescing failure or after thawing.
|
||||
# The first argument passed to each script is
|
||||
# "freeze", when invoked before quiescing;
|
||||
# "freezefail", when invoked after a quiescing failure; or
|
||||
# "thaw", when invoked after thawing.
|
||||
# When invoked before quiescing, scripts from the directory are invoked in
|
||||
# alphabetically ascending order; when invoked following a quiescing failure
|
||||
# or thawing, they are invoked in the reverse order. Any subdirectories are
|
||||
# ignored.
|
||||
# Note that the legacy pre-freeze-script is invoked only before quiescing as
|
||||
# the first script and post-thaw-script is invoked after a quiescing failure
|
||||
# as well as after thawing as the last script.
|
||||
|
||||
#execScripts=true
|
||||
|
||||
# Additional argument to be passed to scripts
|
||||
#scriptArg=
|
||||
|
||||
[guestoperations]
|
||||
|
||||
# to deactivate all guest ops
|
||||
#disabled=false
|
||||
|
||||
# Whether to use vgauth for guest op authentication
|
||||
#useVGAuth=true
|
||||
|
||||
[autoupgrade]
|
||||
|
||||
# The "allow-upgrade" option controls whether automatic upgrades (or reinstalls)
|
||||
# are allowed.
|
||||
#allow-upgrade=true
|
||||
|
||||
# The autoupgrade plugin is only available for Windows.
|
||||
# The "allow-add-feature" and "allow-remove-feature" control whether adding
|
||||
# or removing a feature will be allowed.
|
||||
# The allow-msi-transforms option controls whether TRANSFORMS property is
|
||||
# allowed.
|
||||
|
||||
#allow-add-feature=true
|
||||
#allow-remove-feature=true
|
||||
#allow-msi-transforms=false
|
||||
|
||||
[deployPkg]
|
||||
|
||||
# to deactivate guest customization
|
||||
#enable-customization=false
|
||||
|
||||
# This "wait-cloudinit-timeout" option controls how long does guest
|
||||
# customization wait for cloud-init execution done when it detects cloud-init
|
||||
# is available in guest.
|
||||
# Guest customization will continue executing as soon as it detects cloud-init
|
||||
# execution done within this option's value in seconds.
|
||||
# If cloud-init is still running beyond this option's value in seconds, guest
|
||||
# customization will continue executing regardless cloud-init execution status.
|
||||
# Minimum valid value is 0 second, set to 0 to deactivate waiting.
|
||||
# Maximum valid value is 1800 seconds (30 minutes).
|
||||
# Default value is 30 seconds.
|
||||
#wait-cloudinit-timeout=30
|
||||
|
||||
[cbhelper]
|
||||
|
||||
# The carbonblack helper plugin is only available for Windows.
|
||||
|
||||
# User-defined poll interval in seconds. Set to 0 to deactivate polling.
|
||||
#poll-interval=60
|
||||
|
||||
[gueststoreupgrade]
|
||||
|
||||
# The guestStoreUpgrade plugin is only available for Windows.
|
||||
|
||||
# The policy value is one of the settings listed below.
|
||||
# off = no VMware Tools upgrade from GuestStore. Feature is
|
||||
# deactivated.
|
||||
# manual = (Default) VMware Tools upgrade from GuestStore is
|
||||
# manually started.
|
||||
# powercycle = VMware Tools upgrade from GuestStore on system
|
||||
# power on.
|
||||
|
||||
#policy=manual
|
||||
|
||||
# Time interval for periodically checking available VMware Tools package
|
||||
# version in the GuestStore.
|
||||
# User-defined poll interval in seconds. Set to 0 to deactivate polling.
|
||||
# Minimum valid value is 900 seconds (15 minutes)
|
||||
# Default value is 3600 seconds (60 minutes)
|
||||
#poll-interval=3600
|
||||
|
||||
# VMware Tools package version metadata key to specify a VMware Tools
|
||||
# package version in the GuestStore.
|
||||
# User-defined key for VMware Tools package version.
|
||||
# Default value is "vmtools" which points to the latest version of
|
||||
# VMware Tools package in the GuestStore.
|
||||
#vmtools-version-key=vmtools
|
||||
|
||||
[devicehelper]
|
||||
|
||||
# The deviceHelper plugin is only available for Windows.
|
||||
|
||||
# Set to true to deactivate the deviceHelper plugin.
|
||||
#disabled=false
|
||||
|
||||
[gitray]
|
||||
|
||||
# The gitray plugin is only available for Windows
|
||||
# with Complete VMTools install or with File
|
||||
# Introspection Custom install.
|
||||
|
||||
# By default the gitray plugin is enabled
|
||||
# To disable gitray user plugin set
|
||||
#enabled=false
|
||||
|
||||
[giamsi]
|
||||
|
||||
# The giamsi plugin for the Windows AntiMalware Scan Interface (AMSI) configuration.
|
||||
|
||||
# By default the fileless AMSI is enabled.
|
||||
# To disable the ASMI plugin
|
||||
#enabled=false
|
||||
|
||||
# Valid values are subject to change with future VMware Tools releases.
|
||||
# Refer to the tools.conf.example for any changes.
|
||||
|
||||
# By default, the maximum client connections supported is 32.
|
||||
# The values in range are 16<amsi-max-client-connections<64.
|
||||
# Values lesser than the minimum will use the minimum (16) value.
|
||||
# Values greater than the maximum will use the maximum (64) value.
|
||||
#amsi-max-client-connections=24
|
||||
|
||||
# By default, the maximum script size supported is 131072 (128kb) bytes
|
||||
# The range of values supported are 4096<amsi-max-script-size-in-bytes<524288
|
||||
# Values lesser than the minimum will use the minimum (4096) value.
|
||||
# Values greater than the maximum will use the maximum (524288) value.
|
||||
#amsi-max-script-size-in-bytes=262144
|
||||
5
etc/vmware-tools/vgauth.conf
Normal file
5
etc/vmware-tools/vgauth.conf
Normal file
@@ -0,0 +1,5 @@
|
||||
[service]
|
||||
samlSchemaDir = /etc/vmware-tools/vgauth/schemas
|
||||
|
||||
[localization]
|
||||
msgCatalog = /usr/share/open-vm-tools
|
||||
@@ -0,0 +1,142 @@
|
||||
<?xml version='1.0'?>
|
||||
<!DOCTYPE schema PUBLIC "-//W3C//DTD XMLSCHEMA 200102//EN" "XMLSchema.dtd" [
|
||||
<!ENTITY % s ''>
|
||||
<!ENTITY % p ''>
|
||||
<!-- keep this XML 1.0 correct -->
|
||||
<!ATTLIST schema xmlns:hfp CDATA #IMPLIED
|
||||
xmlns:xhtml CDATA #IMPLIED
|
||||
xmlns:xsi CDATA #IMPLIED
|
||||
xsi:schemaLocation CDATA #IMPLIED>
|
||||
<!ELEMENT xhtml:p ANY>
|
||||
<!ELEMENT xhtml:em ANY>
|
||||
]>
|
||||
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3.org/2001/XMLSchema-hasFacetAndProperty" xmlns:hfp="http://www.w3.org/2001/XMLSchema-hasFacetAndProperty" xmlns:xhtml="http://www.w3.org/1999/xhtml"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.w3.org/1999/xhtml http://www.w3.org/1999/xhtml.xsd">
|
||||
|
||||
<annotation>
|
||||
<documentation>
|
||||
<xhtml:p> This schema defines 2 elements for use in the
|
||||
appinfo portion section of (potentially) all builtin datatypes in the schema
|
||||
for XML Schema Part 2: Datatypes. </xhtml:p>
|
||||
<xhtml:p> One intended use of
|
||||
this appinfo is in the generation of the HTML version of the XML Schema Part 2:
|
||||
Datatypes specification itself. All portions of the HTML text which describe
|
||||
the facets and/or properties of each datatype is generated by an XSLT
|
||||
transformation which keys off of this appinfo. </xhtml:p>
|
||||
<xhtml:p> Schema
|
||||
processors may have another use for this appinfo (although one certainly not
|
||||
required in any way by the specification). The information may be useful in
|
||||
dynamically building validation modules/classes and/or user-interfaces for
|
||||
schema creation. </xhtml:p>
|
||||
</documentation>
|
||||
</annotation>
|
||||
|
||||
<element name="hasFacet">
|
||||
<annotation>
|
||||
<documentation>
|
||||
<xhtml:p>
|
||||
hasFacet is used to signal that the contraining facet
|
||||
given in the name attribute is applicable to a primitive
|
||||
datatype (and all types derived from it).
|
||||
</xhtml:p>
|
||||
<xhtml:p>
|
||||
Note: this element will only appear in the appinfo of
|
||||
primitive types or built-in types derived by "list".
|
||||
</xhtml:p>
|
||||
<xhtml:p>
|
||||
A schema processor (or the XSLT which generates the
|
||||
HTML version of the XML Schema Part 2: Datatypes
|
||||
specification) which reads a derived simpleType
|
||||
definition should walk up the base type chain until
|
||||
it reaches the primitive type at the top of the chain
|
||||
and "push" all facets found their down to all derived
|
||||
types in the chain.
|
||||
</xhtml:p>
|
||||
</documentation>
|
||||
</annotation>
|
||||
<complexType>
|
||||
<attribute name="name" use="required">
|
||||
<simpleType>
|
||||
<annotation>
|
||||
<documentation>
|
||||
<xhtml:p>
|
||||
This datatype names all existing contraining facets.
|
||||
</xhtml:p>
|
||||
<xhtml:p>
|
||||
Question: should each of the enumerations below be
|
||||
given a documentation annotation, which would contain
|
||||
the text to be used in the definition of the facet
|
||||
in the XML Schema Part 2: Datatypes specification?
|
||||
Might be nice to try to collect all of that information
|
||||
together here.
|
||||
</xhtml:p>
|
||||
</documentation>
|
||||
</annotation>
|
||||
<restriction base="NMTOKEN">
|
||||
<enumeration value="length"/>
|
||||
<enumeration value="minLength"/>
|
||||
<enumeration value="maxLength"/>
|
||||
<enumeration value="pattern"/>
|
||||
<enumeration value="enumeration"/>
|
||||
<enumeration value="maxInclusive"/>
|
||||
<enumeration value="maxExclusive"/>
|
||||
<enumeration value="minInclusive"/>
|
||||
<enumeration value="minExclusive"/>
|
||||
<enumeration value="totalDigits"/>
|
||||
<enumeration value="fractionDigits"/>
|
||||
<enumeration value="whiteSpace"/>
|
||||
<enumeration value="maxScale"/>
|
||||
<enumeration value="minScale"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
</attribute>
|
||||
</complexType>
|
||||
</element>
|
||||
|
||||
<element name="hasProperty">
|
||||
<annotation>
|
||||
<documentation>
|
||||
<xhtml:p> hasProperty is used to signal that the property
|
||||
given in the name attribute has the value given in the value attribute for the
|
||||
datatype in which it occurs (and all types derived from it, which do not
|
||||
override the value of the property). </xhtml:p>
|
||||
<xhtml:p> Note: this element
|
||||
may appear in the appinfo of primitive and built-in derived types. </xhtml:p>
|
||||
<xhtml:p> A schema processor (or the XSLT which generates the HTML version of
|
||||
the XML Schema Part 2: Datatypes specification) which reads a simpleType
|
||||
definition should gather the information from any occurances of hasProperty in
|
||||
that simpleType definition, and then walk up the base type chain gathering
|
||||
information from any occurances of hasProperty (unless a value was given to the
|
||||
name in a dervied type) until either it reaches the primitive type at the top
|
||||
of the chain or it has gathered values for all existing properties. </xhtml:p>
|
||||
</documentation>
|
||||
</annotation>
|
||||
<complexType>
|
||||
<attribute name="name" use="required">
|
||||
<simpleType>
|
||||
<annotation>
|
||||
<documentation>
|
||||
<xhtml:p> This datatype names all existing fundamental
|
||||
facets, otherwise known as properties (with the exception of
|
||||
<xhtml:em>equality</xhtml:em>, a property which has no
|
||||
<xhtml:em>value</xhtml:em>). </xhtml:p>
|
||||
<xhtml:p> Question: should each of
|
||||
the enumerations below be given a documentation annotation, which would contain
|
||||
the text to be used in the definition of the properties in the XML Schema Part
|
||||
2: Datatypes specification? Might be nice to try to collect all of that
|
||||
information together here. </xhtml:p>
|
||||
</documentation>
|
||||
</annotation>
|
||||
<restriction base="NMTOKEN">
|
||||
<enumeration value="ordered"/>
|
||||
<enumeration value="bounded"/>
|
||||
<enumeration value="cardinality"/>
|
||||
<enumeration value="numeric"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
</attribute>
|
||||
<attribute name="value" type="normalizedString" use="required"/>
|
||||
</complexType>
|
||||
</element>
|
||||
</schema>
|
||||
37
etc/vmware-tools/vgauth/schemas/XMLSchema-instance.xsd
Normal file
37
etc/vmware-tools/vgauth/schemas/XMLSchema-instance.xsd
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version='1.0'?>
|
||||
<!DOCTYPE xs:schema SYSTEM "XMLSchema.dtd" [
|
||||
<!ELEMENT p ANY>
|
||||
<!ELEMENT a ANY>
|
||||
<!ATTLIST a href CDATA #IMPLIED>
|
||||
<!ELEMENT hr ANY>
|
||||
<!ELEMENT h1 ANY>
|
||||
<!ELEMENT br ANY>
|
||||
]>
|
||||
<xs:schema targetNamespace="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<h1>XML Schema instance namespace</h1>
|
||||
<p>See <a href="http://www.w3.org/TR/xmlschema-1/">the XML Schema
|
||||
Recommendation</a> for an introduction</p>
|
||||
|
||||
|
||||
<hr />
|
||||
$Date: 2001/03/16 20:25:57 $<br />
|
||||
$Id: XMLSchema-instance.xsd,v 1.4 2001/03/16 20:25:57 ht Exp $
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:annotation>
|
||||
<xs:documentation><p>This schema should never be used as such:
|
||||
<a href="http://www.w3.org/TR/xmlschema-1/#no-xsi">the XML
|
||||
Schema Recommendation</a> forbids the declaration of
|
||||
attributes in this namespace</p>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:attribute name="nil"/>
|
||||
<xs:attribute name="type"/>
|
||||
<xs:attribute name="schemaLocation"/>
|
||||
<xs:attribute name="noNamespaceSchemaLocation"/>
|
||||
</xs:schema>
|
||||
402
etc/vmware-tools/vgauth/schemas/XMLSchema.dtd
Normal file
402
etc/vmware-tools/vgauth/schemas/XMLSchema.dtd
Normal file
@@ -0,0 +1,402 @@
|
||||
<!-- DTD for XML Schemas: Part 1: Structures
|
||||
Public Identifier: "-//W3C//DTD XMLSCHEMA 200102//EN"
|
||||
Official Location: http://www.w3.org/2001/XMLSchema.dtd -->
|
||||
<!-- $Id: XMLSchema.dtd,v 1.31 2001/10/24 15:50:16 ht Exp $ -->
|
||||
<!-- Note this DTD is NOT normative, or even definitive. --> <!--d-->
|
||||
<!-- prose copy in the structures REC is the definitive version --> <!--d-->
|
||||
<!-- (which shouldn't differ from this one except for this --> <!--d-->
|
||||
<!-- comment and entity expansions, but just in case) --> <!--d-->
|
||||
<!-- With the exception of cases with multiple namespace
|
||||
prefixes for the XML Schema namespace, any XML document which is
|
||||
not valid per this DTD given redefinitions in its internal subset of the
|
||||
'p' and 's' parameter entities below appropriate to its namespace
|
||||
declaration of the XML Schema namespace is almost certainly not
|
||||
a valid schema. -->
|
||||
|
||||
<!-- The simpleType element and its constituent parts
|
||||
are defined in XML Schema: Part 2: Datatypes -->
|
||||
<!ENTITY % xs-datatypes PUBLIC 'datatypes' 'datatypes.dtd' >
|
||||
|
||||
<!ENTITY % p 'xs:'> <!-- can be overriden in the internal subset of a
|
||||
schema document to establish a different
|
||||
namespace prefix -->
|
||||
<!ENTITY % s ':xs'> <!-- if %p is defined (e.g. as foo:) then you must
|
||||
also define %s as the suffix for the appropriate
|
||||
namespace declaration (e.g. :foo) -->
|
||||
<!ENTITY % nds 'xmlns%s;'>
|
||||
|
||||
<!-- Define all the element names, with optional prefix -->
|
||||
<!ENTITY % schema "%p;schema">
|
||||
<!ENTITY % complexType "%p;complexType">
|
||||
<!ENTITY % complexContent "%p;complexContent">
|
||||
<!ENTITY % simpleContent "%p;simpleContent">
|
||||
<!ENTITY % extension "%p;extension">
|
||||
<!ENTITY % element "%p;element">
|
||||
<!ENTITY % unique "%p;unique">
|
||||
<!ENTITY % key "%p;key">
|
||||
<!ENTITY % keyref "%p;keyref">
|
||||
<!ENTITY % selector "%p;selector">
|
||||
<!ENTITY % field "%p;field">
|
||||
<!ENTITY % group "%p;group">
|
||||
<!ENTITY % all "%p;all">
|
||||
<!ENTITY % choice "%p;choice">
|
||||
<!ENTITY % sequence "%p;sequence">
|
||||
<!ENTITY % any "%p;any">
|
||||
<!ENTITY % anyAttribute "%p;anyAttribute">
|
||||
<!ENTITY % attribute "%p;attribute">
|
||||
<!ENTITY % attributeGroup "%p;attributeGroup">
|
||||
<!ENTITY % include "%p;include">
|
||||
<!ENTITY % import "%p;import">
|
||||
<!ENTITY % redefine "%p;redefine">
|
||||
<!ENTITY % notation "%p;notation">
|
||||
|
||||
<!-- annotation elements -->
|
||||
<!ENTITY % annotation "%p;annotation">
|
||||
<!ENTITY % appinfo "%p;appinfo">
|
||||
<!ENTITY % documentation "%p;documentation">
|
||||
|
||||
<!-- Customisation entities for the ATTLIST of each element type.
|
||||
Define one of these if your schema takes advantage of the
|
||||
anyAttribute='##other' in the schema for schemas -->
|
||||
|
||||
<!ENTITY % schemaAttrs ''>
|
||||
<!ENTITY % complexTypeAttrs ''>
|
||||
<!ENTITY % complexContentAttrs ''>
|
||||
<!ENTITY % simpleContentAttrs ''>
|
||||
<!ENTITY % extensionAttrs ''>
|
||||
<!ENTITY % elementAttrs ''>
|
||||
<!ENTITY % groupAttrs ''>
|
||||
<!ENTITY % allAttrs ''>
|
||||
<!ENTITY % choiceAttrs ''>
|
||||
<!ENTITY % sequenceAttrs ''>
|
||||
<!ENTITY % anyAttrs ''>
|
||||
<!ENTITY % anyAttributeAttrs ''>
|
||||
<!ENTITY % attributeAttrs ''>
|
||||
<!ENTITY % attributeGroupAttrs ''>
|
||||
<!ENTITY % uniqueAttrs ''>
|
||||
<!ENTITY % keyAttrs ''>
|
||||
<!ENTITY % keyrefAttrs ''>
|
||||
<!ENTITY % selectorAttrs ''>
|
||||
<!ENTITY % fieldAttrs ''>
|
||||
<!ENTITY % includeAttrs ''>
|
||||
<!ENTITY % importAttrs ''>
|
||||
<!ENTITY % redefineAttrs ''>
|
||||
<!ENTITY % notationAttrs ''>
|
||||
<!ENTITY % annotationAttrs ''>
|
||||
<!ENTITY % appinfoAttrs ''>
|
||||
<!ENTITY % documentationAttrs ''>
|
||||
|
||||
<!ENTITY % complexDerivationSet "CDATA">
|
||||
<!-- #all or space-separated list drawn from derivationChoice -->
|
||||
<!ENTITY % blockSet "CDATA">
|
||||
<!-- #all or space-separated list drawn from
|
||||
derivationChoice + 'substitution' -->
|
||||
|
||||
<!ENTITY % mgs '%all; | %choice; | %sequence;'>
|
||||
<!ENTITY % cs '%choice; | %sequence;'>
|
||||
<!ENTITY % formValues '(qualified|unqualified)'>
|
||||
|
||||
|
||||
<!ENTITY % attrDecls '((%attribute;| %attributeGroup;)*,(%anyAttribute;)?)'>
|
||||
|
||||
<!ENTITY % particleAndAttrs '((%mgs; | %group;)?, %attrDecls;)'>
|
||||
|
||||
<!-- This is used in part2 -->
|
||||
<!ENTITY % restriction1 '((%mgs; | %group;)?)'>
|
||||
|
||||
%xs-datatypes;
|
||||
|
||||
<!-- the duplication below is to produce an unambiguous content model
|
||||
which allows annotation everywhere -->
|
||||
<!ELEMENT %schema; ((%include; | %import; | %redefine; | %annotation;)*,
|
||||
((%simpleType; | %complexType;
|
||||
| %element; | %attribute;
|
||||
| %attributeGroup; | %group;
|
||||
| %notation; ),
|
||||
(%annotation;)*)* )>
|
||||
<!ATTLIST %schema;
|
||||
targetNamespace %URIref; #IMPLIED
|
||||
version CDATA #IMPLIED
|
||||
%nds; %URIref; #FIXED 'http://www.w3.org/2001/XMLSchema'
|
||||
xmlns CDATA #IMPLIED
|
||||
finalDefault %complexDerivationSet; ''
|
||||
blockDefault %blockSet; ''
|
||||
id ID #IMPLIED
|
||||
elementFormDefault %formValues; 'unqualified'
|
||||
attributeFormDefault %formValues; 'unqualified'
|
||||
xml:lang CDATA #IMPLIED
|
||||
%schemaAttrs;>
|
||||
<!-- Note the xmlns declaration is NOT in the Schema for Schemas,
|
||||
because at the Infoset level where schemas operate,
|
||||
xmlns(:prefix) is NOT an attribute! -->
|
||||
<!-- The declaration of xmlns is a convenience for schema authors -->
|
||||
|
||||
<!-- The id attribute here and below is for use in external references
|
||||
from non-schemas using simple fragment identifiers.
|
||||
It is NOT used for schema-to-schema reference, internal or
|
||||
external. -->
|
||||
|
||||
<!-- a type is a named content type specification which allows attribute
|
||||
declarations-->
|
||||
<!-- -->
|
||||
|
||||
<!ELEMENT %complexType; ((%annotation;)?,
|
||||
(%simpleContent;|%complexContent;|
|
||||
%particleAndAttrs;))>
|
||||
|
||||
<!ATTLIST %complexType;
|
||||
name %NCName; #IMPLIED
|
||||
id ID #IMPLIED
|
||||
abstract %boolean; #IMPLIED
|
||||
final %complexDerivationSet; #IMPLIED
|
||||
block %complexDerivationSet; #IMPLIED
|
||||
mixed (true|false) 'false'
|
||||
%complexTypeAttrs;>
|
||||
|
||||
<!-- particleAndAttrs is shorthand for a root type -->
|
||||
<!-- mixed is disallowed if simpleContent, overriden if complexContent
|
||||
has one too. -->
|
||||
|
||||
<!-- If anyAttribute appears in one or more referenced attributeGroups
|
||||
and/or explicitly, the intersection of the permissions is used -->
|
||||
|
||||
<!ELEMENT %complexContent; ((%annotation;)?, (%restriction;|%extension;))>
|
||||
<!ATTLIST %complexContent;
|
||||
mixed (true|false) #IMPLIED
|
||||
id ID #IMPLIED
|
||||
%complexContentAttrs;>
|
||||
|
||||
<!-- restriction should use the branch defined above, not the simple
|
||||
one from part2; extension should use the full model -->
|
||||
|
||||
<!ELEMENT %simpleContent; ((%annotation;)?, (%restriction;|%extension;))>
|
||||
<!ATTLIST %simpleContent;
|
||||
id ID #IMPLIED
|
||||
%simpleContentAttrs;>
|
||||
|
||||
<!-- restriction should use the simple branch from part2, not the
|
||||
one defined above; extension should have no particle -->
|
||||
|
||||
<!ELEMENT %extension; ((%annotation;)?, (%particleAndAttrs;))>
|
||||
<!ATTLIST %extension;
|
||||
base %QName; #REQUIRED
|
||||
id ID #IMPLIED
|
||||
%extensionAttrs;>
|
||||
|
||||
<!-- an element is declared by either:
|
||||
a name and a type (either nested or referenced via the type attribute)
|
||||
or a ref to an existing element declaration -->
|
||||
|
||||
<!ELEMENT %element; ((%annotation;)?, (%complexType;| %simpleType;)?,
|
||||
(%unique; | %key; | %keyref;)*)>
|
||||
<!-- simpleType or complexType only if no type|ref attribute -->
|
||||
<!-- ref not allowed at top level -->
|
||||
<!ATTLIST %element;
|
||||
name %NCName; #IMPLIED
|
||||
id ID #IMPLIED
|
||||
ref %QName; #IMPLIED
|
||||
type %QName; #IMPLIED
|
||||
minOccurs %nonNegativeInteger; #IMPLIED
|
||||
maxOccurs CDATA #IMPLIED
|
||||
nillable %boolean; #IMPLIED
|
||||
substitutionGroup %QName; #IMPLIED
|
||||
abstract %boolean; #IMPLIED
|
||||
final %complexDerivationSet; #IMPLIED
|
||||
block %blockSet; #IMPLIED
|
||||
default CDATA #IMPLIED
|
||||
fixed CDATA #IMPLIED
|
||||
form %formValues; #IMPLIED
|
||||
%elementAttrs;>
|
||||
<!-- type and ref are mutually exclusive.
|
||||
name and ref are mutually exclusive, one is required -->
|
||||
<!-- In the absence of type AND ref, type defaults to type of
|
||||
substitutionGroup, if any, else the ur-type, i.e. unconstrained -->
|
||||
<!-- default and fixed are mutually exclusive -->
|
||||
|
||||
<!ELEMENT %group; ((%annotation;)?,(%mgs;)?)>
|
||||
<!ATTLIST %group;
|
||||
name %NCName; #IMPLIED
|
||||
ref %QName; #IMPLIED
|
||||
minOccurs %nonNegativeInteger; #IMPLIED
|
||||
maxOccurs CDATA #IMPLIED
|
||||
id ID #IMPLIED
|
||||
%groupAttrs;>
|
||||
|
||||
<!ELEMENT %all; ((%annotation;)?, (%element;)*)>
|
||||
<!ATTLIST %all;
|
||||
minOccurs (1) #IMPLIED
|
||||
maxOccurs (1) #IMPLIED
|
||||
id ID #IMPLIED
|
||||
%allAttrs;>
|
||||
|
||||
<!ELEMENT %choice; ((%annotation;)?, (%element;| %group;| %cs; | %any;)*)>
|
||||
<!ATTLIST %choice;
|
||||
minOccurs %nonNegativeInteger; #IMPLIED
|
||||
maxOccurs CDATA #IMPLIED
|
||||
id ID #IMPLIED
|
||||
%choiceAttrs;>
|
||||
|
||||
<!ELEMENT %sequence; ((%annotation;)?, (%element;| %group;| %cs; | %any;)*)>
|
||||
<!ATTLIST %sequence;
|
||||
minOccurs %nonNegativeInteger; #IMPLIED
|
||||
maxOccurs CDATA #IMPLIED
|
||||
id ID #IMPLIED
|
||||
%sequenceAttrs;>
|
||||
|
||||
<!-- an anonymous grouping in a model, or
|
||||
a top-level named group definition, or a reference to same -->
|
||||
|
||||
<!-- Note that if order is 'all', group is not allowed inside.
|
||||
If order is 'all' THIS group must be alone (or referenced alone) at
|
||||
the top level of a content model -->
|
||||
<!-- If order is 'all', minOccurs==maxOccurs==1 on element/any inside -->
|
||||
<!-- Should allow minOccurs=0 inside order='all' . . . -->
|
||||
|
||||
<!ELEMENT %any; (%annotation;)?>
|
||||
<!ATTLIST %any;
|
||||
namespace CDATA '##any'
|
||||
processContents (skip|lax|strict) 'strict'
|
||||
minOccurs %nonNegativeInteger; '1'
|
||||
maxOccurs CDATA '1'
|
||||
id ID #IMPLIED
|
||||
%anyAttrs;>
|
||||
|
||||
<!-- namespace is interpreted as follows:
|
||||
##any - - any non-conflicting WFXML at all
|
||||
|
||||
##other - - any non-conflicting WFXML from namespace other
|
||||
than targetNamespace
|
||||
|
||||
##local - - any unqualified non-conflicting WFXML/attribute
|
||||
one or - - any non-conflicting WFXML from
|
||||
more URI the listed namespaces
|
||||
references
|
||||
|
||||
##targetNamespace ##local may appear in the above list,
|
||||
with the obvious meaning -->
|
||||
|
||||
<!ELEMENT %anyAttribute; (%annotation;)?>
|
||||
<!ATTLIST %anyAttribute;
|
||||
namespace CDATA '##any'
|
||||
processContents (skip|lax|strict) 'strict'
|
||||
id ID #IMPLIED
|
||||
%anyAttributeAttrs;>
|
||||
<!-- namespace is interpreted as for 'any' above -->
|
||||
|
||||
<!-- simpleType only if no type|ref attribute -->
|
||||
<!-- ref not allowed at top level, name iff at top level -->
|
||||
<!ELEMENT %attribute; ((%annotation;)?, (%simpleType;)?)>
|
||||
<!ATTLIST %attribute;
|
||||
name %NCName; #IMPLIED
|
||||
id ID #IMPLIED
|
||||
ref %QName; #IMPLIED
|
||||
type %QName; #IMPLIED
|
||||
use (prohibited|optional|required) #IMPLIED
|
||||
default CDATA #IMPLIED
|
||||
fixed CDATA #IMPLIED
|
||||
form %formValues; #IMPLIED
|
||||
%attributeAttrs;>
|
||||
<!-- type and ref are mutually exclusive.
|
||||
name and ref are mutually exclusive, one is required -->
|
||||
<!-- default for use is optional when nested, none otherwise -->
|
||||
<!-- default and fixed are mutually exclusive -->
|
||||
<!-- type attr and simpleType content are mutually exclusive -->
|
||||
|
||||
<!-- an attributeGroup is a named collection of attribute decls, or a
|
||||
reference thereto -->
|
||||
<!ELEMENT %attributeGroup; ((%annotation;)?,
|
||||
(%attribute; | %attributeGroup;)*,
|
||||
(%anyAttribute;)?) >
|
||||
<!ATTLIST %attributeGroup;
|
||||
name %NCName; #IMPLIED
|
||||
id ID #IMPLIED
|
||||
ref %QName; #IMPLIED
|
||||
%attributeGroupAttrs;>
|
||||
|
||||
<!-- ref iff no content, no name. ref iff not top level -->
|
||||
|
||||
<!-- better reference mechanisms -->
|
||||
<!ELEMENT %unique; ((%annotation;)?, %selector;, (%field;)+)>
|
||||
<!ATTLIST %unique;
|
||||
name %NCName; #REQUIRED
|
||||
id ID #IMPLIED
|
||||
%uniqueAttrs;>
|
||||
|
||||
<!ELEMENT %key; ((%annotation;)?, %selector;, (%field;)+)>
|
||||
<!ATTLIST %key;
|
||||
name %NCName; #REQUIRED
|
||||
id ID #IMPLIED
|
||||
%keyAttrs;>
|
||||
|
||||
<!ELEMENT %keyref; ((%annotation;)?, %selector;, (%field;)+)>
|
||||
<!ATTLIST %keyref;
|
||||
name %NCName; #REQUIRED
|
||||
refer %QName; #REQUIRED
|
||||
id ID #IMPLIED
|
||||
%keyrefAttrs;>
|
||||
|
||||
<!ELEMENT %selector; ((%annotation;)?)>
|
||||
<!ATTLIST %selector;
|
||||
xpath %XPathExpr; #REQUIRED
|
||||
id ID #IMPLIED
|
||||
%selectorAttrs;>
|
||||
<!ELEMENT %field; ((%annotation;)?)>
|
||||
<!ATTLIST %field;
|
||||
xpath %XPathExpr; #REQUIRED
|
||||
id ID #IMPLIED
|
||||
%fieldAttrs;>
|
||||
|
||||
<!-- Schema combination mechanisms -->
|
||||
<!ELEMENT %include; (%annotation;)?>
|
||||
<!ATTLIST %include;
|
||||
schemaLocation %URIref; #REQUIRED
|
||||
id ID #IMPLIED
|
||||
%includeAttrs;>
|
||||
|
||||
<!ELEMENT %import; (%annotation;)?>
|
||||
<!ATTLIST %import;
|
||||
namespace %URIref; #IMPLIED
|
||||
schemaLocation %URIref; #IMPLIED
|
||||
id ID #IMPLIED
|
||||
%importAttrs;>
|
||||
|
||||
<!ELEMENT %redefine; (%annotation; | %simpleType; | %complexType; |
|
||||
%attributeGroup; | %group;)*>
|
||||
<!ATTLIST %redefine;
|
||||
schemaLocation %URIref; #REQUIRED
|
||||
id ID #IMPLIED
|
||||
%redefineAttrs;>
|
||||
|
||||
<!ELEMENT %notation; (%annotation;)?>
|
||||
<!ATTLIST %notation;
|
||||
name %NCName; #REQUIRED
|
||||
id ID #IMPLIED
|
||||
public CDATA #REQUIRED
|
||||
system %URIref; #IMPLIED
|
||||
%notationAttrs;>
|
||||
|
||||
<!-- Annotation is either application information or documentation -->
|
||||
<!-- By having these here they are available for datatypes as well
|
||||
as all the structures elements -->
|
||||
|
||||
<!ELEMENT %annotation; (%appinfo; | %documentation;)*>
|
||||
<!ATTLIST %annotation; %annotationAttrs;>
|
||||
|
||||
<!-- User must define annotation elements in internal subset for this
|
||||
to work -->
|
||||
<!ELEMENT %appinfo; ANY> <!-- too restrictive -->
|
||||
<!ATTLIST %appinfo;
|
||||
source %URIref; #IMPLIED
|
||||
id ID #IMPLIED
|
||||
%appinfoAttrs;>
|
||||
<!ELEMENT %documentation; ANY> <!-- too restrictive -->
|
||||
<!ATTLIST %documentation;
|
||||
source %URIref; #IMPLIED
|
||||
id ID #IMPLIED
|
||||
xml:lang CDATA #IMPLIED
|
||||
%documentationAttrs;>
|
||||
|
||||
<!NOTATION XMLSchemaStructures PUBLIC
|
||||
'structures' 'http://www.w3.org/2001/XMLSchema.xsd' >
|
||||
<!NOTATION XML PUBLIC
|
||||
'REC-xml-1998-0210' 'http://www.w3.org/TR/1998/REC-xml-19980210' >
|
||||
2424
etc/vmware-tools/vgauth/schemas/XMLSchema.xsd
Normal file
2424
etc/vmware-tools/vgauth/schemas/XMLSchema.xsd
Normal file
File diff suppressed because it is too large
Load Diff
6
etc/vmware-tools/vgauth/schemas/catalog.xml
Normal file
6
etc/vmware-tools/vgauth/schemas/catalog.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
|
||||
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
|
||||
<uri name="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd" uri="xmldsig-core-schema.xsd"/>
|
||||
<uri name="http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/xenc-schema.xsd" uri="xenc-schema.xsd"/>
|
||||
</catalog>
|
||||
203
etc/vmware-tools/vgauth/schemas/datatypes.dtd
Normal file
203
etc/vmware-tools/vgauth/schemas/datatypes.dtd
Normal file
@@ -0,0 +1,203 @@
|
||||
<!--
|
||||
DTD for XML Schemas: Part 2: Datatypes
|
||||
$Id: datatypes.dtd,v 1.23 2001/03/16 17:36:30 ht Exp $
|
||||
Note this DTD is NOT normative, or even definitive. - - the
|
||||
prose copy in the datatypes REC is the definitive version
|
||||
(which shouldn't differ from this one except for this comment
|
||||
and entity expansions, but just in case)
|
||||
-->
|
||||
|
||||
<!--
|
||||
This DTD cannot be used on its own, it is intended
|
||||
only for incorporation in XMLSchema.dtd, q.v.
|
||||
-->
|
||||
|
||||
<!-- Define all the element names, with optional prefix -->
|
||||
<!ENTITY % simpleType "%p;simpleType">
|
||||
<!ENTITY % restriction "%p;restriction">
|
||||
<!ENTITY % list "%p;list">
|
||||
<!ENTITY % union "%p;union">
|
||||
<!ENTITY % maxExclusive "%p;maxExclusive">
|
||||
<!ENTITY % minExclusive "%p;minExclusive">
|
||||
<!ENTITY % maxInclusive "%p;maxInclusive">
|
||||
<!ENTITY % minInclusive "%p;minInclusive">
|
||||
<!ENTITY % totalDigits "%p;totalDigits">
|
||||
<!ENTITY % fractionDigits "%p;fractionDigits">
|
||||
<!ENTITY % length "%p;length">
|
||||
<!ENTITY % minLength "%p;minLength">
|
||||
<!ENTITY % maxLength "%p;maxLength">
|
||||
<!ENTITY % enumeration "%p;enumeration">
|
||||
<!ENTITY % whiteSpace "%p;whiteSpace">
|
||||
<!ENTITY % pattern "%p;pattern">
|
||||
|
||||
<!--
|
||||
Customisation entities for the ATTLIST of each element
|
||||
type. Define one of these if your schema takes advantage
|
||||
of the anyAttribute='##other' in the schema for schemas
|
||||
-->
|
||||
|
||||
<!ENTITY % simpleTypeAttrs "">
|
||||
<!ENTITY % restrictionAttrs "">
|
||||
<!ENTITY % listAttrs "">
|
||||
<!ENTITY % unionAttrs "">
|
||||
<!ENTITY % maxExclusiveAttrs "">
|
||||
<!ENTITY % minExclusiveAttrs "">
|
||||
<!ENTITY % maxInclusiveAttrs "">
|
||||
<!ENTITY % minInclusiveAttrs "">
|
||||
<!ENTITY % totalDigitsAttrs "">
|
||||
<!ENTITY % fractionDigitsAttrs "">
|
||||
<!ENTITY % lengthAttrs "">
|
||||
<!ENTITY % minLengthAttrs "">
|
||||
<!ENTITY % maxLengthAttrs "">
|
||||
<!ENTITY % enumerationAttrs "">
|
||||
<!ENTITY % whiteSpaceAttrs "">
|
||||
<!ENTITY % patternAttrs "">
|
||||
|
||||
<!-- Define some entities for informative use as attribute
|
||||
types -->
|
||||
<!ENTITY % URIref "CDATA">
|
||||
<!ENTITY % XPathExpr "CDATA">
|
||||
<!ENTITY % QName "NMTOKEN">
|
||||
<!ENTITY % QNames "NMTOKENS">
|
||||
<!ENTITY % NCName "NMTOKEN">
|
||||
<!ENTITY % nonNegativeInteger "NMTOKEN">
|
||||
<!ENTITY % boolean "(true|false)">
|
||||
<!ENTITY % simpleDerivationSet "CDATA">
|
||||
<!--
|
||||
#all or space-separated list drawn from derivationChoice
|
||||
-->
|
||||
|
||||
<!--
|
||||
Note that the use of 'facet' below is less restrictive
|
||||
than is really intended: There should in fact be no
|
||||
more than one of each of minInclusive, minExclusive,
|
||||
maxInclusive, maxExclusive, totalDigits, fractionDigits,
|
||||
length, maxLength, minLength within datatype,
|
||||
and the min- and max- variants of Inclusive and Exclusive
|
||||
are mutually exclusive. On the other hand, pattern and
|
||||
enumeration may repeat.
|
||||
-->
|
||||
<!ENTITY % minBound "(%minInclusive; | %minExclusive;)">
|
||||
<!ENTITY % maxBound "(%maxInclusive; | %maxExclusive;)">
|
||||
<!ENTITY % bounds "%minBound; | %maxBound;">
|
||||
<!ENTITY % numeric "%totalDigits; | %fractionDigits;">
|
||||
<!ENTITY % ordered "%bounds; | %numeric;">
|
||||
<!ENTITY % unordered
|
||||
"%pattern; | %enumeration; | %whiteSpace; | %length; |
|
||||
%maxLength; | %minLength;">
|
||||
<!ENTITY % facet "%ordered; | %unordered;">
|
||||
<!ENTITY % facetAttr
|
||||
"value CDATA #REQUIRED
|
||||
id ID #IMPLIED">
|
||||
<!ENTITY % fixedAttr "fixed %boolean; #IMPLIED">
|
||||
<!ENTITY % facetModel "(%annotation;)?">
|
||||
<!ELEMENT %simpleType;
|
||||
((%annotation;)?, (%restriction; | %list; | %union;))>
|
||||
<!ATTLIST %simpleType;
|
||||
name %NCName; #IMPLIED
|
||||
final %simpleDerivationSet; #IMPLIED
|
||||
id ID #IMPLIED
|
||||
%simpleTypeAttrs;>
|
||||
<!-- name is required at top level -->
|
||||
<!ELEMENT %restriction; ((%annotation;)?,
|
||||
(%restriction1; |
|
||||
((%simpleType;)?,(%facet;)*)),
|
||||
(%attrDecls;))>
|
||||
<!ATTLIST %restriction;
|
||||
base %QName; #IMPLIED
|
||||
id ID #IMPLIED
|
||||
%restrictionAttrs;>
|
||||
<!--
|
||||
base and simpleType child are mutually exclusive,
|
||||
one is required.
|
||||
|
||||
restriction is shared between simpleType and
|
||||
simpleContent and complexContent (in XMLSchema.xsd).
|
||||
restriction1 is for the latter cases, when this
|
||||
is restricting a complex type, as is attrDecls.
|
||||
-->
|
||||
<!ELEMENT %list; ((%annotation;)?,(%simpleType;)?)>
|
||||
<!ATTLIST %list;
|
||||
itemType %QName; #IMPLIED
|
||||
id ID #IMPLIED
|
||||
%listAttrs;>
|
||||
<!--
|
||||
itemType and simpleType child are mutually exclusive,
|
||||
one is required
|
||||
-->
|
||||
<!ELEMENT %union; ((%annotation;)?,(%simpleType;)*)>
|
||||
<!ATTLIST %union;
|
||||
id ID #IMPLIED
|
||||
memberTypes %QNames; #IMPLIED
|
||||
%unionAttrs;>
|
||||
<!--
|
||||
At least one item in memberTypes or one simpleType
|
||||
child is required
|
||||
-->
|
||||
|
||||
<!ELEMENT %maxExclusive; %facetModel;>
|
||||
<!ATTLIST %maxExclusive;
|
||||
%facetAttr;
|
||||
%fixedAttr;
|
||||
%maxExclusiveAttrs;>
|
||||
<!ELEMENT %minExclusive; %facetModel;>
|
||||
<!ATTLIST %minExclusive;
|
||||
%facetAttr;
|
||||
%fixedAttr;
|
||||
%minExclusiveAttrs;>
|
||||
|
||||
<!ELEMENT %maxInclusive; %facetModel;>
|
||||
<!ATTLIST %maxInclusive;
|
||||
%facetAttr;
|
||||
%fixedAttr;
|
||||
%maxInclusiveAttrs;>
|
||||
<!ELEMENT %minInclusive; %facetModel;>
|
||||
<!ATTLIST %minInclusive;
|
||||
%facetAttr;
|
||||
%fixedAttr;
|
||||
%minInclusiveAttrs;>
|
||||
|
||||
<!ELEMENT %totalDigits; %facetModel;>
|
||||
<!ATTLIST %totalDigits;
|
||||
%facetAttr;
|
||||
%fixedAttr;
|
||||
%totalDigitsAttrs;>
|
||||
<!ELEMENT %fractionDigits; %facetModel;>
|
||||
<!ATTLIST %fractionDigits;
|
||||
%facetAttr;
|
||||
%fixedAttr;
|
||||
%fractionDigitsAttrs;>
|
||||
|
||||
<!ELEMENT %length; %facetModel;>
|
||||
<!ATTLIST %length;
|
||||
%facetAttr;
|
||||
%fixedAttr;
|
||||
%lengthAttrs;>
|
||||
<!ELEMENT %minLength; %facetModel;>
|
||||
<!ATTLIST %minLength;
|
||||
%facetAttr;
|
||||
%fixedAttr;
|
||||
%minLengthAttrs;>
|
||||
<!ELEMENT %maxLength; %facetModel;>
|
||||
<!ATTLIST %maxLength;
|
||||
%facetAttr;
|
||||
%fixedAttr;
|
||||
%maxLengthAttrs;>
|
||||
|
||||
<!-- This one can be repeated -->
|
||||
<!ELEMENT %enumeration; %facetModel;>
|
||||
<!ATTLIST %enumeration;
|
||||
%facetAttr;
|
||||
%enumerationAttrs;>
|
||||
|
||||
<!ELEMENT %whiteSpace; %facetModel;>
|
||||
<!ATTLIST %whiteSpace;
|
||||
%facetAttr;
|
||||
%fixedAttr;
|
||||
%whiteSpaceAttrs;>
|
||||
|
||||
<!-- This one can be repeated -->
|
||||
<!ELEMENT %pattern; %facetModel;>
|
||||
<!ATTLIST %pattern;
|
||||
%facetAttr;
|
||||
%patternAttrs;>
|
||||
283
etc/vmware-tools/vgauth/schemas/saml-schema-assertion-2.0.xsd
Normal file
283
etc/vmware-tools/vgauth/schemas/saml-schema-assertion-2.0.xsd
Normal file
@@ -0,0 +1,283 @@
|
||||
<?xml version="1.0" encoding="US-ASCII"?>
|
||||
<schema
|
||||
targetNamespace="urn:oasis:names:tc:SAML:2.0:assertion"
|
||||
xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
|
||||
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
|
||||
xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
|
||||
elementFormDefault="unqualified"
|
||||
attributeFormDefault="unqualified"
|
||||
blockDefault="substitution"
|
||||
version="2.0">
|
||||
<import namespace="http://www.w3.org/2000/09/xmldsig#"
|
||||
schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
|
||||
<import namespace="http://www.w3.org/2001/04/xmlenc#"
|
||||
schemaLocation="http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/xenc-schema.xsd"/>
|
||||
<annotation>
|
||||
<documentation>
|
||||
Document identifier: saml-schema-assertion-2.0
|
||||
Location: http://docs.oasis-open.org/security/saml/v2.0/
|
||||
Revision history:
|
||||
V1.0 (November, 2002):
|
||||
Initial Standard Schema.
|
||||
V1.1 (September, 2003):
|
||||
Updates within the same V1.0 namespace.
|
||||
V2.0 (March, 2005):
|
||||
New assertion schema for SAML V2.0 namespace.
|
||||
</documentation>
|
||||
</annotation>
|
||||
<attributeGroup name="IDNameQualifiers">
|
||||
<attribute name="NameQualifier" type="string" use="optional"/>
|
||||
<attribute name="SPNameQualifier" type="string" use="optional"/>
|
||||
</attributeGroup>
|
||||
<element name="BaseID" type="saml:BaseIDAbstractType"/>
|
||||
<complexType name="BaseIDAbstractType" abstract="true">
|
||||
<attributeGroup ref="saml:IDNameQualifiers"/>
|
||||
</complexType>
|
||||
<element name="NameID" type="saml:NameIDType"/>
|
||||
<complexType name="NameIDType">
|
||||
<simpleContent>
|
||||
<extension base="string">
|
||||
<attributeGroup ref="saml:IDNameQualifiers"/>
|
||||
<attribute name="Format" type="anyURI" use="optional"/>
|
||||
<attribute name="SPProvidedID" type="string" use="optional"/>
|
||||
</extension>
|
||||
</simpleContent>
|
||||
</complexType>
|
||||
<complexType name="EncryptedElementType">
|
||||
<sequence>
|
||||
<element ref="xenc:EncryptedData"/>
|
||||
<element ref="xenc:EncryptedKey" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
<element name="EncryptedID" type="saml:EncryptedElementType"/>
|
||||
<element name="Issuer" type="saml:NameIDType"/>
|
||||
<element name="AssertionIDRef" type="NCName"/>
|
||||
<element name="AssertionURIRef" type="anyURI"/>
|
||||
<element name="Assertion" type="saml:AssertionType"/>
|
||||
<complexType name="AssertionType">
|
||||
<sequence>
|
||||
<element ref="saml:Issuer"/>
|
||||
<element ref="ds:Signature" minOccurs="0"/>
|
||||
<element ref="saml:Subject" minOccurs="0"/>
|
||||
<element ref="saml:Conditions" minOccurs="0"/>
|
||||
<element ref="saml:Advice" minOccurs="0"/>
|
||||
<choice minOccurs="0" maxOccurs="unbounded">
|
||||
<element ref="saml:Statement"/>
|
||||
<element ref="saml:AuthnStatement"/>
|
||||
<element ref="saml:AuthzDecisionStatement"/>
|
||||
<element ref="saml:AttributeStatement"/>
|
||||
</choice>
|
||||
</sequence>
|
||||
<attribute name="Version" type="string" use="required"/>
|
||||
<attribute name="ID" type="ID" use="required"/>
|
||||
<attribute name="IssueInstant" type="dateTime" use="required"/>
|
||||
</complexType>
|
||||
<element name="Subject" type="saml:SubjectType"/>
|
||||
<complexType name="SubjectType">
|
||||
<choice>
|
||||
<sequence>
|
||||
<choice>
|
||||
<element ref="saml:BaseID"/>
|
||||
<element ref="saml:NameID"/>
|
||||
<element ref="saml:EncryptedID"/>
|
||||
</choice>
|
||||
<element ref="saml:SubjectConfirmation" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
<element ref="saml:SubjectConfirmation" maxOccurs="unbounded"/>
|
||||
</choice>
|
||||
</complexType>
|
||||
<element name="SubjectConfirmation" type="saml:SubjectConfirmationType"/>
|
||||
<complexType name="SubjectConfirmationType">
|
||||
<sequence>
|
||||
<choice minOccurs="0">
|
||||
<element ref="saml:BaseID"/>
|
||||
<element ref="saml:NameID"/>
|
||||
<element ref="saml:EncryptedID"/>
|
||||
</choice>
|
||||
<element ref="saml:SubjectConfirmationData" minOccurs="0"/>
|
||||
</sequence>
|
||||
<attribute name="Method" type="anyURI" use="required"/>
|
||||
</complexType>
|
||||
<element name="SubjectConfirmationData" type="saml:SubjectConfirmationDataType"/>
|
||||
<complexType name="SubjectConfirmationDataType" mixed="true">
|
||||
<complexContent>
|
||||
<restriction base="anyType">
|
||||
<sequence>
|
||||
<any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
<attribute name="NotBefore" type="dateTime" use="optional"/>
|
||||
<attribute name="NotOnOrAfter" type="dateTime" use="optional"/>
|
||||
<attribute name="Recipient" type="anyURI" use="optional"/>
|
||||
<attribute name="InResponseTo" type="NCName" use="optional"/>
|
||||
<attribute name="Address" type="string" use="optional"/>
|
||||
<anyAttribute namespace="##other" processContents="lax"/>
|
||||
</restriction>
|
||||
</complexContent>
|
||||
</complexType>
|
||||
<complexType name="KeyInfoConfirmationDataType" mixed="false">
|
||||
<complexContent>
|
||||
<restriction base="saml:SubjectConfirmationDataType">
|
||||
<sequence>
|
||||
<element ref="ds:KeyInfo" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</restriction>
|
||||
</complexContent>
|
||||
</complexType>
|
||||
<element name="Conditions" type="saml:ConditionsType"/>
|
||||
<complexType name="ConditionsType">
|
||||
<choice minOccurs="0" maxOccurs="unbounded">
|
||||
<element ref="saml:Condition"/>
|
||||
<element ref="saml:AudienceRestriction"/>
|
||||
<element ref="saml:OneTimeUse"/>
|
||||
<element ref="saml:ProxyRestriction"/>
|
||||
</choice>
|
||||
<attribute name="NotBefore" type="dateTime" use="optional"/>
|
||||
<attribute name="NotOnOrAfter" type="dateTime" use="optional"/>
|
||||
</complexType>
|
||||
<element name="Condition" type="saml:ConditionAbstractType"/>
|
||||
<complexType name="ConditionAbstractType" abstract="true"/>
|
||||
<element name="AudienceRestriction" type="saml:AudienceRestrictionType"/>
|
||||
<complexType name="AudienceRestrictionType">
|
||||
<complexContent>
|
||||
<extension base="saml:ConditionAbstractType">
|
||||
<sequence>
|
||||
<element ref="saml:Audience" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</extension>
|
||||
</complexContent>
|
||||
</complexType>
|
||||
<element name="Audience" type="anyURI"/>
|
||||
<element name="OneTimeUse" type="saml:OneTimeUseType" />
|
||||
<complexType name="OneTimeUseType">
|
||||
<complexContent>
|
||||
<extension base="saml:ConditionAbstractType"/>
|
||||
</complexContent>
|
||||
</complexType>
|
||||
<element name="ProxyRestriction" type="saml:ProxyRestrictionType"/>
|
||||
<complexType name="ProxyRestrictionType">
|
||||
<complexContent>
|
||||
<extension base="saml:ConditionAbstractType">
|
||||
<sequence>
|
||||
<element ref="saml:Audience" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
<attribute name="Count" type="nonNegativeInteger" use="optional"/>
|
||||
</extension>
|
||||
</complexContent>
|
||||
</complexType>
|
||||
<element name="Advice" type="saml:AdviceType"/>
|
||||
<complexType name="AdviceType">
|
||||
<choice minOccurs="0" maxOccurs="unbounded">
|
||||
<element ref="saml:AssertionIDRef"/>
|
||||
<element ref="saml:AssertionURIRef"/>
|
||||
<element ref="saml:Assertion"/>
|
||||
<element ref="saml:EncryptedAssertion"/>
|
||||
<any namespace="##other" processContents="lax"/>
|
||||
</choice>
|
||||
</complexType>
|
||||
<element name="EncryptedAssertion" type="saml:EncryptedElementType"/>
|
||||
<element name="Statement" type="saml:StatementAbstractType"/>
|
||||
<complexType name="StatementAbstractType" abstract="true"/>
|
||||
<element name="AuthnStatement" type="saml:AuthnStatementType"/>
|
||||
<complexType name="AuthnStatementType">
|
||||
<complexContent>
|
||||
<extension base="saml:StatementAbstractType">
|
||||
<sequence>
|
||||
<element ref="saml:SubjectLocality" minOccurs="0"/>
|
||||
<element ref="saml:AuthnContext"/>
|
||||
</sequence>
|
||||
<attribute name="AuthnInstant" type="dateTime" use="required"/>
|
||||
<attribute name="SessionIndex" type="string" use="optional"/>
|
||||
<attribute name="SessionNotOnOrAfter" type="dateTime" use="optional"/>
|
||||
</extension>
|
||||
</complexContent>
|
||||
</complexType>
|
||||
<element name="SubjectLocality" type="saml:SubjectLocalityType"/>
|
||||
<complexType name="SubjectLocalityType">
|
||||
<attribute name="Address" type="string" use="optional"/>
|
||||
<attribute name="DNSName" type="string" use="optional"/>
|
||||
</complexType>
|
||||
<element name="AuthnContext" type="saml:AuthnContextType"/>
|
||||
<complexType name="AuthnContextType">
|
||||
<sequence>
|
||||
<choice>
|
||||
<sequence>
|
||||
<element ref="saml:AuthnContextClassRef"/>
|
||||
<choice minOccurs="0">
|
||||
<element ref="saml:AuthnContextDecl"/>
|
||||
<element ref="saml:AuthnContextDeclRef"/>
|
||||
</choice>
|
||||
</sequence>
|
||||
<choice>
|
||||
<element ref="saml:AuthnContextDecl"/>
|
||||
<element ref="saml:AuthnContextDeclRef"/>
|
||||
</choice>
|
||||
</choice>
|
||||
<element ref="saml:AuthenticatingAuthority" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
<element name="AuthnContextClassRef" type="anyURI"/>
|
||||
<element name="AuthnContextDeclRef" type="anyURI"/>
|
||||
<element name="AuthnContextDecl" type="anyType"/>
|
||||
<element name="AuthenticatingAuthority" type="anyURI"/>
|
||||
<element name="AuthzDecisionStatement" type="saml:AuthzDecisionStatementType"/>
|
||||
<complexType name="AuthzDecisionStatementType">
|
||||
<complexContent>
|
||||
<extension base="saml:StatementAbstractType">
|
||||
<sequence>
|
||||
<element ref="saml:Action" maxOccurs="unbounded"/>
|
||||
<element ref="saml:Evidence" minOccurs="0"/>
|
||||
</sequence>
|
||||
<attribute name="Resource" type="anyURI" use="required"/>
|
||||
<attribute name="Decision" type="saml:DecisionType" use="required"/>
|
||||
</extension>
|
||||
</complexContent>
|
||||
</complexType>
|
||||
<simpleType name="DecisionType">
|
||||
<restriction base="string">
|
||||
<enumeration value="Permit"/>
|
||||
<enumeration value="Deny"/>
|
||||
<enumeration value="Indeterminate"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
<element name="Action" type="saml:ActionType"/>
|
||||
<complexType name="ActionType">
|
||||
<simpleContent>
|
||||
<extension base="string">
|
||||
<attribute name="Namespace" type="anyURI" use="required"/>
|
||||
</extension>
|
||||
</simpleContent>
|
||||
</complexType>
|
||||
<element name="Evidence" type="saml:EvidenceType"/>
|
||||
<complexType name="EvidenceType">
|
||||
<choice maxOccurs="unbounded">
|
||||
<element ref="saml:AssertionIDRef"/>
|
||||
<element ref="saml:AssertionURIRef"/>
|
||||
<element ref="saml:Assertion"/>
|
||||
<element ref="saml:EncryptedAssertion"/>
|
||||
</choice>
|
||||
</complexType>
|
||||
<element name="AttributeStatement" type="saml:AttributeStatementType"/>
|
||||
<complexType name="AttributeStatementType">
|
||||
<complexContent>
|
||||
<extension base="saml:StatementAbstractType">
|
||||
<choice maxOccurs="unbounded">
|
||||
<element ref="saml:Attribute"/>
|
||||
<element ref="saml:EncryptedAttribute"/>
|
||||
</choice>
|
||||
</extension>
|
||||
</complexContent>
|
||||
</complexType>
|
||||
<element name="Attribute" type="saml:AttributeType"/>
|
||||
<complexType name="AttributeType">
|
||||
<sequence>
|
||||
<element ref="saml:AttributeValue" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
<attribute name="Name" type="string" use="required"/>
|
||||
<attribute name="NameFormat" type="anyURI" use="optional"/>
|
||||
<attribute name="FriendlyName" type="string" use="optional"/>
|
||||
<anyAttribute namespace="##other" processContents="lax"/>
|
||||
</complexType>
|
||||
<element name="AttributeValue" type="anyType" nillable="true"/>
|
||||
<element name="EncryptedAttribute" type="saml:EncryptedElementType"/>
|
||||
</schema>
|
||||
135
etc/vmware-tools/vgauth/schemas/xenc-schema.xsd
Normal file
135
etc/vmware-tools/vgauth/schemas/xenc-schema.xsd
Normal file
@@ -0,0 +1,135 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE schema PUBLIC "-//W3C//DTD XMLSchema 200102//EN" "XMLSchema.dtd" [
|
||||
<!ATTLIST schema
|
||||
xmlns:xenc CDATA #FIXED 'http://www.w3.org/2001/04/xmlenc#'
|
||||
xmlns:ds CDATA #FIXED 'http://www.w3.org/2000/09/xmldsig#'>
|
||||
<!ENTITY xenc 'http://www.w3.org/2001/04/xmlenc#'>
|
||||
<!ENTITY % p ''>
|
||||
<!ENTITY % s ''>
|
||||
]>
|
||||
<schema xmlns="http://www.w3.org/2001/XMLSchema" version="1.0" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" targetNamespace="http://www.w3.org/2001/04/xmlenc#" elementFormDefault="qualified">
|
||||
|
||||
<import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
|
||||
|
||||
<complexType name="EncryptedType" abstract="true">
|
||||
<sequence>
|
||||
<element name="EncryptionMethod" type="xenc:EncryptionMethodType" minOccurs="0"/>
|
||||
<element ref="ds:KeyInfo" minOccurs="0"/>
|
||||
<element ref="xenc:CipherData"/>
|
||||
<element ref="xenc:EncryptionProperties" minOccurs="0"/>
|
||||
</sequence>
|
||||
<attribute name="Id" type="ID" use="optional"/>
|
||||
<attribute name="Type" type="anyURI" use="optional"/>
|
||||
<attribute name="MimeType" type="string" use="optional"/>
|
||||
<attribute name="Encoding" type="anyURI" use="optional"/>
|
||||
</complexType>
|
||||
|
||||
<complexType name="EncryptionMethodType" mixed="true">
|
||||
<sequence>
|
||||
<element name="KeySize" minOccurs="0" type="xenc:KeySizeType"/>
|
||||
<element name="OAEPparams" minOccurs="0" type="base64Binary"/>
|
||||
<any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
<attribute name="Algorithm" type="anyURI" use="required"/>
|
||||
</complexType>
|
||||
|
||||
<simpleType name="KeySizeType">
|
||||
<restriction base="integer"/>
|
||||
</simpleType>
|
||||
|
||||
<element name="CipherData" type="xenc:CipherDataType"/>
|
||||
<complexType name="CipherDataType">
|
||||
<choice>
|
||||
<element name="CipherValue" type="base64Binary"/>
|
||||
<element ref="xenc:CipherReference"/>
|
||||
</choice>
|
||||
</complexType>
|
||||
|
||||
<element name="CipherReference" type="xenc:CipherReferenceType"/>
|
||||
<complexType name="CipherReferenceType">
|
||||
<choice>
|
||||
<element name="Transforms" type="xenc:TransformsType" minOccurs="0"/>
|
||||
</choice>
|
||||
<attribute name="URI" type="anyURI" use="required"/>
|
||||
</complexType>
|
||||
|
||||
<complexType name="TransformsType">
|
||||
<sequence>
|
||||
<element ref="ds:Transform" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
|
||||
<element name="EncryptedData" type="xenc:EncryptedDataType"/>
|
||||
<complexType name="EncryptedDataType">
|
||||
<complexContent>
|
||||
<extension base="xenc:EncryptedType">
|
||||
</extension>
|
||||
</complexContent>
|
||||
</complexType>
|
||||
|
||||
<!-- Children of ds:KeyInfo -->
|
||||
|
||||
<element name="EncryptedKey" type="xenc:EncryptedKeyType"/>
|
||||
<complexType name="EncryptedKeyType">
|
||||
<complexContent>
|
||||
<extension base="xenc:EncryptedType">
|
||||
<sequence>
|
||||
<element ref="xenc:ReferenceList" minOccurs="0"/>
|
||||
<element name="CarriedKeyName" type="string" minOccurs="0"/>
|
||||
</sequence>
|
||||
<attribute name="Recipient" type="string" use="optional"/>
|
||||
</extension>
|
||||
</complexContent>
|
||||
</complexType>
|
||||
|
||||
<element name="AgreementMethod" type="xenc:AgreementMethodType"/>
|
||||
<complexType name="AgreementMethodType" mixed="true">
|
||||
<sequence>
|
||||
<element name="KA-Nonce" minOccurs="0" type="base64Binary"/>
|
||||
<!-- <element ref="ds:DigestMethod" minOccurs="0"/> -->
|
||||
<any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<element name="OriginatorKeyInfo" minOccurs="0" type="ds:KeyInfoType"/>
|
||||
<element name="RecipientKeyInfo" minOccurs="0" type="ds:KeyInfoType"/>
|
||||
</sequence>
|
||||
<attribute name="Algorithm" type="anyURI" use="required"/>
|
||||
</complexType>
|
||||
|
||||
<!-- End Children of ds:KeyInfo -->
|
||||
|
||||
<element name="ReferenceList">
|
||||
<complexType>
|
||||
<choice minOccurs="1" maxOccurs="unbounded">
|
||||
<element name="DataReference" type="xenc:ReferenceType"/>
|
||||
<element name="KeyReference" type="xenc:ReferenceType"/>
|
||||
</choice>
|
||||
</complexType>
|
||||
</element>
|
||||
|
||||
<complexType name="ReferenceType">
|
||||
<sequence>
|
||||
<any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
<attribute name="URI" type="anyURI" use="required"/>
|
||||
</complexType>
|
||||
|
||||
|
||||
<element name="EncryptionProperties" type="xenc:EncryptionPropertiesType"/>
|
||||
<complexType name="EncryptionPropertiesType">
|
||||
<sequence>
|
||||
<element ref="xenc:EncryptionProperty" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
<attribute name="Id" type="ID" use="optional"/>
|
||||
</complexType>
|
||||
|
||||
<element name="EncryptionProperty" type="xenc:EncryptionPropertyType"/>
|
||||
<complexType name="EncryptionPropertyType" mixed="true">
|
||||
<choice maxOccurs="unbounded">
|
||||
<any namespace="##other" processContents="lax"/>
|
||||
</choice>
|
||||
<attribute name="Target" type="anyURI" use="optional"/>
|
||||
<attribute name="Id" type="ID" use="optional"/>
|
||||
<anyAttribute namespace="http://www.w3.org/XML/1998/namespace"/>
|
||||
</complexType>
|
||||
|
||||
</schema>
|
||||
287
etc/vmware-tools/vgauth/schemas/xml.xsd
Normal file
287
etc/vmware-tools/vgauth/schemas/xml.xsd
Normal file
@@ -0,0 +1,287 @@
|
||||
<?xml version='1.0'?>
|
||||
<?xml-stylesheet href="../2008/09/xsd.xsl" type="text/xsl"?>
|
||||
<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns ="http://www.w3.org/1999/xhtml"
|
||||
xml:lang="en">
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div>
|
||||
<h1>About the XML namespace</h1>
|
||||
|
||||
<div class="bodytext">
|
||||
<p>
|
||||
This schema document describes the XML namespace, in a form
|
||||
suitable for import by other schema documents.
|
||||
</p>
|
||||
<p>
|
||||
See <a href="http://www.w3.org/XML/1998/namespace.html">
|
||||
http://www.w3.org/XML/1998/namespace.html</a> and
|
||||
<a href="http://www.w3.org/TR/REC-xml">
|
||||
http://www.w3.org/TR/REC-xml</a> for information
|
||||
about this namespace.
|
||||
</p>
|
||||
<p>
|
||||
Note that local names in this namespace are intended to be
|
||||
defined only by the World Wide Web Consortium or its subgroups.
|
||||
The names currently defined in this namespace are listed below.
|
||||
They should not be used with conflicting semantics by any Working
|
||||
Group, specification, or document instance.
|
||||
</p>
|
||||
<p>
|
||||
See further below in this document for more information about <a
|
||||
href="#usage">how to refer to this schema document from your own
|
||||
XSD schema documents</a> and about <a href="#nsversioning">the
|
||||
namespace-versioning policy governing this schema document</a>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:attribute name="lang">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div>
|
||||
|
||||
<h3>lang (as an attribute name)</h3>
|
||||
<p>
|
||||
denotes an attribute whose value
|
||||
is a language code for the natural language of the content of
|
||||
any element; its value is inherited. This name is reserved
|
||||
by virtue of its definition in the XML specification.</p>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<h4>Notes</h4>
|
||||
<p>
|
||||
Attempting to install the relevant ISO 2- and 3-letter
|
||||
codes as the enumerated possible values is probably never
|
||||
going to be a realistic possibility.
|
||||
</p>
|
||||
<p>
|
||||
See BCP 47 at <a href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt">
|
||||
http://www.rfc-editor.org/rfc/bcp/bcp47.txt</a>
|
||||
and the IANA language subtag registry at
|
||||
<a href="http://www.iana.org/assignments/language-subtag-registry">
|
||||
http://www.iana.org/assignments/language-subtag-registry</a>
|
||||
for further information.
|
||||
</p>
|
||||
<p>
|
||||
The union allows for the 'un-declaration' of xml:lang with
|
||||
the empty string.
|
||||
</p>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:union memberTypes="xs:language">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value=""/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:union>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
|
||||
<xs:attribute name="space">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div>
|
||||
|
||||
<h3>space (as an attribute name)</h3>
|
||||
<p>
|
||||
denotes an attribute whose
|
||||
value is a keyword indicating what whitespace processing
|
||||
discipline is intended for the content of the element; its
|
||||
value is inherited. This name is reserved by virtue of its
|
||||
definition in the XML specification.</p>
|
||||
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:NCName">
|
||||
<xs:enumeration value="default"/>
|
||||
<xs:enumeration value="preserve"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
|
||||
<xs:attribute name="base" type="xs:anyURI"> <xs:annotation>
|
||||
<xs:documentation>
|
||||
<div>
|
||||
|
||||
<h3>base (as an attribute name)</h3>
|
||||
<p>
|
||||
denotes an attribute whose value
|
||||
provides a URI to be used as the base for interpreting any
|
||||
relative URIs in the scope of the element on which it
|
||||
appears; its value is inherited. This name is reserved
|
||||
by virtue of its definition in the XML Base specification.</p>
|
||||
|
||||
<p>
|
||||
See <a
|
||||
href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a>
|
||||
for information about this attribute.
|
||||
</p>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
|
||||
<xs:attribute name="id" type="xs:ID">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div>
|
||||
|
||||
<h3>id (as an attribute name)</h3>
|
||||
<p>
|
||||
denotes an attribute whose value
|
||||
should be interpreted as if declared to be of type ID.
|
||||
This name is reserved by virtue of its definition in the
|
||||
xml:id specification.</p>
|
||||
|
||||
<p>
|
||||
See <a
|
||||
href="http://www.w3.org/TR/xml-id/">http://www.w3.org/TR/xml-id/</a>
|
||||
for information about this attribute.
|
||||
</p>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
|
||||
<xs:attributeGroup name="specialAttrs">
|
||||
<xs:attribute ref="xml:base"/>
|
||||
<xs:attribute ref="xml:lang"/>
|
||||
<xs:attribute ref="xml:space"/>
|
||||
<xs:attribute ref="xml:id"/>
|
||||
</xs:attributeGroup>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div>
|
||||
|
||||
<h3>Father (in any context at all)</h3>
|
||||
|
||||
<div class="bodytext">
|
||||
<p>
|
||||
denotes Jon Bosak, the chair of
|
||||
the original XML Working Group. This name is reserved by
|
||||
the following decision of the W3C XML Plenary and
|
||||
XML Coordination groups:
|
||||
</p>
|
||||
<blockquote>
|
||||
<p>
|
||||
In appreciation for his vision, leadership and
|
||||
dedication the W3C XML Plenary on this 10th day of
|
||||
February, 2000, reserves for Jon Bosak in perpetuity
|
||||
the XML name "xml:Father".
|
||||
</p>
|
||||
</blockquote>
|
||||
</div>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div xml:id="usage" id="usage">
|
||||
<h2><a name="usage">About this schema document</a></h2>
|
||||
|
||||
<div class="bodytext">
|
||||
<p>
|
||||
This schema defines attributes and an attribute group suitable
|
||||
for use by schemas wishing to allow <code>xml:base</code>,
|
||||
<code>xml:lang</code>, <code>xml:space</code> or
|
||||
<code>xml:id</code> attributes on elements they define.
|
||||
</p>
|
||||
<p>
|
||||
To enable this, such a schema must import this schema for
|
||||
the XML namespace, e.g. as follows:
|
||||
</p>
|
||||
<pre>
|
||||
<schema . . .>
|
||||
. . .
|
||||
<import namespace="http://www.w3.org/XML/1998/namespace"
|
||||
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
|
||||
</pre>
|
||||
<p>
|
||||
or
|
||||
</p>
|
||||
<pre>
|
||||
<import namespace="http://www.w3.org/XML/1998/namespace"
|
||||
schemaLocation="http://www.w3.org/2009/01/xml.xsd"/>
|
||||
</pre>
|
||||
<p>
|
||||
Subsequently, qualified reference to any of the attributes or the
|
||||
group defined below will have the desired effect, e.g.
|
||||
</p>
|
||||
<pre>
|
||||
<type . . .>
|
||||
. . .
|
||||
<attributeGroup ref="xml:specialAttrs"/>
|
||||
</pre>
|
||||
<p>
|
||||
will define a type which will schema-validate an instance element
|
||||
with any of those attributes.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div id="nsversioning" xml:id="nsversioning">
|
||||
<h2><a name="nsversioning">Versioning policy for this schema document</a></h2>
|
||||
<div class="bodytext">
|
||||
<p>
|
||||
In keeping with the XML Schema WG's standard versioning
|
||||
policy, this schema document will persist at
|
||||
<a href="http://www.w3.org/2009/01/xml.xsd">
|
||||
http://www.w3.org/2009/01/xml.xsd</a>.
|
||||
</p>
|
||||
<p>
|
||||
At the date of issue it can also be found at
|
||||
<a href="http://www.w3.org/2001/xml.xsd">
|
||||
http://www.w3.org/2001/xml.xsd</a>.
|
||||
</p>
|
||||
<p>
|
||||
The schema document at that URI may however change in the future,
|
||||
in order to remain compatible with the latest version of XML
|
||||
Schema itself, or with the XML namespace itself. In other words,
|
||||
if the XML Schema or XML namespaces change, the version of this
|
||||
document at <a href="http://www.w3.org/2001/xml.xsd">
|
||||
http://www.w3.org/2001/xml.xsd
|
||||
</a>
|
||||
will change accordingly; the version at
|
||||
<a href="http://www.w3.org/2009/01/xml.xsd">
|
||||
http://www.w3.org/2009/01/xml.xsd
|
||||
</a>
|
||||
will not change.
|
||||
</p>
|
||||
<p>
|
||||
Previous dated (and unchanging) versions of this schema
|
||||
document are at:
|
||||
</p>
|
||||
<ul>
|
||||
<li><a href="http://www.w3.org/2009/01/xml.xsd">
|
||||
http://www.w3.org/2009/01/xml.xsd</a></li>
|
||||
<li><a href="http://www.w3.org/2007/08/xml.xsd">
|
||||
http://www.w3.org/2007/08/xml.xsd</a></li>
|
||||
<li><a href="http://www.w3.org/2004/10/xml.xsd">
|
||||
http://www.w3.org/2004/10/xml.xsd</a></li>
|
||||
<li><a href="http://www.w3.org/2001/03/xml.xsd">
|
||||
http://www.w3.org/2001/03/xml.xsd</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
</xs:schema>
|
||||
|
||||
308
etc/vmware-tools/vgauth/schemas/xmldsig-core-schema.xsd
Normal file
308
etc/vmware-tools/vgauth/schemas/xmldsig-core-schema.xsd
Normal file
@@ -0,0 +1,308 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE schema PUBLIC "-//W3C//DTD XMLSchema 200102//EN" "XMLSchema.dtd" [
|
||||
<!ATTLIST schema
|
||||
xmlns:ds CDATA #FIXED "http://www.w3.org/2000/09/xmldsig#">
|
||||
<!ENTITY dsig 'http://www.w3.org/2000/09/xmldsig#'>
|
||||
<!ENTITY % p ''>
|
||||
<!ENTITY % s ''>
|
||||
]>
|
||||
<!-- Schema for XML Signatures
|
||||
http://www.w3.org/2000/09/xmldsig#
|
||||
$Revision: 1.1 $ on $Date: 2002/02/08 20:32:26 $ by $Author: reagle $
|
||||
|
||||
Copyright 2001 The Internet Society and W3C (Massachusetts Institute
|
||||
of Technology, Institut National de Recherche en Informatique et en
|
||||
Automatique, Keio University). All Rights Reserved.
|
||||
http://www.w3.org/Consortium/Legal/
|
||||
|
||||
This document is governed by the W3C Software License [1] as described
|
||||
in the FAQ [2].
|
||||
|
||||
[1] http://www.w3.org/Consortium/Legal/copyright-software-19980720
|
||||
[2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
|
||||
-->
|
||||
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" targetNamespace="http://www.w3.org/2000/09/xmldsig#" version="0.1" elementFormDefault="qualified">
|
||||
|
||||
<!-- Basic Types Defined for Signatures -->
|
||||
|
||||
<simpleType name="CryptoBinary">
|
||||
<restriction base="base64Binary">
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<!-- Start Signature -->
|
||||
|
||||
<element name="Signature" type="ds:SignatureType"/>
|
||||
<complexType name="SignatureType">
|
||||
<sequence>
|
||||
<element ref="ds:SignedInfo"/>
|
||||
<element ref="ds:SignatureValue"/>
|
||||
<element ref="ds:KeyInfo" minOccurs="0"/>
|
||||
<element ref="ds:Object" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
<attribute name="Id" type="ID" use="optional"/>
|
||||
</complexType>
|
||||
|
||||
<element name="SignatureValue" type="ds:SignatureValueType"/>
|
||||
<complexType name="SignatureValueType">
|
||||
<simpleContent>
|
||||
<extension base="base64Binary">
|
||||
<attribute name="Id" type="ID" use="optional"/>
|
||||
</extension>
|
||||
</simpleContent>
|
||||
</complexType>
|
||||
|
||||
<!-- Start SignedInfo -->
|
||||
|
||||
<element name="SignedInfo" type="ds:SignedInfoType"/>
|
||||
<complexType name="SignedInfoType">
|
||||
<sequence>
|
||||
<element ref="ds:CanonicalizationMethod"/>
|
||||
<element ref="ds:SignatureMethod"/>
|
||||
<element ref="ds:Reference" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
<attribute name="Id" type="ID" use="optional"/>
|
||||
</complexType>
|
||||
|
||||
<element name="CanonicalizationMethod" type="ds:CanonicalizationMethodType"/>
|
||||
<complexType name="CanonicalizationMethodType" mixed="true">
|
||||
<sequence>
|
||||
<any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<!-- (0,unbounded) elements from (1,1) namespace -->
|
||||
</sequence>
|
||||
<attribute name="Algorithm" type="anyURI" use="required"/>
|
||||
</complexType>
|
||||
|
||||
<element name="SignatureMethod" type="ds:SignatureMethodType"/>
|
||||
<complexType name="SignatureMethodType" mixed="true">
|
||||
<sequence>
|
||||
<element name="HMACOutputLength" minOccurs="0" type="ds:HMACOutputLengthType"/>
|
||||
<any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<!-- (0,unbounded) elements from (1,1) external namespace -->
|
||||
</sequence>
|
||||
<attribute name="Algorithm" type="anyURI" use="required"/>
|
||||
</complexType>
|
||||
|
||||
<!-- Start Reference -->
|
||||
|
||||
<element name="Reference" type="ds:ReferenceType"/>
|
||||
<complexType name="ReferenceType">
|
||||
<sequence>
|
||||
<element ref="ds:Transforms" minOccurs="0"/>
|
||||
<element ref="ds:DigestMethod"/>
|
||||
<element ref="ds:DigestValue"/>
|
||||
</sequence>
|
||||
<attribute name="Id" type="ID" use="optional"/>
|
||||
<attribute name="URI" type="anyURI" use="optional"/>
|
||||
<attribute name="Type" type="anyURI" use="optional"/>
|
||||
</complexType>
|
||||
|
||||
<element name="Transforms" type="ds:TransformsType"/>
|
||||
<complexType name="TransformsType">
|
||||
<sequence>
|
||||
<element ref="ds:Transform" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<element name="Transform" type="ds:TransformType"/>
|
||||
<complexType name="TransformType" mixed="true">
|
||||
<choice minOccurs="0" maxOccurs="unbounded">
|
||||
<any namespace="##other" processContents="lax"/>
|
||||
<!-- (1,1) elements from (0,unbounded) namespaces -->
|
||||
<element name="XPath" type="string"/>
|
||||
</choice>
|
||||
<attribute name="Algorithm" type="anyURI" use="required"/>
|
||||
</complexType>
|
||||
|
||||
<!-- End Reference -->
|
||||
|
||||
<element name="DigestMethod" type="ds:DigestMethodType"/>
|
||||
<complexType name="DigestMethodType" mixed="true">
|
||||
<sequence>
|
||||
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
<attribute name="Algorithm" type="anyURI" use="required"/>
|
||||
</complexType>
|
||||
|
||||
<element name="DigestValue" type="ds:DigestValueType"/>
|
||||
<simpleType name="DigestValueType">
|
||||
<restriction base="base64Binary"/>
|
||||
</simpleType>
|
||||
|
||||
<!-- End SignedInfo -->
|
||||
|
||||
<!-- Start KeyInfo -->
|
||||
|
||||
<element name="KeyInfo" type="ds:KeyInfoType"/>
|
||||
<complexType name="KeyInfoType" mixed="true">
|
||||
<choice maxOccurs="unbounded">
|
||||
<element ref="ds:KeyName"/>
|
||||
<element ref="ds:KeyValue"/>
|
||||
<element ref="ds:RetrievalMethod"/>
|
||||
<element ref="ds:X509Data"/>
|
||||
<element ref="ds:PGPData"/>
|
||||
<element ref="ds:SPKIData"/>
|
||||
<element ref="ds:MgmtData"/>
|
||||
<any processContents="lax" namespace="##other"/>
|
||||
<!-- (1,1) elements from (0,unbounded) namespaces -->
|
||||
</choice>
|
||||
<attribute name="Id" type="ID" use="optional"/>
|
||||
</complexType>
|
||||
|
||||
<element name="KeyName" type="string"/>
|
||||
<element name="MgmtData" type="string"/>
|
||||
|
||||
<element name="KeyValue" type="ds:KeyValueType"/>
|
||||
<complexType name="KeyValueType" mixed="true">
|
||||
<choice>
|
||||
<element ref="ds:DSAKeyValue"/>
|
||||
<element ref="ds:RSAKeyValue"/>
|
||||
<any namespace="##other" processContents="lax"/>
|
||||
</choice>
|
||||
</complexType>
|
||||
|
||||
<element name="RetrievalMethod" type="ds:RetrievalMethodType"/>
|
||||
<complexType name="RetrievalMethodType">
|
||||
<sequence>
|
||||
<element ref="ds:Transforms" minOccurs="0"/>
|
||||
</sequence>
|
||||
<attribute name="URI" type="anyURI"/>
|
||||
<attribute name="Type" type="anyURI" use="optional"/>
|
||||
</complexType>
|
||||
|
||||
<!-- Start X509Data -->
|
||||
|
||||
<element name="X509Data" type="ds:X509DataType"/>
|
||||
<complexType name="X509DataType">
|
||||
<sequence maxOccurs="unbounded">
|
||||
<choice>
|
||||
<element name="X509IssuerSerial" type="ds:X509IssuerSerialType"/>
|
||||
<element name="X509SKI" type="base64Binary"/>
|
||||
<element name="X509SubjectName" type="string"/>
|
||||
<element name="X509Certificate" type="base64Binary"/>
|
||||
<element name="X509CRL" type="base64Binary"/>
|
||||
<any namespace="##other" processContents="lax"/>
|
||||
</choice>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="X509IssuerSerialType">
|
||||
<sequence>
|
||||
<element name="X509IssuerName" type="string"/>
|
||||
<element name="X509SerialNumber" type="integer"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!-- End X509Data -->
|
||||
|
||||
<!-- Begin PGPData -->
|
||||
|
||||
<element name="PGPData" type="ds:PGPDataType"/>
|
||||
<complexType name="PGPDataType">
|
||||
<choice>
|
||||
<sequence>
|
||||
<element name="PGPKeyID" type="base64Binary"/>
|
||||
<element name="PGPKeyPacket" type="base64Binary" minOccurs="0"/>
|
||||
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
<sequence>
|
||||
<element name="PGPKeyPacket" type="base64Binary"/>
|
||||
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</choice>
|
||||
</complexType>
|
||||
|
||||
<!-- End PGPData -->
|
||||
|
||||
<!-- Begin SPKIData -->
|
||||
|
||||
<element name="SPKIData" type="ds:SPKIDataType"/>
|
||||
<complexType name="SPKIDataType">
|
||||
<sequence maxOccurs="unbounded">
|
||||
<element name="SPKISexp" type="base64Binary"/>
|
||||
<any namespace="##other" processContents="lax" minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!-- End SPKIData -->
|
||||
|
||||
<!-- End KeyInfo -->
|
||||
|
||||
<!-- Start Object (Manifest, SignatureProperty) -->
|
||||
|
||||
<element name="Object" type="ds:ObjectType"/>
|
||||
<complexType name="ObjectType" mixed="true">
|
||||
<sequence minOccurs="0" maxOccurs="unbounded">
|
||||
<any namespace="##any" processContents="lax"/>
|
||||
</sequence>
|
||||
<attribute name="Id" type="ID" use="optional"/>
|
||||
<attribute name="MimeType" type="string" use="optional"/> <!-- add a grep facet -->
|
||||
<attribute name="Encoding" type="anyURI" use="optional"/>
|
||||
</complexType>
|
||||
|
||||
<element name="Manifest" type="ds:ManifestType"/>
|
||||
<complexType name="ManifestType">
|
||||
<sequence>
|
||||
<element ref="ds:Reference" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
<attribute name="Id" type="ID" use="optional"/>
|
||||
</complexType>
|
||||
|
||||
<element name="SignatureProperties" type="ds:SignaturePropertiesType"/>
|
||||
<complexType name="SignaturePropertiesType">
|
||||
<sequence>
|
||||
<element ref="ds:SignatureProperty" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
<attribute name="Id" type="ID" use="optional"/>
|
||||
</complexType>
|
||||
|
||||
<element name="SignatureProperty" type="ds:SignaturePropertyType"/>
|
||||
<complexType name="SignaturePropertyType" mixed="true">
|
||||
<choice maxOccurs="unbounded">
|
||||
<any namespace="##other" processContents="lax"/>
|
||||
<!-- (1,1) elements from (1,unbounded) namespaces -->
|
||||
</choice>
|
||||
<attribute name="Target" type="anyURI" use="required"/>
|
||||
<attribute name="Id" type="ID" use="optional"/>
|
||||
</complexType>
|
||||
|
||||
<!-- End Object (Manifest, SignatureProperty) -->
|
||||
|
||||
<!-- Start Algorithm Parameters -->
|
||||
|
||||
<simpleType name="HMACOutputLengthType">
|
||||
<restriction base="integer"/>
|
||||
</simpleType>
|
||||
|
||||
<!-- Start KeyValue Element-types -->
|
||||
|
||||
<element name="DSAKeyValue" type="ds:DSAKeyValueType"/>
|
||||
<complexType name="DSAKeyValueType">
|
||||
<sequence>
|
||||
<sequence minOccurs="0">
|
||||
<element name="P" type="ds:CryptoBinary"/>
|
||||
<element name="Q" type="ds:CryptoBinary"/>
|
||||
</sequence>
|
||||
<element name="G" type="ds:CryptoBinary" minOccurs="0"/>
|
||||
<element name="Y" type="ds:CryptoBinary"/>
|
||||
<element name="J" type="ds:CryptoBinary" minOccurs="0"/>
|
||||
<sequence minOccurs="0">
|
||||
<element name="Seed" type="ds:CryptoBinary"/>
|
||||
<element name="PgenCounter" type="ds:CryptoBinary"/>
|
||||
</sequence>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<element name="RSAKeyValue" type="ds:RSAKeyValueType"/>
|
||||
<complexType name="RSAKeyValueType">
|
||||
<sequence>
|
||||
<element name="Modulus" type="ds:CryptoBinary"/>
|
||||
<element name="Exponent" type="ds:CryptoBinary"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!-- End KeyValue Element-types -->
|
||||
|
||||
<!-- End Signature -->
|
||||
|
||||
</schema>
|
||||
Reference in New Issue
Block a user