Compare commits
No commits in common. "vmware" and "master" have entirely different histories.
67
INSTALL
67
INSTALL
|
|
@ -1,67 +0,0 @@
|
||||||
Copyright (c) 1998-2015 VMware, Inc. All rights reserved.
|
|
||||||
|
|
||||||
|
|
||||||
Please visit http://www.vmware.com/info?id=99 for help on getting started
|
|
||||||
installing VMware Tools.
|
|
||||||
|
|
||||||
_____________________________________________________________________________
|
|
||||||
|
|
||||||
INSTALLING/UPGRADING
|
|
||||||
|
|
||||||
To install/upgrade VMware Tools for Linux,
|
|
||||||
run the program "vmware-install.pl" from a command prompt, either in text
|
|
||||||
mode or from a terminal inside an X session. You must have super user
|
|
||||||
privileges (i.e. be logged as root) to run it.
|
|
||||||
|
|
||||||
./vmware-install.pl
|
|
||||||
|
|
||||||
If you are installing VMware Tools for the first time,
|
|
||||||
you can hit the <enter> key each time you are prompted to select the
|
|
||||||
factory default answer. By default,
|
|
||||||
the installation program installs:
|
|
||||||
the executables in /usr/bin,
|
|
||||||
the server executables in /usr/sbin,
|
|
||||||
the library files in /usr/lib/vmware-tools,
|
|
||||||
and the documentation files in /usr/share/doc/vmware-tools.
|
|
||||||
|
|
||||||
If you have previously installed VMware Tools,
|
|
||||||
you can hit the <enter> key each time you are prompted to keep your previous
|
|
||||||
answer, or you can decide to submit a new answer.
|
|
||||||
|
|
||||||
Once the installation/upgrade is complete, you can safely remove the
|
|
||||||
vmware-tools-distrib directory from your system.
|
|
||||||
|
|
||||||
CONFIGURING
|
|
||||||
|
|
||||||
In order to run correctly, VMware Tools must first be configured.
|
|
||||||
|
|
||||||
To configure VMware Tools, run the program "vmware-config-tools.pl" (this is
|
|
||||||
automatically done for you at the end of the installation/upgrade
|
|
||||||
process if you answer "yes" to the last question). You must have super user
|
|
||||||
privileges (i.e. be logged as root) to run it.
|
|
||||||
|
|
||||||
vmware-config-tools.pl
|
|
||||||
|
|
||||||
This will teach VMware Tools how to run on your current Linux kernel.
|
|
||||||
If you reboot your machine with a new kernel that VMware Tools
|
|
||||||
doesn't know yet (because, let's say, you have upgraded your Linux system),
|
|
||||||
you will have to run this configuration program again.
|
|
||||||
Then, VMware Tools will know this new kernel once and for all.
|
|
||||||
______________________________________________________________________________
|
|
||||||
|
|
||||||
UNINSTALLING
|
|
||||||
|
|
||||||
To remove an existing installation, run the program
|
|
||||||
"vmware-uninstall-tools.pl".
|
|
||||||
You must have super user privileges (i.e. be logged as root) to run it.
|
|
||||||
|
|
||||||
vmware-uninstall-tools.pl
|
|
||||||
|
|
||||||
The uninstall process will delete all installed files, and will backup the
|
|
||||||
files that have been modified since they have been installed.
|
|
||||||
______________________________________________________________________________
|
|
||||||
|
|
||||||
|
|
||||||
We hope you will enjoy this product,
|
|
||||||
|
|
||||||
--The VMware team.
|
|
||||||
379
bin/vm-support
379
bin/vm-support
|
|
@ -1,379 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
##########################################################################
|
|
||||||
# Copyright (c) 2006-2015 VMware, Inc. All rights reserved.
|
|
||||||
##########################################################################
|
|
||||||
#
|
|
||||||
# VMware Tools Support Script
|
|
||||||
#
|
|
||||||
# Collects various configuration and log files for use when troubleshooting
|
|
||||||
# UNIX guests.
|
|
||||||
#
|
|
||||||
|
|
||||||
# usage(): prints how to use this script
|
|
||||||
usage()
|
|
||||||
{
|
|
||||||
echo ""
|
|
||||||
echo "Usage: $0 [-h]"
|
|
||||||
echo " -h prints this usage statement"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# banner(): prints any number of strings padded with
|
|
||||||
# newlines before and after.
|
|
||||||
banner()
|
|
||||||
{
|
|
||||||
echo
|
|
||||||
for option in "$@"
|
|
||||||
do
|
|
||||||
echo $option
|
|
||||||
done
|
|
||||||
echo
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# The status constants are important and have to be kept
|
|
||||||
# in sync with VMware Workstation implementation
|
|
||||||
|
|
||||||
# vm-support script is not running
|
|
||||||
VMSUPPORT_NOT_RUNNING=0
|
|
||||||
# vm-support script is beginning
|
|
||||||
VMSUPPORT_BEGINNING=1
|
|
||||||
# vm-support script running in progress
|
|
||||||
VMSUPPORT_RUNNING=2
|
|
||||||
# vm-support script is ending
|
|
||||||
VMSUPPORT_ENDING=3
|
|
||||||
# vm-support script failed
|
|
||||||
VMSUPPORT_ERROR=10
|
|
||||||
# vm-support collection not supported
|
|
||||||
VMSUPPORT_UNKNOWN=100
|
|
||||||
|
|
||||||
#internal state machine state for update
|
|
||||||
update=0
|
|
||||||
|
|
||||||
# UpdateState($state): Updates the VM with the given state.
|
|
||||||
UpdateState()
|
|
||||||
{
|
|
||||||
if [ $update -eq 1 ]; then
|
|
||||||
vmware-xferlogs upd $1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# checkOutputDir(): checks for a self contained output
|
|
||||||
# directory for later tar'ing and creates it if needed
|
|
||||||
|
|
||||||
checkOutputDir()
|
|
||||||
{
|
|
||||||
dir="$1"
|
|
||||||
|
|
||||||
if [ ! -d "${OUTPUT_DIR}$dir" ]; then
|
|
||||||
mkdir -p "${OUTPUT_DIR}$dir"
|
|
||||||
|
|
||||||
if [ $? != 0 ]; then
|
|
||||||
banner "Could not create ${OUTPUT_DIR}$dir... " \
|
|
||||||
"Have you run out of disk space?" "Continuing"
|
|
||||||
return -1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# addfile(): copies whatever files and directories you give it to
|
|
||||||
# a self contained output directory for later tar'ing
|
|
||||||
# Working on copies could slow this down with VERY large files but:
|
|
||||||
# 1) We don't expect VERY large files
|
|
||||||
# 2) Since /proc files can be copied this preserves the tree without
|
|
||||||
# having to cat them all into a file.
|
|
||||||
# 3) tar barfs on open files like logs if it changes while it's tar'ing.
|
|
||||||
# Copying file first makes sure tar doesn't complain
|
|
||||||
addfile()
|
|
||||||
{
|
|
||||||
file="$1"
|
|
||||||
|
|
||||||
if [ ! -e "$file" ]; then
|
|
||||||
return 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
dir=`dirname "$file"`
|
|
||||||
checkOutputDir "$dir"
|
|
||||||
if [ $? != 0 ]; then
|
|
||||||
return $?
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Ignore stdout and handle errors.
|
|
||||||
cp -pRP "$file" "${OUTPUT_DIR}$dir" 2>/dev/null
|
|
||||||
if [ $? != 0 ]; then
|
|
||||||
banner "Could not copy '$file' to the tar area."
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# addfiles(): adds a list of files to the archive.
|
|
||||||
addfiles()
|
|
||||||
{
|
|
||||||
for i in "$@"; do
|
|
||||||
addfile $i
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# addGrubFile(): adds a grub file to the archive after
|
|
||||||
# replacing password hash with 'xxxxxx'
|
|
||||||
addGrubFile()
|
|
||||||
{
|
|
||||||
file="$1"
|
|
||||||
|
|
||||||
addfile "$file"
|
|
||||||
if [ $? != 0 ]; then
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Avoid tempering with links
|
|
||||||
if [ ! -L "${OUTPUT_DIR}$file" ]; then
|
|
||||||
cat "${OUTPUT_DIR}$file" | \
|
|
||||||
sed 's/password[[:space:]]\+\(.*\)[[:space:]]\+\(.*\)$/password \1 xxxxxx/g' > \
|
|
||||||
"${OUTPUT_DIR}$file.modified"
|
|
||||||
mv "${OUTPUT_DIR}$file.modified" "${OUTPUT_DIR}$file"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# runcmd($out, $cmd): executes the command redirected to a file
|
|
||||||
runcmd()
|
|
||||||
{
|
|
||||||
outFileRelPath="$1"
|
|
||||||
shift # The command arguments are in "$@".
|
|
||||||
|
|
||||||
dir=`dirname "$outFileRelPath"`
|
|
||||||
checkOutputDir "$dir"
|
|
||||||
if [ $? != 0 ]; then
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
"$@" > "$OUTPUT_DIR$outFileRelPath" 2>/dev/null
|
|
||||||
if [ $? != 0 ]; then
|
|
||||||
echo 3
|
|
||||||
banner "Either could not run $@ or could not write to" \
|
|
||||||
"${OUTPUT_DIR}$outFileRelPath" \
|
|
||||||
"Do you have a full disk? Continuing..."
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# stageLinux(): gather information for troubleshooting Linux guests.
|
|
||||||
stageLinux()
|
|
||||||
{
|
|
||||||
# Try to collect bootloader config.
|
|
||||||
addfile /etc/lilo.conf
|
|
||||||
|
|
||||||
# And for grub we are not sure about the exact default location so collect them
|
|
||||||
# all.
|
|
||||||
addGrubFile /boot/grub/grub.conf
|
|
||||||
addGrubFile /boot/grub/menu.lst
|
|
||||||
addGrubFile /etc/grub.conf
|
|
||||||
|
|
||||||
# Old linux kernel use modules.conf while new kernel use modprobe.conf and modprobe.d
|
|
||||||
addfile /etc/modules.conf
|
|
||||||
addfile /etc/modprobe.conf
|
|
||||||
addfile /etc/modprobe.d
|
|
||||||
|
|
||||||
addfile /etc/cron.daily
|
|
||||||
addfile /etc/cron.hourly
|
|
||||||
addfile /etc/cron.monthly
|
|
||||||
addfile /etc/cron.weekly
|
|
||||||
addfile /etc/crontab
|
|
||||||
addfile /etc/ntp.conf
|
|
||||||
addfile /etc/security
|
|
||||||
addfile /etc/services
|
|
||||||
addfile /proc/interrupts
|
|
||||||
addfile /proc/irq
|
|
||||||
|
|
||||||
# Commands to run ($2) and redirect to logs ($1) for inclusion.
|
|
||||||
runcmd "/tmp/ps-auwwx.txt" ps auwwx
|
|
||||||
runcmd "/tmp/lspci1.txt" lspci -M -vvv -nn -xxxx
|
|
||||||
runcmd "/tmp/lspci2.txt" lspci -t -v -nn -F "${OUTPUT_DIR}/tmp/lspci1.txt"
|
|
||||||
runcmd "/tmp/lspci3.txt" lspci -vvv -nn
|
|
||||||
runcmd "/tmp/modules.txt" /sbin/lsmod
|
|
||||||
runcmd "/tmp/uname.txt" uname -a
|
|
||||||
runcmd "/tmp/issue.txt" cat /etc/issue
|
|
||||||
if which rpm &> /dev/null; then
|
|
||||||
runcmd "/tmp/rpm-qa.txt" rpm -qa
|
|
||||||
fi
|
|
||||||
runcmd "/tmp/netstat-lan.txt" netstat -lan
|
|
||||||
runcmd "/tmp/route.txt" route
|
|
||||||
runcmd "/tmp/free.txt" free
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# stageFreeBSD(): gather information for troubleshooting FreeBSD guests.
|
|
||||||
stageFreeBSD()
|
|
||||||
{
|
|
||||||
runcmd "/tmp/ps-auwwx.txt" ps auwwx
|
|
||||||
}
|
|
||||||
|
|
||||||
# stageSolaris(): gather information for troubleshooting Solaris guests.
|
|
||||||
stageSolaris()
|
|
||||||
{
|
|
||||||
runcmd "/tmp/ps-eaf.txt" ps -eaf
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# error(): prints an error message using the "banner" funtion and quits.
|
|
||||||
error()
|
|
||||||
{
|
|
||||||
banner "$@"
|
|
||||||
UpdateState $VMSUPPORT_ERROR
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# Cleanup our temp folder and optionally exit.
|
|
||||||
cleanup()
|
|
||||||
{
|
|
||||||
exitCode="$1"
|
|
||||||
|
|
||||||
rm -rf "$OUTPUT_DIR"
|
|
||||||
if [ $? != 0 ]; then
|
|
||||||
banner "$OUTPUT_DIR was not successfully removed." \
|
|
||||||
"Please remove manually."
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$exitCode" ]; then
|
|
||||||
exit "$exitCode"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# This executable may run with root privileges, so hardcode a PATH where
|
|
||||||
# unprivileged users cannot write.
|
|
||||||
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
|
|
||||||
|
|
||||||
TARFILE=vm-`date +%Y-%m-%d`.$$.tar.gz
|
|
||||||
VER=0.92
|
|
||||||
|
|
||||||
# Parse args
|
|
||||||
for option in $@
|
|
||||||
do
|
|
||||||
case $option in
|
|
||||||
"-h")
|
|
||||||
usage
|
|
||||||
;;
|
|
||||||
"-u")
|
|
||||||
update=1
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
usage
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
# Start message
|
|
||||||
|
|
||||||
UpdateState $VMSUPPORT_BEGINNING
|
|
||||||
|
|
||||||
banner "VMware UNIX Support Script $VER"
|
|
||||||
|
|
||||||
# Check for root privledge
|
|
||||||
|
|
||||||
if [ `whoami` != 'root' ]; then
|
|
||||||
error "Please re-run this program as root. "
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Source /etc/profile. If we can't find it, it's the users problem to get
|
|
||||||
# their paths straight.
|
|
||||||
if [ -f /etc/profile ]; then
|
|
||||||
. /etc/profile
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Protect against non-default values of $IFS (Not all scripts in /etc/profile.d/
|
|
||||||
# are good citizens).
|
|
||||||
if [ `uname` != 'SunOS' ]; then
|
|
||||||
unset IFS 2>/dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Create a temporary directory to place the files to archive.
|
|
||||||
#
|
|
||||||
# o mktemp creates a new directory, with a random name, and gives it
|
|
||||||
# permissions 700 so only the current user (and root) can access the
|
|
||||||
# contents of the directory. This prevents a rogue user from:
|
|
||||||
# 1) Guessing the name of the directory.
|
|
||||||
# 2) Performing a symlink attack inside the directory.
|
|
||||||
# 3) Reading data inside the directory, that only the current user (and root)
|
|
||||||
# are supposed to access.
|
|
||||||
# o The directory is created inside /tmp, so only the current user (and root)
|
|
||||||
# can delete the directory. This prevents a rogue user from wholesale
|
|
||||||
# replacing the directory after we have created it, with a directory that has
|
|
||||||
# more lenient permissions.
|
|
||||||
OUTPUT_DIR="`mktemp -d /tmp/vm-support.XXXXXX`"
|
|
||||||
if [ $? != 0 ]; then
|
|
||||||
banner "Could not create a secure temporary directory. Exiting..."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Cleanup our temp folder if the process is signalled midway.
|
|
||||||
trap "cleanup 1" HUP INT QUIT TERM ABRT
|
|
||||||
|
|
||||||
banner "Collecting support information..."
|
|
||||||
|
|
||||||
# Common stuff that we gather for all OSes.
|
|
||||||
runcmd "/tmp/vm-support-version.txt" echo vm-support version: $VER
|
|
||||||
|
|
||||||
addfiles /etc/vmware-tools
|
|
||||||
addfiles /var/log/boot*
|
|
||||||
addfiles /var/log/secure*
|
|
||||||
addfiles /var/log/messages*
|
|
||||||
addfiles /var/log/syslog*
|
|
||||||
addfiles /var/log/vmware-*
|
|
||||||
addfiles /var/run/vmware-*
|
|
||||||
|
|
||||||
runcmd "/tmp/df.txt" df
|
|
||||||
runcmd "/tmp/ifconfig.txt" ifconfig -a
|
|
||||||
runcmd "/tmp/mount.txt" mount
|
|
||||||
runcmd "/tmp/dmesg.txt" dmesg
|
|
||||||
runcmd "/tmp/ulimit-a.txt" ulimit -a
|
|
||||||
runcmd "/tmp/uptime.txt" uptime
|
|
||||||
runcmd "/tmp/date.txt" date
|
|
||||||
runcmd "/tmp/umask.txt" umask
|
|
||||||
|
|
||||||
case `uname` in
|
|
||||||
Linux)
|
|
||||||
stageLinux
|
|
||||||
# tar options: 'S' for sparse core files.
|
|
||||||
TAR_OPTS=-czSf
|
|
||||||
;;
|
|
||||||
FreeBSD)
|
|
||||||
stageFreeBSD
|
|
||||||
TAR_OPTS=-czf
|
|
||||||
;;
|
|
||||||
SunOS)
|
|
||||||
stageSolaris
|
|
||||||
TAR_OPTS=-czf
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
UpdateState $VMSUPPORT_RUNNING
|
|
||||||
|
|
||||||
banner "Creating tar archive..."
|
|
||||||
# Set umask to make diagnostic information unreadable to other users to avoid
|
|
||||||
# possible information leakage.
|
|
||||||
(umask 0077 && tar $TAR_OPTS $TARFILE $OUTPUT_DIR)
|
|
||||||
if [ $? != 0 ]; then
|
|
||||||
banner "The tar process did not successfully complete!" \
|
|
||||||
"If tar reports that a file changed while reading, please attempt " \
|
|
||||||
"to rerun this script."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Clean up temporary files
|
|
||||||
trap - HUP INT QUIT TERM ABRT; cleanup
|
|
||||||
|
|
||||||
banner "Uploading archive to host..."
|
|
||||||
vmware-xferlogs enc $TARFILE 2>/dev/null
|
|
||||||
|
|
||||||
if [ $? != 0 ]; then
|
|
||||||
banner "Could not transmit logs successfully: either the vmware-xferlogs " \
|
|
||||||
"binary is not in the path, or you are not in a virtual machine."
|
|
||||||
fi
|
|
||||||
|
|
||||||
UpdateState $VMSUPPORT_ENDING
|
|
||||||
banner "Done, support data available in '$TARFILE'."
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -1,97 +0,0 @@
|
||||||
[globals]
|
|
||||||
input_dir=${env:CAF_INPUT_DIR}
|
|
||||||
output_dir=${env:CAF_OUTPUT_DIR}
|
|
||||||
config_dir=${env:CAF_CONFIG_DIR}
|
|
||||||
log_dir=${env:CAF_LOG_DIR}
|
|
||||||
|
|
||||||
response_dir=${output_dir}/responses
|
|
||||||
event_dir=${output_dir}/events
|
|
||||||
request_dir=${output_dir}/requests
|
|
||||||
tmp_dir=${output_dir}/tmp
|
|
||||||
certs_dir=${input_dir}/certs
|
|
||||||
log_config_file=${config_dir}/CommAmqpListener-log4cpp_config
|
|
||||||
|
|
||||||
thread_stack_size_kb=0
|
|
||||||
pme_id=${env:CAF_PME_ID}
|
|
||||||
|
|
||||||
schema_namespace_root=http://schemas.vmware.com/caf/schema
|
|
||||||
schema_location_root=http://10.25.57.32/caf-downloads/schema
|
|
||||||
|
|
||||||
[communication_amqp]
|
|
||||||
working_dir=${output_dir}/comm-wrk
|
|
||||||
context_file=${env:CAF_COMMAMQPLISTENER_CONTEXT}
|
|
||||||
|
|
||||||
reactive_request_queue_id=${env:CAF_REACTIVE_REQUEST_AMQP_QUEUEID}
|
|
||||||
|
|
||||||
startup_timeout=5000
|
|
||||||
shutdown_timeout=5000
|
|
||||||
connection_retry_interval=5000
|
|
||||||
|
|
||||||
# Temporarily set to 60MB for Hyperic Agent POC
|
|
||||||
# 1024 Bytes/KB * 1024 KB/MB * 60
|
|
||||||
max_part_size=62976000
|
|
||||||
|
|
||||||
amqp_protocol=amqp
|
|
||||||
amqp_port=5672
|
|
||||||
amqp_broker=${env:CAF_BROKER_ADDRESS}
|
|
||||||
|
|
||||||
amqps_protocol=amqps
|
|
||||||
amqps_port=5671
|
|
||||||
amqps_broker=${env:CAF_BROKER_ADDRESS}
|
|
||||||
|
|
||||||
tunnel_protocol=tunnel
|
|
||||||
tunnel_port=6672
|
|
||||||
tunnel_broker=localhost
|
|
||||||
tunnel_username=agentId1
|
|
||||||
tunnel_password=not_a_real_password
|
|
||||||
|
|
||||||
vhost=caf
|
|
||||||
connection_timeout=5000
|
|
||||||
connection_retry_interval=5000
|
|
||||||
channel_cache_size=4
|
|
||||||
reply_timeout=5000
|
|
||||||
|
|
||||||
[security]
|
|
||||||
public_key_path=${certs_dir}/publicKey.pem
|
|
||||||
private_key_path=${certs_dir}/privateKey.pem
|
|
||||||
cms_ca_certificate_path=${certs_dir}/cacert.pem
|
|
||||||
ca_certificate_path=${env:CAF_CA_CERT}
|
|
||||||
|
|
||||||
cms_policy=CAF_Encrypted_And_Signed
|
|
||||||
is_signing_enforced=true
|
|
||||||
is_encryption_enforced=true
|
|
||||||
|
|
||||||
protocol=TLSv1
|
|
||||||
ciphers=SRP-RSA-AES-128-CBC-SHA
|
|
||||||
|
|
||||||
[subsystems]
|
|
||||||
# Integration System Beans
|
|
||||||
com.vmware.commonagent.integration.objectfactory=IntegrationSubsys
|
|
||||||
com.vmware.commonagent.integration.channels.errorchannel=IntegrationSubsys
|
|
||||||
com.vmware.commonagent.integration.channels.nullchannel=IntegrationSubsys
|
|
||||||
com.vmware.commonagent.integration.headerexpressioninvoker=IntegrationSubsys
|
|
||||||
|
|
||||||
# Communication Integration Beans
|
|
||||||
com.vmware.caf.comm.integration.cmsmessagetransformer=CommIntegrationSubsys
|
|
||||||
com.vmware.caf.comm.integration.cmsmessagetransformerinstance=CommIntegrationSubsys
|
|
||||||
com.vmware.caf.comm.integration.eventtopiccalculator=CommIntegrationSubsys
|
|
||||||
com.vmware.caf.comm.integration.replytoresolver=CommIntegrationSubsys
|
|
||||||
com.vmware.caf.comm.integration.incomingmessagehandler=CommIntegrationSubsys
|
|
||||||
com.vmware.caf.comm.integration.incomingmessagehandlerinstance=CommIntegrationSubsys
|
|
||||||
com.vmware.caf.comm.integration.outgoingmessagehandler=CommIntegrationSubsys
|
|
||||||
com.vmware.caf.comm.integration.protocolheaderenricher=CommIntegrationSubsys
|
|
||||||
com.vmware.caf.comm.integration.protocolheaderenricherinstance=CommIntegrationSubsys
|
|
||||||
com.vmware.caf.comm.integration.replytocacher=CommIntegrationSubsys
|
|
||||||
com.vmware.caf.comm.integration.replytocacherinstance=CommIntegrationSubsys
|
|
||||||
com.vmware.caf.comm.integration.replytoresolver=CommIntegrationSubsys
|
|
||||||
com.vmware.caf.comm.integration.objects=CommAmqpIntegrationSubsys
|
|
||||||
|
|
||||||
# Amqp Listener Context Beans
|
|
||||||
com.vmware.caf.comm.integration.amqp.caching.connection.factory=CommAmqpIntegrationSubsys
|
|
||||||
com.vmware.caf.comm.integration.amqp.secure.caching.connection.factory=CommAmqpIntegrationSubsys
|
|
||||||
|
|
||||||
# CAF Integration System Beans
|
|
||||||
com.vmware.commonagent.cafintegration.errortoresponsetransformerinstance=CafIntegrationSubsys
|
|
||||||
com.vmware.commonagent.cafintegration.errortoresponsetransformer=CafIntegrationSubsys
|
|
||||||
com.vmware.commonagent.cafintegration.payloadheaderenricherinstance=CafIntegrationSubsys
|
|
||||||
com.vmware.commonagent.cafintegration.payloadheaderenricher=CafIntegrationSubsys
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<caf:beans
|
|
||||||
xmlns:caf="http://schemas.vmware.com/caf/schema/fx"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://schemas.vmware.com/caf/schema/fx http://10.25.57.32/caf-downloads/schema/fx/CafIntegration.xsd">
|
|
||||||
|
|
||||||
<import resource="IntBeanConfigFile.xml"/>
|
|
||||||
<import resource="CommAmqpListener-context-common.xml"/>
|
|
||||||
|
|
||||||
<bean
|
|
||||||
id="amqpConnectionFactory"
|
|
||||||
class="com.vmware.caf.comm.integration.amqp.caching.connection.factory">
|
|
||||||
<property name="protocol" value="${var:communication_amqp:amqp_protocol}"/>
|
|
||||||
<property name="host" value="${var:communication_amqp:amqp_broker}"/>
|
|
||||||
<property name="port" value="${var:communication_amqp:amqp_port}"/>
|
|
||||||
<property name="virtualHost" value="${var:communication_amqp:vhost}"/>
|
|
||||||
<property name="username" value="${var:communication_amqp:amqp_username}"/>
|
|
||||||
<property name="password" value="${var:communication_amqp:amqp_password}"/>
|
|
||||||
<property name="connectionTimeout" value="${var:communication_amqp:connection_timeout}"/>
|
|
||||||
<property name="channelCacheSize" value="3"/>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<rabbit-outbound-channel-adapter
|
|
||||||
id="amqpResponseOutboundChannel"
|
|
||||||
channel="managementMessageOutboundAmqp"
|
|
||||||
amqp-template="amqpTemplate"
|
|
||||||
exchange-name="client.mgmt.direct"
|
|
||||||
routing-key-expression="@headerExprInvoker.toString('replyTo')"
|
|
||||||
mapped-request-headers="caf.msg.*|amqp*" />
|
|
||||||
|
|
||||||
<rabbit-outbound-channel-adapter
|
|
||||||
id="amqpEventOutboundChannel"
|
|
||||||
channel="eventOutFileChannel"
|
|
||||||
amqp-template="amqpTemplate"
|
|
||||||
exchange-name="client.mgmt.event"
|
|
||||||
routing-key="caf.event" />
|
|
||||||
|
|
||||||
<rabbit-inbound-channel-adapter
|
|
||||||
id="amqpRequestInboundChannel"
|
|
||||||
channel="managementInboundAmqp"
|
|
||||||
queue-name="#{managementMessageQ}"
|
|
||||||
connection-factory="amqpConnectionFactory"
|
|
||||||
error-channel="errorChannel"
|
|
||||||
mapped-request-headers="caf.msg.*|amqp*" />
|
|
||||||
|
|
||||||
<rabbit-template
|
|
||||||
id="amqpTemplate"
|
|
||||||
connection-factory="amqpConnectionFactory"/>
|
|
||||||
|
|
||||||
<rabbit-admin
|
|
||||||
connection-factory="amqpConnectionFactory" />
|
|
||||||
|
|
||||||
<rabbit-queue
|
|
||||||
id="managementMessageQ"
|
|
||||||
name="${var:communication_amqp:reactive_request_queue_id}.mgmt"
|
|
||||||
auto-delete="true"
|
|
||||||
durable="false"/>
|
|
||||||
|
|
||||||
<rabbit-direct-exchange
|
|
||||||
name="agent.mgmt.direct">
|
|
||||||
<rabbit-bindings>
|
|
||||||
<rabbit-binding
|
|
||||||
queue="managementMessageQ"
|
|
||||||
key="${var:communication_amqp:reactive_request_queue_id}.mgmt" />
|
|
||||||
</rabbit-bindings>
|
|
||||||
</rabbit-direct-exchange>
|
|
||||||
|
|
||||||
<rabbit-direct-exchange
|
|
||||||
name="client.mgmt.direct" />
|
|
||||||
|
|
||||||
<rabbit-topic-exchange
|
|
||||||
name="client.mgmt.event" />
|
|
||||||
</caf:beans>
|
|
||||||
|
|
@ -1,224 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<caf:beans
|
|
||||||
xmlns:caf="http://schemas.vmware.com/caf/schema/fx"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://schemas.vmware.com/caf/schema/fx http://10.25.57.32/caf-downloads/schema/fx/CafIntegration.xsd">
|
|
||||||
|
|
||||||
<import resource="IntBeanConfigFile.xml"/>
|
|
||||||
|
|
||||||
<!-- <channel id="logger"/> -->
|
|
||||||
<!-- <int:logging-channel-adapter channel="logger" log-full-message="true" level="INFO"/> -->
|
|
||||||
<!-- <int:wire-tap channel="logger" pattern="*"/> -->
|
|
||||||
|
|
||||||
<!-- Listener Infrastructure -->
|
|
||||||
|
|
||||||
<bean
|
|
||||||
id="amqpIntegrationObjects"
|
|
||||||
class="com.vmware.caf.comm.integration.objects" />
|
|
||||||
|
|
||||||
<bean
|
|
||||||
id="replyToResolver"
|
|
||||||
class="com.vmware.caf.comm.integration.replytoresolver"/>
|
|
||||||
|
|
||||||
<bean
|
|
||||||
id="eventTopicCalculator"
|
|
||||||
class="com.vmware.caf.comm.integration.eventtopiccalculator"/>
|
|
||||||
|
|
||||||
<bean
|
|
||||||
id="outgoingMessageHandler"
|
|
||||||
class="com.vmware.caf.comm.integration.outgoingmessagehandler"/>
|
|
||||||
|
|
||||||
<bean
|
|
||||||
id="headerExprInvoker"
|
|
||||||
class="com.vmware.commonagent.integration.headerexpressioninvoker" />
|
|
||||||
|
|
||||||
<bean
|
|
||||||
id="cmsMessageTransformerBean"
|
|
||||||
class="com.vmware.caf.comm.integration.cmsmessagetransformer">
|
|
||||||
<property name="encryptPublicKeyPath" value="${var:security:public_key_path}"/>
|
|
||||||
<property name="encryptPrivateKeyPath" value="${var:security:private_key_path}"/>
|
|
||||||
<property name="signPublicKeyPath" value="${var:security:public_key_path}"/>
|
|
||||||
<property name="signPrivateKeyPath" value="${var:security:private_key_path}"/>
|
|
||||||
<property name="caCertificatePath" value="${var:security:cms_ca_certificate_path}"/>
|
|
||||||
<property name="cmsPolicy" value="${var:security:cms_policy}"/>
|
|
||||||
<property name="isSigningEnforced" value="${var:security:is_signing_enforced}"/>
|
|
||||||
<property name="isEncryptionEnforced" value="${var:security:is_encryption_enforced}"/>
|
|
||||||
<property name="protocol" value="${var:security:protocol}"/>
|
|
||||||
<property name="ciphers" value="${var:security:ciphers}"/>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<bean
|
|
||||||
id="incomingMessageHandlerBean"
|
|
||||||
class="com.vmware.caf.comm.integration.incomingmessagehandler"/>
|
|
||||||
|
|
||||||
<bean
|
|
||||||
id="replyToCacherBean"
|
|
||||||
class="com.vmware.caf.comm.integration.replytocacher"/>
|
|
||||||
|
|
||||||
<bean
|
|
||||||
id="payloadHeaderEnricherBean"
|
|
||||||
class="com.vmware.commonagent.cafintegration.payloadheaderenricher" >
|
|
||||||
<property name="includeFilename" value="false"/>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<!-- Outbound messages -->
|
|
||||||
<channel id="responseFileChannel" />
|
|
||||||
<channel id="managementMessageOutboundAmqp" />
|
|
||||||
|
|
||||||
<file-inbound-channel-adapter
|
|
||||||
id="responseInboundChannel"
|
|
||||||
auto-create-directory="true"
|
|
||||||
filename-regex=".*\.xml"
|
|
||||||
directory="${var:globals:response_dir}"
|
|
||||||
channel="responseFileChannel" />
|
|
||||||
|
|
||||||
<chain
|
|
||||||
id="responseChain"
|
|
||||||
input-channel="responseFileChannel"
|
|
||||||
output-channel="managementMessageOutboundAmqp" >
|
|
||||||
<file-to-string-transformer
|
|
||||||
id="responseFileToString"
|
|
||||||
charset="UTF-8"
|
|
||||||
delete-files="true" />
|
|
||||||
<transformer
|
|
||||||
id="payloadHeaderEnricher"
|
|
||||||
ref="payloadHeaderEnricherBean"/>
|
|
||||||
<header-enricher
|
|
||||||
id="responseHeaderEnricher">
|
|
||||||
<header
|
|
||||||
name="replyTo"
|
|
||||||
expression="@replyToResolver.lookupReplyTo()"/>
|
|
||||||
<header
|
|
||||||
name="cafcomm.internal.msgflow"
|
|
||||||
value="OUTGOING"/>
|
|
||||||
</header-enricher>
|
|
||||||
<transformer
|
|
||||||
id="outgoingCmsMessageTransformerId"
|
|
||||||
ref="cmsMessageTransformerBean"/>
|
|
||||||
<service-activator
|
|
||||||
id="outgoingMessageServiceActivator"
|
|
||||||
ref="outgoingMessageHandler"/>
|
|
||||||
</chain>
|
|
||||||
|
|
||||||
<!-- proactive messages -->
|
|
||||||
<channel id="eventFileChannel" />
|
|
||||||
<channel id="eventOutFileChannel" />
|
|
||||||
<file-inbound-channel-adapter
|
|
||||||
id="eventInboundChannel"
|
|
||||||
auto-create-directory="true"
|
|
||||||
filename-regex=".*\.xml"
|
|
||||||
directory="${var:globals:event_dir}"
|
|
||||||
channel="eventFileChannel" />
|
|
||||||
|
|
||||||
<chain
|
|
||||||
id="eventChain"
|
|
||||||
input-channel="eventFileChannel"
|
|
||||||
output-channel="eventOutFileChannel">
|
|
||||||
|
|
||||||
<file-to-string-transformer
|
|
||||||
id="eventFileToString"
|
|
||||||
charset="UTF-8"
|
|
||||||
delete-files="true" />
|
|
||||||
|
|
||||||
<transformer
|
|
||||||
id="payloadHeaderEnricher"
|
|
||||||
ref="payloadHeaderEnricherBean"/>
|
|
||||||
|
|
||||||
<header-enricher
|
|
||||||
id="eventHeaderEnricher">
|
|
||||||
<header
|
|
||||||
name="cafcomm.internal.msgflow"
|
|
||||||
value="OUTGOING"/>
|
|
||||||
|
|
||||||
</header-enricher>
|
|
||||||
|
|
||||||
<transformer
|
|
||||||
id="outgoingCmsMessageTransformerId"
|
|
||||||
ref="cmsMessageTransformerBean"/>
|
|
||||||
</chain>
|
|
||||||
|
|
||||||
<!-- Inbound messages -->
|
|
||||||
<channel id="managementInboundAmqp" />
|
|
||||||
<channel id="managementInboundChannel" />
|
|
||||||
|
|
||||||
<chain
|
|
||||||
id="requestChain"
|
|
||||||
input-channel="managementInboundAmqp"
|
|
||||||
output-channel="managementInboundChannel">
|
|
||||||
|
|
||||||
<header-enricher
|
|
||||||
id="requestEnricher">
|
|
||||||
<header
|
|
||||||
name="cafcomm.internal.msgflow"
|
|
||||||
value="INCOMING"/>
|
|
||||||
</header-enricher>
|
|
||||||
|
|
||||||
<transformer
|
|
||||||
id="requestIncomingMessageHandler"
|
|
||||||
ref="incomingMessageHandlerBean"/>
|
|
||||||
|
|
||||||
<transformer
|
|
||||||
id="payloadHeaderEnricher"
|
|
||||||
ref="payloadHeaderEnricherBean"/>
|
|
||||||
|
|
||||||
<transformer
|
|
||||||
id="requestReplyToCacher"
|
|
||||||
ref="replyToCacherBean"
|
|
||||||
reply-to-resolver="replyToResolver"/>
|
|
||||||
|
|
||||||
<transformer
|
|
||||||
id="incomingCmsMessageTransformerId"
|
|
||||||
ref="cmsMessageTransformerBean"/>
|
|
||||||
</chain>
|
|
||||||
|
|
||||||
<file-outbound-channel-adapter
|
|
||||||
id="requestOutboundChannel"
|
|
||||||
channel="managementInboundChannel"
|
|
||||||
auto-create-directory="true"
|
|
||||||
delete-source-files="true"
|
|
||||||
charset="UTF-8"
|
|
||||||
directory="${var:globals:request_dir}"
|
|
||||||
temporary-file-suffix=".tmp" />
|
|
||||||
|
|
||||||
<!-- Stores the error information from the default error channel into the respose directory. -->
|
|
||||||
<channel id="fileSenderErrChannel"/>
|
|
||||||
<bean
|
|
||||||
id="errorToResponseTransformerBean"
|
|
||||||
class="com.vmware.commonagent.cafintegration.errortoresponsetransformer" />
|
|
||||||
<chain
|
|
||||||
id="responseErrorChain"
|
|
||||||
input-channel="errorChannel"
|
|
||||||
output-channel="fileSenderErrChannel">
|
|
||||||
|
|
||||||
<!-- Convert the error information into an error response message. -->
|
|
||||||
<transformer
|
|
||||||
id="errorToResponseTransformer"
|
|
||||||
ref="errorToResponseTransformerBean"/>
|
|
||||||
</chain>
|
|
||||||
|
|
||||||
<!-- Store the response into the responses directory. In normal processing, the responses
|
|
||||||
directory is monitored by the listener process, which sends the responses back to
|
|
||||||
the client. -->
|
|
||||||
<file-outbound-channel-adapter
|
|
||||||
id="responseErrFileOutbound"
|
|
||||||
channel="fileSenderErrChannel"
|
|
||||||
directory="${var:globals:response_dir}"
|
|
||||||
delete-source-files="true" />
|
|
||||||
|
|
||||||
<!-- AMQP Infrastructure -->
|
|
||||||
<!-- SSL
|
|
||||||
<bean id="amqps-conn-factory" class="com.vmware.caf.commapi.integration.SslConnectionFactory">
|
|
||||||
<property name="uri" value="amqps://${brokerAddress}/${brokerVhost}"/>
|
|
||||||
<property name="connectionTimeout" value="10000"/>
|
|
||||||
<property name="clientCertPath" value="${brokerClientCertPath}"/>
|
|
||||||
<property name="clientKeyPath" value="${brokerClientKeyPath}"/>
|
|
||||||
<property name="caCertPath" value="${brokerCaCertPath}"/>
|
|
||||||
<property name="ciphers" value="${sslCiphers}"/>
|
|
||||||
<property name="protocol" value="${sslProtocol}"/>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<bean id="connectionFactory" class="org.springframework.amqp.rabbit.connection.CachingConnectionFactory">
|
|
||||||
<constructor-arg ref="amqps-conn-factory"/>
|
|
||||||
</bean>
|
|
||||||
-->
|
|
||||||
</caf:beans>
|
|
||||||
|
|
@ -1,55 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<caf:beans
|
|
||||||
xmlns:caf="http://schemas.vmware.com/caf/schema/fx"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://schemas.vmware.com/caf/schema/fx http://10.25.57.32/caf-downloads/schema/fx/CafIntegration.xsd">
|
|
||||||
|
|
||||||
<import resource="IntBeanConfigFile.xml"/>
|
|
||||||
<import resource="CommAmqpListener-context-common.xml"/>
|
|
||||||
|
|
||||||
<bean
|
|
||||||
id="tunnelConnectionFactory"
|
|
||||||
class="com.vmware.caf.comm.integration.amqp.secure.caching.connection.factory">
|
|
||||||
<property name="protocol" value="${var:communication_amqp:tunnel_protocol}"/>
|
|
||||||
<property name="host" value="${var:communication_amqp:tunnel_broker}"/>
|
|
||||||
<property name="port" value="${var:communication_amqp:tunnel_port}"/>
|
|
||||||
<property name="virtualHost" value="${var:communication_amqp:vhost}"/>
|
|
||||||
<property name="username" value="${var:communication_amqp:tunnel_username}"/>
|
|
||||||
<property name="password" value="${var:communication_amqp:tunnel_password}"/>
|
|
||||||
<property name="caCertPath" value="${var:security:ca_certificate_path}"/>
|
|
||||||
<property name="clientCertPath" value="${var:security:public_key_path}"/>
|
|
||||||
<property name="clientKeyPath" value="${var:security:private_key_path}"/>
|
|
||||||
<property name="connectionTimeout" value="${var:communication_amqp:connection_timeout}"/>
|
|
||||||
<property name="channelCacheSize" value="3"/>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<rabbit-outbound-channel-adapter
|
|
||||||
id="tunnelResponseOutboundChannel"
|
|
||||||
channel="managementMessageOutboundAmqp"
|
|
||||||
amqp-template="amqpTemplate"
|
|
||||||
exchange-name="client.mgmt.direct"
|
|
||||||
routing-key-expression="@headerExprInvoker.toString('replyTo')"
|
|
||||||
mapped-request-headers="caf.msg.*|amqp*" />
|
|
||||||
|
|
||||||
<rabbit-outbound-channel-adapter
|
|
||||||
id="tunnelEventOutboundChannel"
|
|
||||||
channel="eventOutFileChannel"
|
|
||||||
amqp-template="amqpTemplate"
|
|
||||||
exchange-name="client.mgmt.event"
|
|
||||||
routing-key="caf.event" />
|
|
||||||
|
|
||||||
<rabbit-inbound-channel-adapter
|
|
||||||
id="tunnelRequestInboundChannel"
|
|
||||||
channel="managementInboundAmqp"
|
|
||||||
queue-name="${var:communication_amqp:reactive_request_queue_id}.mgmt"
|
|
||||||
connection-factory="tunnelConnectionFactory"
|
|
||||||
error-channel="errorChannel"
|
|
||||||
mapped-request-headers="caf.msg.*|amqp*" />
|
|
||||||
|
|
||||||
<rabbit-template
|
|
||||||
id="amqpTemplate"
|
|
||||||
connection-factory="tunnelConnectionFactory"/>
|
|
||||||
|
|
||||||
<rabbit-admin
|
|
||||||
connection-factory="tunnelConnectionFactory" />
|
|
||||||
</caf:beans>
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
#log4j.rootCategory=DEBUG, console
|
|
||||||
log4j.rootCategory=WARN, rolling
|
|
||||||
|
|
||||||
log4j.appender.console=org.apache.log4j.ConsoleAppender
|
|
||||||
log4j.appender.console.layout=org.apache.log4j.PatternLayout
|
|
||||||
log4j.appender.console.layout.ConversionPattern=%p|%d{ISO8601}|%t|%c|%m%n
|
|
||||||
|
|
||||||
log4j.appender.logfile=org.apache.log4j.FileAppender
|
|
||||||
log4j.appender.logfile.fileName=CommAmqpListener-log4cpp.log
|
|
||||||
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
|
|
||||||
log4j.appender.logfile.layout.ConversionPattern=%p|%d{ISO8601}|%t|%c|%m%n
|
|
||||||
|
|
||||||
log4j.appender.rolling=org.apache.log4j.RollingFileAppender
|
|
||||||
log4j.appender.rolling.fileName=CommAmqpListener-log4cpp_rolling.log
|
|
||||||
log4j.appender.rolling.layout=org.apache.log4j.PatternLayout
|
|
||||||
log4j.appender.rolling.layout.ConversionPattern=%p|%d{ISO8601}|%t|%c|%m%n
|
|
||||||
log4j.appender.rolling.MaxFileSize=1024KB
|
|
||||||
log4j.appender.rolling.MaxBackupIndex=5
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<caf:beans
|
|
||||||
xmlns:caf="http://schemas.vmware.com/caf/schema/fx"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://schemas.vmware.com/caf/schema/fx http://10.25.57.32/caf-downloads/schema/fx/CafIntegration.xsd">
|
|
||||||
|
|
||||||
<bean
|
|
||||||
id="integrationObjectFactory"
|
|
||||||
class="com.vmware.commonagent.integration.objectfactory" />
|
|
||||||
|
|
||||||
<bean
|
|
||||||
id="errorChannelBean"
|
|
||||||
class="com.vmware.commonagent.integration.channels.errorchannel" />
|
|
||||||
|
|
||||||
<bean
|
|
||||||
id="nullChannelBean"
|
|
||||||
class="com.vmware.commonagent.integration.channels.nullchannel" />
|
|
||||||
|
|
||||||
</caf:beans>
|
|
||||||
|
|
@ -1,61 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
#######################################################
|
|
||||||
#
|
|
||||||
# Purpose: Sets install variables.
|
|
||||||
#
|
|
||||||
#######################################################
|
|
||||||
|
|
||||||
|
|
||||||
# Specifies the PME ID (UUID) of this machine.
|
|
||||||
tunnelPort=$(netstat -ldn | egrep ":6672 ")
|
|
||||||
if [ -f /etc/vmware-tools/GuestProxyData/VmVcUuid/vm.vc.uuid -a "$tunnelPort" != "" ]; then
|
|
||||||
export CAF_REACTIVE_REQUEST_AMQP_QUEUEID=$(cat /etc/vmware-tools/GuestProxyData/VmVcUuid/vm.vc.uuid)-agentId1
|
|
||||||
export CAF_PME_ID=$CAF_REACTIVE_REQUEST_AMQP_QUEUEID
|
|
||||||
export CAF_COMMAMQPLISTENER_CONTEXT=@configDir@/CommAmqpListener-context-tunnel.xml
|
|
||||||
export CAF_BROKER_ADDRESS=localhost
|
|
||||||
export CAF_CA_CERT=/etc/vmware-tools/GuestProxyData/server/cert.pem
|
|
||||||
else
|
|
||||||
export CAF_REACTIVE_REQUEST_AMQP_QUEUEID=@pmeId@
|
|
||||||
export CAF_PME_ID=$CAF_REACTIVE_REQUEST_AMQP_QUEUEID
|
|
||||||
export CAF_COMMAMQPLISTENER_CONTEXT=@configDir@/CommAmqpListener-context-amqp.xml
|
|
||||||
# Specifies the hostname or IP4 address of the RabbitMQ broker handling
|
|
||||||
# communication between the application server and this PME.
|
|
||||||
export CAF_BROKER_ADDRESS=@brokerAddr@
|
|
||||||
export CAF_CA_CERT="@inputDir@/certs/cacert.pem"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Specifies where python is located.
|
|
||||||
export CAF_PYTHON_DIR=/opt/vmware/caf/python
|
|
||||||
|
|
||||||
# Substitute @binDir@ for the value passed in during install
|
|
||||||
# Maps to 'bin' in the build output
|
|
||||||
export CAF_BIN_DIR="@binDir@"
|
|
||||||
|
|
||||||
# Substitute @libDir@ for the value passed in during install
|
|
||||||
# Maps to 'lib' in the build output
|
|
||||||
export CAF_LIB_DIR="@libDir@"
|
|
||||||
|
|
||||||
# Substitute @configDir@ for the value passed in during install
|
|
||||||
# Maps to 'config' in the build output
|
|
||||||
export CAF_CONFIG_DIR="@configDir@"
|
|
||||||
|
|
||||||
# Substitute @inputDir@ for the value passed in during install
|
|
||||||
# Maps to 'data/input' in the build output
|
|
||||||
export CAF_INPUT_DIR="@inputDir@"
|
|
||||||
|
|
||||||
# Substitute @outputDir@ for the value passed in during install
|
|
||||||
# No mapping in the build output since the output files are created at run-time
|
|
||||||
export CAF_OUTPUT_DIR="@outputDir@"
|
|
||||||
|
|
||||||
# Substitute @invokersDir@ for the value passed in during install
|
|
||||||
# Maps to 'invokers' in the build output - Used by the internal providers
|
|
||||||
export CAF_INVOKERS_DIR="@invokersDir@"
|
|
||||||
|
|
||||||
# Substitute @providersDir@ for the value passed in during install
|
|
||||||
# Maps to 'providers' in the build output - Used by the internal providers
|
|
||||||
export CAF_PROVIDERS_DIR="@providersDir@"
|
|
||||||
|
|
||||||
# Substitute @logDir@ for the value passed in during install
|
|
||||||
# No mapping in the build output since the log files are created at run-time
|
|
||||||
export CAF_LOG_DIR="@logDir@"
|
|
||||||
|
|
@ -1,96 +0,0 @@
|
||||||
[globals]
|
|
||||||
input_dir=${env:CAF_INPUT_DIR}
|
|
||||||
output_dir=${env:CAF_OUTPUT_DIR}
|
|
||||||
config_dir=${env:CAF_CONFIG_DIR}
|
|
||||||
log_dir=${env:CAF_LOG_DIR}
|
|
||||||
|
|
||||||
response_dir=${output_dir}/responses
|
|
||||||
request_dir=${output_dir}/requests
|
|
||||||
tmp_dir=${output_dir}/tmp
|
|
||||||
bean_config_file=${config_dir}/ma-context.xml
|
|
||||||
log_config_file=${config_dir}/ma-log4cpp_config
|
|
||||||
|
|
||||||
thread_stack_size_kb=0
|
|
||||||
|
|
||||||
schema_namespace_root=http://schemas.vmware.com/caf/schema
|
|
||||||
schema_location_root=http://10.25.57.32/caf-downloads/schema
|
|
||||||
|
|
||||||
[security]
|
|
||||||
cms_policy=CAF_Encrypted_And_Signed
|
|
||||||
|
|
||||||
[managementAgent]
|
|
||||||
host_delay_sec=5
|
|
||||||
host_integration_timeout_ms=5000
|
|
||||||
use_impersonation=false
|
|
||||||
remap_logging_location=true
|
|
||||||
|
|
||||||
[providerHost]
|
|
||||||
formatter_moniker_CMDL=com.vmware.commonagent.providerfx.providercdifformatter
|
|
||||||
install_dir=${config_dir}/../install
|
|
||||||
invokers_dir=${env:CAF_INVOKERS_DIR}
|
|
||||||
providers_dir=${env:CAF_PROVIDERS_DIR}
|
|
||||||
schema_cache_dir=${output_dir}/schemaCache
|
|
||||||
provider_reg_dir=${input_dir}/providerReg
|
|
||||||
common_packages_dir=${input_dir}/commonPackages
|
|
||||||
|
|
||||||
[provider]
|
|
||||||
diagFileAliases=ma-appconfig:ma-log4cpp_config:ma-context:CommAmqpListener-appconfig:CommAmqpListener-log4cpp_config:CommAmqpListener-context:IntBeanConfigFile
|
|
||||||
diagFileAlias_ma-appconfig=file://${root_dir}/config/ma-appconfig?encoding=iniFile
|
|
||||||
diagFileAlias_ma-log4cpp_config=file://${root_dir}/config/ma-log4cpp_config?encoding=iniFileWithoutSection
|
|
||||||
diagFileAlias_ma-context=file://${root_dir}/config/ma-context.xml?encoding=xmlFile
|
|
||||||
diagFileAlias_CommAmqpListener-appconfig=file://${root_dir}/config/CommAmqpListener-appconfig?encoding=iniFile
|
|
||||||
diagFileAlias_CommAmqpListener-log4cpp_config=file://${root_dir}/config/CommAmqpListener-log4cpp_config?encoding=iniFileWithoutSection
|
|
||||||
diagFileAlias_CommAmqpListener-context=file://${root_dir}/config/CommAmqpListener-context.xml?encoding=xmlFile
|
|
||||||
diagFileAlias_IntBeanConfigFile=file://${root_dir}/config/IntBeanConfigFile.xml?encoding=xmlFile
|
|
||||||
|
|
||||||
[subsystems]
|
|
||||||
# Integration System Beans
|
|
||||||
com.vmware.commonagent.integration.objectfactory=IntegrationSubsys
|
|
||||||
com.vmware.commonagent.integration.channels.errorchannel=IntegrationSubsys
|
|
||||||
com.vmware.commonagent.integration.channels.nullchannel=IntegrationSubsys
|
|
||||||
|
|
||||||
# CAF Integration
|
|
||||||
com.vmware.commonagent.cafintegration.errortoresponsetransformerinstance=CafIntegrationSubsys
|
|
||||||
com.vmware.commonagent.cafintegration.errortoresponsetransformer=CafIntegrationSubsys
|
|
||||||
com.vmware.commonagent.cafintegration.payloadheaderenricherinstance=CafIntegrationSubsys
|
|
||||||
com.vmware.commonagent.cafintegration.payloadheaderenricher=CafIntegrationSubsys
|
|
||||||
com.vmware.commonagent.cafintegration.envelopetopayloadtransformerinstance=CafIntegrationSubsys
|
|
||||||
com.vmware.commonagent.cafintegration.envelopetopayloadtransformer=CafIntegrationSubsys
|
|
||||||
|
|
||||||
# Management Agent
|
|
||||||
com.vmware.commonagent.managementagent.mareqaddin1=MaIntegrationSubsys
|
|
||||||
com.vmware.commonagent.managementagent.mareqaddin2=MaIntegrationSubsys
|
|
||||||
com.vmware.commonagent.managementagent.marspaddin1=MaIntegrationSubsys
|
|
||||||
com.vmware.commonagent.managementagent.marspaddin2=MaIntegrationSubsys
|
|
||||||
com.vmware.commonagent.maintegration.guestauthenticatorinstance=VgAuthIntegrationSubsys
|
|
||||||
com.vmware.commonagent.maintegration.guestauthenticator=VgAuthIntegrationSubsys
|
|
||||||
|
|
||||||
# Provider Fx
|
|
||||||
com.vmware.commonagent.providerfx.providerdriver=ProviderFxSubsys
|
|
||||||
com.vmware.commonagent.providerfx.providercdifformatter=ProviderFxSubsys
|
|
||||||
|
|
||||||
# MA Integration
|
|
||||||
com.vmware.commonagent.maintegration.collectschemaexecutor=MaIntegrationSubsys
|
|
||||||
com.vmware.commonagent.maintegration.providercollectschemaexecutor=MaIntegrationSubsys
|
|
||||||
com.vmware.commonagent.maintegration.providerexecutor=MaIntegrationSubsys
|
|
||||||
com.vmware.commonagent.maintegration.singlepmerequestsplitterinstance=MaIntegrationSubsys
|
|
||||||
com.vmware.commonagent.maintegration.singlepmerequestsplitter=MaIntegrationSubsys
|
|
||||||
com.vmware.commonagent.maintegration.diagtomgmtrequesttransformerinstance=MaIntegrationSubsys
|
|
||||||
com.vmware.commonagent.maintegration.diagtomgmtrequesttransformer=MaIntegrationSubsys
|
|
||||||
com.vmware.commonagent.maintegration.installtomgmtrequesttransformerinstance=MaIntegrationSubsys
|
|
||||||
com.vmware.commonagent.maintegration.installtomgmtrequesttransformer=MaIntegrationSubsys
|
|
||||||
com.vmware.commonagent.maintegration.versiontransformerinstance=MaIntegrationSubsys
|
|
||||||
com.vmware.commonagent.maintegration.versiontransformer=MaIntegrationSubsys
|
|
||||||
com.vmware.commonagent.maintegration.attachmentrequesttransformerinstance=MaIntegrationSubsys
|
|
||||||
com.vmware.commonagent.maintegration.attachmentrequesttransformer=MaIntegrationSubsys
|
|
||||||
|
|
||||||
# Providers
|
|
||||||
com.vmware.commonagent.providers.configprovider=ConfigProviderSubsys
|
|
||||||
com.vmware.commonagent.providers.configproviderimpl=ConfigProviderSubsys
|
|
||||||
com.vmware.commonagent.providers.installprovider=InstallProviderSubsys
|
|
||||||
com.vmware.commonagent.providers.installproviderimpl=InstallProviderSubsys
|
|
||||||
com.vmware.commonagent.providers.installpackagenix=InstallProviderSubsys
|
|
||||||
com.vmware.commonagent.providers.testinfraprovider=TestInfraProviderSubsys
|
|
||||||
com.vmware.commonagent.providers.testinfraproviderimpl=TestInfraProviderSubsys
|
|
||||||
com.vmware.commonagent.providers.remotecommandprovider=RemoteCommandProviderSubsys
|
|
||||||
com.vmware.commonagent.providers.remotecommandproviderimpl=RemoteCommandProviderSubsys
|
|
||||||
|
|
@ -1,358 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<caf:beans
|
|
||||||
xmlns:caf="http://schemas.vmware.com/caf/schema/fx"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://schemas.vmware.com/caf/schema/fx http://10.25.57.32/caf-downloads/schema/fx/CafIntegration.xsd">
|
|
||||||
|
|
||||||
<import resource="IntBeanConfigFile.xml"/>
|
|
||||||
|
|
||||||
<!-- Channel wire tap to log -->
|
|
||||||
<!--
|
|
||||||
<channel id="wireTapChannel"/>
|
|
||||||
|
|
||||||
<logging-channel-adapter
|
|
||||||
id="logger"
|
|
||||||
level="info"
|
|
||||||
log-full-message="false"
|
|
||||||
input-channel="wireTapChannel"/>
|
|
||||||
|
|
||||||
<wire-tap
|
|
||||||
id="wireTap"
|
|
||||||
order="1"
|
|
||||||
channel="wireTapChannel"
|
|
||||||
pattern=".*" />
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!-- Management Agent Request Processing -->
|
|
||||||
|
|
||||||
<channel id="requestToStringTransformerChannel"/>
|
|
||||||
<channel id="payloadXmlRootRouterChannel"/>
|
|
||||||
<channel id="payloadHeaderEnricherChannel"/>
|
|
||||||
<channel id="diagToMgmtRequestTransformerChannel"/>
|
|
||||||
<channel id="installToMgmtRequestTransformerChannel"/>
|
|
||||||
<channel id="headerValueRouterChannel"/>
|
|
||||||
<channel id="collectSchemaExecutorChannel"/>
|
|
||||||
<channel id="providerExecutorChannel"/>
|
|
||||||
<channel id="providerExecutorNoImpersonationChannel"/>
|
|
||||||
<channel id="providerExecutorImpersonationChannel"/>
|
|
||||||
<channel id="providerExecutorImpersonationErrorChannel"/>
|
|
||||||
<channel id="providerExecutorImpersonationGoodChannel"/>
|
|
||||||
<channel id="maRspAddIn1Channel"/>
|
|
||||||
|
|
||||||
<!-- Read the request from the agreed-upon directory. In most cases, the request is
|
|
||||||
written to this directory by the communication component. -->
|
|
||||||
<file-inbound-channel-adapter
|
|
||||||
id="receiveGoodRequest"
|
|
||||||
channel="requestToStringTransformerChannel"
|
|
||||||
directory="${var:globals:request_dir}"/>
|
|
||||||
|
|
||||||
<bean
|
|
||||||
id="payloadHeaderEnricherBean"
|
|
||||||
class="com.vmware.commonagent.cafintegration.payloadheaderenricher" />
|
|
||||||
<bean
|
|
||||||
id="envelopeToPayloadTransformerBean"
|
|
||||||
class="com.vmware.commonagent.cafintegration.envelopetopayloadtransformer"/>
|
|
||||||
<bean
|
|
||||||
id="attachmentRequestTransformerBean"
|
|
||||||
class="com.vmware.commonagent.maintegration.attachmentrequesttransformer"/>
|
|
||||||
<bean
|
|
||||||
id="versionTransformerBean"
|
|
||||||
class="com.vmware.commonagent.maintegration.versiontransformer"/>
|
|
||||||
<chain
|
|
||||||
id="requestChain1"
|
|
||||||
input-channel="requestToStringTransformerChannel"
|
|
||||||
output-channel="payloadXmlRootRouterChannel">
|
|
||||||
|
|
||||||
<!-- Read the request file into memory and pass it through the
|
|
||||||
system as the canonical in-memory message. -->
|
|
||||||
<file-to-string-transformer
|
|
||||||
id="requestToStringTransformer"
|
|
||||||
delete-files="false"/>
|
|
||||||
|
|
||||||
<!-- Store the indentifying request information into the message headers, which
|
|
||||||
lets some of the downstream processing be more request-independent. -->
|
|
||||||
<transformer
|
|
||||||
id="payloadHeaderEnricher"
|
|
||||||
ref="payloadHeaderEnricherBean"/>
|
|
||||||
|
|
||||||
<!-- Either throws an unsupported version exception or converts the
|
|
||||||
old version into the latest version or passes the untouched supported
|
|
||||||
version through. -->
|
|
||||||
<transformer
|
|
||||||
id="versionTransformerId"
|
|
||||||
ref="versionTransformerBean"/>
|
|
||||||
|
|
||||||
<header-enricher
|
|
||||||
id="responseHeaderEnricher">
|
|
||||||
<header
|
|
||||||
name="cafma.internal.useImpersonation"
|
|
||||||
value="${var:managementAgent:use_impersonation}"/>
|
|
||||||
</header-enricher>
|
|
||||||
|
|
||||||
<!-- Moves the attachments into the input directory and touches up the attachment
|
|
||||||
URI's in the request. -->
|
|
||||||
<transformer
|
|
||||||
id="attachmentRequestTransformerId"
|
|
||||||
ref="attachmentRequestTransformerBean"/>
|
|
||||||
|
|
||||||
<!-- Transforms the envelope back into the normal payload -->
|
|
||||||
<transformer
|
|
||||||
id="envelopeToPayloadTransformerId"
|
|
||||||
ref="envelopeToPayloadTransformerBean"/>
|
|
||||||
</chain>
|
|
||||||
|
|
||||||
<!-- Route the request based on its type. The logic to come simply transforms the specific
|
|
||||||
request type (e.g. diag, install) into the standard request format. -->
|
|
||||||
<payload-content-router
|
|
||||||
id="payloadXmlRootRouter"
|
|
||||||
input-channel="payloadXmlRootRouterChannel">
|
|
||||||
<mapping value="caf:mgmtRequest " channel="payloadHeaderEnricherChannel" />
|
|
||||||
<mapping value="caf:diagRequest " channel="diagToMgmtRequestTransformerChannel" />
|
|
||||||
<mapping value="caf:installRequest " channel="installToMgmtRequestTransformerChannel" />
|
|
||||||
</payload-content-router>
|
|
||||||
|
|
||||||
<!-- Transform the diag request into the standard request format. -->
|
|
||||||
<bean
|
|
||||||
id="diagToMgmtRequestTransformerBean"
|
|
||||||
class="com.vmware.commonagent.maintegration.diagtomgmtrequesttransformer" />
|
|
||||||
<transformer
|
|
||||||
id="diagToMgmtRequestTransformer"
|
|
||||||
input-channel="diagToMgmtRequestTransformerChannel"
|
|
||||||
output-channel="payloadHeaderEnricherChannel"
|
|
||||||
ref="diagToMgmtRequestTransformerBean"/>
|
|
||||||
|
|
||||||
<!-- Transform the install request into the standard request format. -->
|
|
||||||
<bean
|
|
||||||
id="installToMgmtRequestTransformerBean"
|
|
||||||
class="com.vmware.commonagent.maintegration.installtomgmtrequesttransformer" />
|
|
||||||
<transformer
|
|
||||||
id="installToMgmtRequestTransformer"
|
|
||||||
input-channel="installToMgmtRequestTransformerChannel"
|
|
||||||
output-channel="payloadHeaderEnricherChannel"
|
|
||||||
ref="installToMgmtRequestTransformerBean"/>
|
|
||||||
|
|
||||||
<bean
|
|
||||||
id="maReqAddIn1Bean"
|
|
||||||
class="com.vmware.commonagent.managementagent.mareqaddin1"/>
|
|
||||||
<bean
|
|
||||||
id="maReqAddIn2Bean"
|
|
||||||
class="com.vmware.commonagent.managementagent.mareqaddin2"/>
|
|
||||||
<bean
|
|
||||||
id="singlePmeRequestSplitterBean"
|
|
||||||
class="com.vmware.commonagent.maintegration.singlepmerequestsplitter"/>
|
|
||||||
<chain
|
|
||||||
id="requestChain2"
|
|
||||||
input-channel="payloadHeaderEnricherChannel"
|
|
||||||
output-channel="headerValueRouterChannel">
|
|
||||||
|
|
||||||
<!-- Placeholders that illustrate how to add request processing into the stream. -->
|
|
||||||
<service-activator
|
|
||||||
id="maReqAddIn1"
|
|
||||||
ref="maReqAddIn1Bean"/>
|
|
||||||
<service-activator
|
|
||||||
id="maReqAddIn2"
|
|
||||||
ref="maReqAddIn2Bean"/>
|
|
||||||
|
|
||||||
<!-- Splits the single request into the processing components that require very different
|
|
||||||
processing; collect schema vs. collect instances / invoke method. -->
|
|
||||||
<splitter
|
|
||||||
id="phReqSplitter"
|
|
||||||
ref="singlePmeRequestSplitterBean"/>
|
|
||||||
</chain>
|
|
||||||
|
|
||||||
<!-- Routes the collect schema request and regular request processing down different paths. -->
|
|
||||||
<header-value-router
|
|
||||||
id="headerValuePayloadTypeRouter"
|
|
||||||
input-channel="headerValueRouterChannel"
|
|
||||||
header-name="payloadType">
|
|
||||||
<mapping value="providerCollectSchemaRequest" channel="collectSchemaExecutorChannel" />
|
|
||||||
<mapping value="providerRequest" channel="providerExecutorChannel" />
|
|
||||||
</header-value-router>
|
|
||||||
|
|
||||||
<!-- Collects the schema information, which basically just copies the cached schema into the
|
|
||||||
response directories. -->
|
|
||||||
<bean
|
|
||||||
id="collectSchemaExecutorBean"
|
|
||||||
class="com.vmware.commonagent.maintegration.collectschemaexecutor"/>
|
|
||||||
<service-activator
|
|
||||||
id="collectSchemaExecutor"
|
|
||||||
input-channel="collectSchemaExecutorChannel"
|
|
||||||
output-channel="maRspAddIn1Channel"
|
|
||||||
ref="collectSchemaExecutorBean"/>
|
|
||||||
|
|
||||||
<!-- Routes the provider request to use VgAuth for impersonation if requested -->
|
|
||||||
<header-value-router
|
|
||||||
id="headerValueImpersonationRouter"
|
|
||||||
input-channel="providerExecutorChannel"
|
|
||||||
header-name="cafma.internal.useImpersonation"
|
|
||||||
default-output-channel="providerExecutorImpersonationChannel">
|
|
||||||
<mapping value="true" channel="providerExecutorImpersonationChannel" />
|
|
||||||
<mapping value="false" channel="providerExecutorNoImpersonationChannel" />
|
|
||||||
</header-value-router>
|
|
||||||
|
|
||||||
<bean
|
|
||||||
id="providerExecutorBean"
|
|
||||||
class="com.vmware.commonagent.maintegration.providerexecutor"/>
|
|
||||||
<bean
|
|
||||||
id="guestAuthenticatorBeginImpersonationBean"
|
|
||||||
class="com.vmware.commonagent.maintegration.guestauthenticator">
|
|
||||||
<property name="beginImpersonation" value="true"/>
|
|
||||||
</bean>
|
|
||||||
<bean
|
|
||||||
id="guestAuthenticatorEndImpersonationBean"
|
|
||||||
class="com.vmware.commonagent.maintegration.guestauthenticator">
|
|
||||||
<property name="endImpersonation" value="true"/>
|
|
||||||
</bean>
|
|
||||||
<chain
|
|
||||||
id="providerExecutorNoImpersonationChain"
|
|
||||||
input-channel="providerExecutorNoImpersonationChannel"
|
|
||||||
output-channel="maRspAddIn1Channel">
|
|
||||||
|
|
||||||
<!-- Uses the class namespace/name/version information in the request to locate and call the
|
|
||||||
appropriate provider. -->
|
|
||||||
<service-activator
|
|
||||||
id="providerExecutor"
|
|
||||||
ref="providerExecutorBean"/>
|
|
||||||
</chain>
|
|
||||||
<chain
|
|
||||||
id="providerExecutorImpersonationChain"
|
|
||||||
input-channel="providerExecutorImpersonationChannel"
|
|
||||||
output-channel="providerExecutorImpersonationGoodChannel">
|
|
||||||
|
|
||||||
<header-enricher
|
|
||||||
id="providerExecutorImpersonationErrorChannelSetter">
|
|
||||||
<error-channel ref="providerExecutorImpersonationErrorChannel"/>
|
|
||||||
</header-enricher>
|
|
||||||
|
|
||||||
<!-- Start impersonation -->
|
|
||||||
<transformer
|
|
||||||
id="guestAuthenticatorBeginImpersonationId"
|
|
||||||
ref="guestAuthenticatorBeginImpersonationBean"/>
|
|
||||||
|
|
||||||
<!-- Uses the class namespace/name/version information in the request to locate and call the
|
|
||||||
appropriate provider. -->
|
|
||||||
<service-activator
|
|
||||||
id="providerExecutor"
|
|
||||||
ref="providerExecutorBean"/>
|
|
||||||
|
|
||||||
</chain>
|
|
||||||
|
|
||||||
<!-- End impersonation from error path -->
|
|
||||||
<transformer
|
|
||||||
id="guestAuthenticatorEndImpersonationErrorId"
|
|
||||||
input-channel="providerExecutorImpersonationErrorChannel"
|
|
||||||
output-channel="errorChannel"
|
|
||||||
ref="guestAuthenticatorEndImpersonationBean"/>
|
|
||||||
|
|
||||||
<!-- End impersonation from success path -->
|
|
||||||
<transformer
|
|
||||||
id="guestAuthenticatorEndImpersonationGoodId"
|
|
||||||
input-channel="providerExecutorImpersonationGoodChannel"
|
|
||||||
output-channel="maRspAddIn1Channel"
|
|
||||||
ref="guestAuthenticatorEndImpersonationBean"/>
|
|
||||||
|
|
||||||
<!-- Runs the response processing and then stores the message in the agreed-upon output
|
|
||||||
directory. In most cases, the communication will monitor this directory and send
|
|
||||||
the request back to the client. -->
|
|
||||||
<channel id="fileSenderGoodChannel"/>
|
|
||||||
<bean
|
|
||||||
id="maRspAddIn1Bean"
|
|
||||||
class="com.vmware.commonagent.managementagent.marspaddin1"/>
|
|
||||||
<bean
|
|
||||||
id="maRspAddIn2Bean"
|
|
||||||
class="com.vmware.commonagent.managementagent.marspaddin2"/>
|
|
||||||
<chain
|
|
||||||
id="responseGoodChain"
|
|
||||||
input-channel="maRspAddIn1Channel"
|
|
||||||
output-channel="fileSenderGoodChannel">
|
|
||||||
|
|
||||||
<!-- Placeholders that illustrate how to add response processing into the stream. -->
|
|
||||||
<service-activator
|
|
||||||
id="maRspAddIn1"
|
|
||||||
ref="maRspAddIn1Bean"/>
|
|
||||||
<service-activator
|
|
||||||
id="maRspAddIn2"
|
|
||||||
ref="maRspAddIn2Bean"/>
|
|
||||||
</chain>
|
|
||||||
|
|
||||||
<!-- Stores the response information into the respose directory. -->
|
|
||||||
<file-outbound-channel-adapter
|
|
||||||
id="responseFileOutbound"
|
|
||||||
channel="fileSenderGoodChannel"
|
|
||||||
directory="${var:globals:response_dir}"
|
|
||||||
delete-source-files="true" />
|
|
||||||
|
|
||||||
<!-- Stores the error information from the default error channel into the respose directory. -->
|
|
||||||
<channel id="fileSenderErrChannel"/>
|
|
||||||
<bean
|
|
||||||
id="errorToResponseTransformerBean"
|
|
||||||
class="com.vmware.commonagent.cafintegration.errortoresponsetransformer" />
|
|
||||||
<chain
|
|
||||||
id="responseErrorChain"
|
|
||||||
input-channel="errorChannel"
|
|
||||||
output-channel="fileSenderErrChannel">
|
|
||||||
|
|
||||||
<!-- Convert the error information into an error response message. -->
|
|
||||||
<transformer
|
|
||||||
id="errorToResponseTransformer"
|
|
||||||
ref="errorToResponseTransformerBean"/>
|
|
||||||
</chain>
|
|
||||||
|
|
||||||
<!-- Store the response into the responses directory. In normal processing, the responses
|
|
||||||
directory is monitored by the listener process, which sends the responses back to
|
|
||||||
the client. -->
|
|
||||||
<file-outbound-channel-adapter
|
|
||||||
id="responseErrFileOutbound"
|
|
||||||
channel="fileSenderErrChannel"
|
|
||||||
directory="${var:globals:response_dir}"
|
|
||||||
delete-source-files="true" />
|
|
||||||
|
|
||||||
<!-- Provider Registration -->
|
|
||||||
<channel id="providerRegErrorChannelSetterChannel"/>
|
|
||||||
<channel id="providerRegToStringTransformerChannel"/>
|
|
||||||
<publish-subscribe-channel id="providerRegErrorChannel"/>
|
|
||||||
|
|
||||||
<!-- Read the provider registration files -->
|
|
||||||
<file-inbound-channel-adapter
|
|
||||||
id="receiveProviderReg"
|
|
||||||
channel="providerRegErrorChannelSetterChannel"
|
|
||||||
directory="${var:providerHost:provider_reg_dir}"/>
|
|
||||||
|
|
||||||
<!-- Redirect the default error channel because provider registration takes
|
|
||||||
a different error path than request execution -->
|
|
||||||
<header-enricher
|
|
||||||
id="providerRegErrorChannelSetter"
|
|
||||||
input-channel="providerRegErrorChannelSetterChannel"
|
|
||||||
output-channel="providerRegToStringTransformerChannel">
|
|
||||||
<error-channel ref="providerRegErrorChannel"/>
|
|
||||||
</header-enricher>
|
|
||||||
|
|
||||||
<bean
|
|
||||||
id="providerCollectSchemaExecutorBean"
|
|
||||||
class="com.vmware.commonagent.maintegration.providercollectschemaexecutor"/>
|
|
||||||
<chain
|
|
||||||
id="providerRegChain"
|
|
||||||
input-channel="providerRegToStringTransformerChannel"
|
|
||||||
output-channel="nullChannel">
|
|
||||||
|
|
||||||
<!-- Read the provider registration file into memory and pass it through the
|
|
||||||
system as the canonical in-memory message. -->
|
|
||||||
<file-to-string-transformer
|
|
||||||
id="providerRegToStringTransformer"
|
|
||||||
delete-files="false"/>
|
|
||||||
|
|
||||||
<!-- Collect and cache the schema for the provider specified in the message. -->
|
|
||||||
<service-activator
|
|
||||||
id="providerCollectSchemaExecutor"
|
|
||||||
ref="providerCollectSchemaExecutorBean"/>
|
|
||||||
</chain>
|
|
||||||
|
|
||||||
<!-- Because the provider registration processing runs independently of request execution,
|
|
||||||
it currently just logs the error messages. -->
|
|
||||||
<transformer
|
|
||||||
id="providerRegErrorToResponseTransformer"
|
|
||||||
input-channel="providerRegErrorChannel"
|
|
||||||
output-channel="nullChannel"
|
|
||||||
ref="errorToResponseTransformerBean"/>
|
|
||||||
|
|
||||||
</caf:beans>
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
#log4j.rootCategory=WARN, console
|
|
||||||
log4j.rootCategory=WARN, rolling
|
|
||||||
|
|
||||||
log4j.appender.console=org.apache.log4j.ConsoleAppender
|
|
||||||
log4j.appender.console.layout=org.apache.log4j.PatternLayout
|
|
||||||
log4j.appender.console.layout.ConversionPattern=%p|%d{ISO8601}|%t|%c|%m%n
|
|
||||||
|
|
||||||
log4j.appender.logfile=org.apache.log4j.FileAppender
|
|
||||||
log4j.appender.logfile.fileName=ma-log4cpp.log
|
|
||||||
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
|
|
||||||
log4j.appender.logfile.layout.ConversionPattern=%p|%d{ISO8601}|%t|%c|%m%n
|
|
||||||
|
|
||||||
log4j.appender.rolling=org.apache.log4j.RollingFileAppender
|
|
||||||
log4j.appender.rolling.fileName=ma-log4cpp_rolling.log
|
|
||||||
log4j.appender.rolling.layout=org.apache.log4j.PatternLayout
|
|
||||||
log4j.appender.rolling.layout.ConversionPattern=%p|%d{ISO8601}|%t|%c|%m%n
|
|
||||||
log4j.appender.rolling.MaxFileSize=1024KB
|
|
||||||
log4j.appender.rolling.MaxBackupIndex=5
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
[service]
|
|
||||||
logfile=@logDir@/vgauth.log
|
|
||||||
loglevel=verbose
|
|
||||||
enableLogging=true
|
|
||||||
enableCoreDumps=true
|
|
||||||
samlSchemaDir=@installDir@schemas
|
|
||||||
|
|
||||||
[auditing]
|
|
||||||
auditSuccessEvents=true
|
|
||||||
|
|
@ -1,81 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# Init file for the VMware CAF Communication Service
|
|
||||||
#
|
|
||||||
# chkconfig: 35 95 20
|
|
||||||
# description: VMware Common Agent Framework Communication Service daemon
|
|
||||||
#
|
|
||||||
# processname: CommAmqpListener
|
|
||||||
|
|
||||||
if [ -f /etc/rc.d/init.d/functions ]; then
|
|
||||||
. /etc/rc.d/init.d/functions
|
|
||||||
elif [ -f /lib/lsb/init-functions ]; then
|
|
||||||
. /lib/lsb/init-functions
|
|
||||||
type success >/dev/null 2>/dev/null
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
success() {
|
|
||||||
echo -en "$@"
|
|
||||||
echo -e "$rc_done"
|
|
||||||
}
|
|
||||||
failure() {
|
|
||||||
echo -en "$@"
|
|
||||||
echo -e "$rc_failed"
|
|
||||||
}
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
progName="VMware CAF Communication Service (C Version)"
|
|
||||||
listenerName=CommAmqpListener
|
|
||||||
prog="@binDir@/$listenerName"
|
|
||||||
startScript="@scriptDir@/start-listener"
|
|
||||||
stopScript="@scriptDir@/stop-listener"
|
|
||||||
lockFile=/var/lock/subsys/caf-communication-service
|
|
||||||
|
|
||||||
start()
|
|
||||||
{
|
|
||||||
[ -x $startScript ] || exit 0
|
|
||||||
echo -n $"Starting $progName:"
|
|
||||||
msg="$progBase daemon startup"
|
|
||||||
"$startScript" && success "$msg" || failure "$msg"
|
|
||||||
rc=$?
|
|
||||||
[ $rc -eq 0 ] && touch $lockFile
|
|
||||||
echo
|
|
||||||
return $rc
|
|
||||||
}
|
|
||||||
|
|
||||||
stop()
|
|
||||||
{
|
|
||||||
echo -n $"Stoppping $progName:"
|
|
||||||
killproc $prog -TERM
|
|
||||||
rc=$?
|
|
||||||
[ -x $stopScript ] && $stopScript &&
|
|
||||||
[ $rc -ne 0 ] && [ -z "`pidof -x $prog`" ] && rc=0
|
|
||||||
[ $rc -eq 0 ] && rm -f $lockFile
|
|
||||||
echo
|
|
||||||
return $rc
|
|
||||||
}
|
|
||||||
|
|
||||||
restart()
|
|
||||||
{
|
|
||||||
stop
|
|
||||||
sleep 2
|
|
||||||
start
|
|
||||||
}
|
|
||||||
|
|
||||||
condrestart()
|
|
||||||
{
|
|
||||||
[ -e $lockFile ] && restart || :
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start) start ;;
|
|
||||||
stop) stop ;;
|
|
||||||
status) status $prog ;;
|
|
||||||
restart) restart ;;
|
|
||||||
condrestart) condrestart ;;
|
|
||||||
*)
|
|
||||||
echo $"Usage: $0 {start|stop|status|condrestart|restart}"
|
|
||||||
exit 1
|
|
||||||
esac
|
|
||||||
|
|
||||||
exit $?
|
|
||||||
|
|
@ -1,81 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# Init file for the VMware CAF Management Agent
|
|
||||||
#
|
|
||||||
# chkconfig: 35 95 20
|
|
||||||
# description: VMware Common Agent Framework Management Agent daemon
|
|
||||||
#
|
|
||||||
# processname: ManagementAgentHost
|
|
||||||
|
|
||||||
if [ -f /etc/rc.d/init.d/functions ]; then
|
|
||||||
. /etc/rc.d/init.d/functions
|
|
||||||
elif [ -f /lib/lsb/init-functions ]; then
|
|
||||||
. /lib/lsb/init-functions
|
|
||||||
type success >/dev/null 2>/dev/null
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
success() {
|
|
||||||
echo -en "$@"
|
|
||||||
echo -e "$rc_done"
|
|
||||||
}
|
|
||||||
failure() {
|
|
||||||
echo -en "$@"
|
|
||||||
echo -e "$rc_failed"
|
|
||||||
}
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
progName="VMware CAF Management Agent (C Version)"
|
|
||||||
progBase=ManagementAgentHost
|
|
||||||
prog="@binDir@/$progBase"
|
|
||||||
startScript="@scriptDir@/start-ma"
|
|
||||||
stopScript="@scriptDir@/stop-ma"
|
|
||||||
lockFile=/var/lock/subsys/caf-management-agent
|
|
||||||
|
|
||||||
start()
|
|
||||||
{
|
|
||||||
[ -x $startScript ] || exit 0
|
|
||||||
echo -n $"Starting $progName:"
|
|
||||||
msg="$progBase daemon startup"
|
|
||||||
"$startScript" && success "$msg" || failure "$msg"
|
|
||||||
rc=$?
|
|
||||||
[ $rc -eq 0 ] && touch $lockFile
|
|
||||||
echo
|
|
||||||
return $rc
|
|
||||||
}
|
|
||||||
|
|
||||||
stop()
|
|
||||||
{
|
|
||||||
echo -n $"Stoppping $progName:"
|
|
||||||
killproc $prog -TERM
|
|
||||||
rc=$?
|
|
||||||
[ -x $stopScript ] && $stopScript &&
|
|
||||||
[ $rc -ne 0 ] && [ -z "`pidof -x $prog`" ] && rc=0
|
|
||||||
[ $rc -eq 0 ] && rm -f $lockFile
|
|
||||||
echo
|
|
||||||
return $rc
|
|
||||||
}
|
|
||||||
|
|
||||||
restart()
|
|
||||||
{
|
|
||||||
stop
|
|
||||||
sleep 2
|
|
||||||
start
|
|
||||||
}
|
|
||||||
|
|
||||||
condrestart()
|
|
||||||
{
|
|
||||||
[ -e $lockFile ] && restart || :
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start) start ;;
|
|
||||||
stop) stop ;;
|
|
||||||
status) status $prog ;;
|
|
||||||
restart) restart ;;
|
|
||||||
condrestart) condrestart ;;
|
|
||||||
*)
|
|
||||||
echo $"Usage: $0 {start|stop|status|condrestart|restart}"
|
|
||||||
exit 1
|
|
||||||
esac
|
|
||||||
|
|
||||||
exit $?
|
|
||||||
|
|
@ -1,243 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
function prtHeader() {
|
|
||||||
local header=$1
|
|
||||||
|
|
||||||
echo "*************************"
|
|
||||||
echo "***"
|
|
||||||
echo "*** $header"
|
|
||||||
echo "***"
|
|
||||||
echo "*************************"
|
|
||||||
}
|
|
||||||
|
|
||||||
function setCafRootDir() {
|
|
||||||
if [ "$CAF_CONFIG_DIR" = "" ]; then
|
|
||||||
if [ -f "/etc/vmware-caf/pme/config/cafenv.config" ]; then
|
|
||||||
. "/etc/vmware-caf/pme/config/cafenv.config"
|
|
||||||
else
|
|
||||||
if [ -f "/etc/vmware-caf/client/config/cafenv.config" ]; then
|
|
||||||
. "/etc/vmware-caf/client/config/cafenv.config"
|
|
||||||
else
|
|
||||||
echo "Failed to resolve cafenv.config"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function validateNotEmpty() {
|
|
||||||
local value=$1
|
|
||||||
local name=$2
|
|
||||||
|
|
||||||
if [ "$value" = "" ]; then
|
|
||||||
echo "Value cannot be empty - $name"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function enableCaf() {
|
|
||||||
local username="$1"
|
|
||||||
local password="$2"
|
|
||||||
validateNotEmpty "$username" "username"
|
|
||||||
validateNotEmpty "$password" "password"
|
|
||||||
|
|
||||||
setCafRootDir
|
|
||||||
|
|
||||||
egrep -qw "amqp_username|amqp_password" "$CAF_CONFIG_DIR/CommAmqpListener-appconfig"; isFnd="$?"
|
|
||||||
if [ "$isFnd" = "1" ]; then
|
|
||||||
sed -i "s/\[communication_amqp\]/[communication_amqp]\namqp_username=${username}\namqp_password=${password}/g" "$CAF_CONFIG_DIR/CommAmqpListener-appconfig"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function prtHelp() {
|
|
||||||
echo "*** $0 cmd <args>"
|
|
||||||
echo " Runs various CAF commands"
|
|
||||||
echo " cmd: The CAF command to run:"
|
|
||||||
echo " * enableCaf brokerUsername brokerPassword Enables CAF"
|
|
||||||
echo ""
|
|
||||||
echo " * checkTunnel Checks the AMQP Tunnel "
|
|
||||||
echo " * checkCerts Checks the certificates"
|
|
||||||
echo " * checkCertsVerbose Checks the certificates"
|
|
||||||
echo ""
|
|
||||||
echo " * validateXml Validates the XML files against the published schema"
|
|
||||||
echo " * checkFsPerms Checks the permissions, owner and group of the major CAF directories and files"
|
|
||||||
echo ""
|
|
||||||
echo " * clearCaches Clears the CAF caches"
|
|
||||||
echo " args: The arguments to the command"
|
|
||||||
}
|
|
||||||
|
|
||||||
function validateXml() {
|
|
||||||
local schemaArea="$1"
|
|
||||||
local schemaPrefix="$2"
|
|
||||||
validateNotEmpty "$schemaArea" "schemaArea"
|
|
||||||
validateNotEmpty "$schemaPrefix" "schemaPrefix"
|
|
||||||
|
|
||||||
setCafRootDir
|
|
||||||
|
|
||||||
local schemaRoot="http://10.25.57.32/caf-downloads"
|
|
||||||
|
|
||||||
for file in $(find "$CAF_OUTPUT_DIR" -name '*.xml' -print0 2>/dev/null | xargs -0 egrep -IH -lw "${schemaPrefix}.xsd"); do
|
|
||||||
prtHeader "Validating $schemaArea/$schemaPrefix - $file"
|
|
||||||
xmllint --schema "${schemaRoot}/schema/${schemaArea}/${schemaPrefix}.xsd" "$file"; rc=$?
|
|
||||||
if [ "$rc" != "0" ]; then
|
|
||||||
exit $rc
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
function checkCerts() {
|
|
||||||
setCafRootDir
|
|
||||||
local certDir="$CAF_INPUT_DIR/certs"
|
|
||||||
|
|
||||||
pushd $certDir > /dev/null
|
|
||||||
|
|
||||||
prtHeader "Checking certs - $certDir"
|
|
||||||
|
|
||||||
openssl rsa -in privateKey.pem -check -noout
|
|
||||||
openssl verify -check_ss_sig -x509_strict -CAfile cacert.pem publicKey.pem
|
|
||||||
|
|
||||||
local clientCertMd5=$(openssl x509 -noout -modulus -in publicKey.pem | openssl md5 | cut -d' ' -f2)
|
|
||||||
local clientKeyMd5=$(openssl rsa -noout -modulus -in privateKey.pem | openssl md5 | cut -d' ' -f2)
|
|
||||||
if [ "$clientCertMd5" == "$clientKeyMd5" ]; then
|
|
||||||
echo "Public and Private Key md5's match"
|
|
||||||
else
|
|
||||||
echo "*** Public and Private Key md5's do not match"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
popd > /dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
function checkCertsVerbose() {
|
|
||||||
setCafRootDir
|
|
||||||
local certDir="$CAF_INPUT_DIR/certs"
|
|
||||||
|
|
||||||
pushd $certDir > /dev/null
|
|
||||||
|
|
||||||
prtHeader "Checking $certDir/cacert.pem"
|
|
||||||
openssl x509 -in cacert.pem -text -noout
|
|
||||||
|
|
||||||
prtHeader "Checking $certDir/publicKey.pem"
|
|
||||||
openssl x509 -in publicKey.pem -text -noout
|
|
||||||
|
|
||||||
prtHeader "Checking /etc/vmware-tools/GuestProxyData/server/cert.pem"
|
|
||||||
openssl x509 -in /etc/vmware-tools/GuestProxyData/server/cert.pem -text -noout
|
|
||||||
|
|
||||||
popd > /dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
function checkTunnel() {
|
|
||||||
setCafRootDir
|
|
||||||
local certDir="$CAF_INPUT_DIR/certs"
|
|
||||||
|
|
||||||
pushd $certDir > /dev/null
|
|
||||||
|
|
||||||
prtHeader "Connecting to tunnel"
|
|
||||||
openssl s_client -connect localhost:6672 -key privateKey.pem -cert publicKey.pem -CAfile cacert.pem -verify 10
|
|
||||||
|
|
||||||
popd > /dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
function checkFsPerms() {
|
|
||||||
local dirOrFile="$1"
|
|
||||||
local permExp="$2"
|
|
||||||
local userExp="$3"
|
|
||||||
local groupExp="$4"
|
|
||||||
validateNotEmpty "$dirOrFile" "dirOrFile"
|
|
||||||
validateNotEmpty "$permExp" "permExp"
|
|
||||||
|
|
||||||
if [ "$userExp" = "" ]; then
|
|
||||||
userExp="root"
|
|
||||||
fi
|
|
||||||
if [ "$groupExp" = "" ]; then
|
|
||||||
groupExp="root"
|
|
||||||
fi
|
|
||||||
|
|
||||||
local statInfo=( $(stat -c "%a %U %G" $dirOrFile) )
|
|
||||||
local permFnd=${statInfo[0]}
|
|
||||||
local userFnd=${statInfo[1]}
|
|
||||||
local groupFnd=${statInfo[2]}
|
|
||||||
|
|
||||||
if [ "$permExp" != "$permFnd" ]; then
|
|
||||||
echo "*** Perm check failed - expected: $permExp, found: $permFnd, dir/file: $dirOrFile"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$userExp" != "$userFnd" ]; then
|
|
||||||
echo "*** User check failed - expected: $userExp, found: $userFnd, dir/file: $dirOrFile"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$groupExp" != "$groupFnd" ]; then
|
|
||||||
echo "*** Group check failed - expected: $groupExp, found: $groupFnd, dir/file: $dirOrFile"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function clearCaches() {
|
|
||||||
setCafRootDir
|
|
||||||
|
|
||||||
validateNotEmpty "$CAF_OUTPUT_DIR" "CAF_OUTPUT_DIR"
|
|
||||||
validateNotEmpty "$CAF_LOG_DIR" "CAF_LOG_DIR"
|
|
||||||
|
|
||||||
prtHeader "Clearing the CAF caches"
|
|
||||||
rm -rf \
|
|
||||||
$CAF_OUTPUT_DIR/schemaCache/* \
|
|
||||||
$CAF_OUTPUT_DIR/comm-wrk/* \
|
|
||||||
$CAF_OUTPUT_DIR/providerHost/* \
|
|
||||||
$CAF_OUTPUT_DIR/responses/* \
|
|
||||||
$CAF_OUTPUT_DIR/requests/* \
|
|
||||||
$CAF_OUTPUT_DIR/request_state/* \
|
|
||||||
$CAF_OUTPUT_DIR/events/* \
|
|
||||||
$CAF_OUTPUT_DIR/errorResponse.xml \
|
|
||||||
$CAF_LOG_DIR/*
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ $# -lt 1 -o "$1" = "--help" ]; then
|
|
||||||
prtHelp
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
cmd=$1
|
|
||||||
shift
|
|
||||||
|
|
||||||
case "$cmd" in
|
|
||||||
"validateXml")
|
|
||||||
validateXml "fx" "CafInstallRequest"
|
|
||||||
validateXml "fx" "DiagRequest"
|
|
||||||
validateXml "fx" "Message"
|
|
||||||
validateXml "fx" "MgmtRequest"
|
|
||||||
validateXml "fx" "MultiPmeMgmtRequest"
|
|
||||||
validateXml "fx" "ProviderInfra"
|
|
||||||
validateXml "fx" "ProviderRequest"
|
|
||||||
validateXml "fx" "Response"
|
|
||||||
validateXml "cmdl" "ProviderResults"
|
|
||||||
;;
|
|
||||||
"checkCerts")
|
|
||||||
checkCerts "$certDir"
|
|
||||||
;;
|
|
||||||
"checkCertsVerbose")
|
|
||||||
checkCertsVerbose "$certDir"
|
|
||||||
;;
|
|
||||||
"checkTunnel")
|
|
||||||
checkTunnel "$certDir"
|
|
||||||
;;
|
|
||||||
"clearCaches")
|
|
||||||
clearCaches
|
|
||||||
;;
|
|
||||||
"enableCaf")
|
|
||||||
enableCaf "$1" "$2"
|
|
||||||
;;
|
|
||||||
"checkFsPerms")
|
|
||||||
checkFsPerms "$CAF_INPUT_DIR" "755"
|
|
||||||
checkFsPerms "$CAF_OUTPUT_DIR" "770"
|
|
||||||
checkFsPerms "$CAF_CONFIG_DIR" "775"
|
|
||||||
checkFsPerms "$CAF_LOG_DIR" "770"
|
|
||||||
checkFsPerms "$CAF_BIN_DIR" "755"
|
|
||||||
checkFsPerms "$CAF_LIB_DIR" "755"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Bad command - $cmd"
|
|
||||||
prtHelp
|
|
||||||
exit 1
|
|
||||||
esac
|
|
||||||
|
|
@ -1,81 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# Init file for the VMware CAF VgAuth Service
|
|
||||||
#
|
|
||||||
# chkconfig: 35 95 20
|
|
||||||
# description: VMware Common Agent Framework VgAuth daemon
|
|
||||||
#
|
|
||||||
# processname: VGAuthService
|
|
||||||
|
|
||||||
if [ -f /etc/rc.d/init.d/functions ]; then
|
|
||||||
. /etc/rc.d/init.d/functions
|
|
||||||
elif [ -f /lib/lsb/init-functions ]; then
|
|
||||||
. /lib/lsb/init-functions
|
|
||||||
type success >/dev/null 2>/dev/null
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
success() {
|
|
||||||
echo -en "$@"
|
|
||||||
echo -e "$rc_done"
|
|
||||||
}
|
|
||||||
failure() {
|
|
||||||
echo -en "$@"
|
|
||||||
echo -e "$rc_failed"
|
|
||||||
}
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
progName="VMware CAF VgAuth"
|
|
||||||
listenerName=VGAuthService
|
|
||||||
prog="@binDir@/$listenerName"
|
|
||||||
startScript="@scriptDir@/start-VGAuthService"
|
|
||||||
stopScript="@scriptDir@/stop-VGAuthService"
|
|
||||||
lockFile=/var/lock/subsys/caf-vgauth-service
|
|
||||||
|
|
||||||
start()
|
|
||||||
{
|
|
||||||
[ -x $startScript ] || exit 0
|
|
||||||
echo -n $"Starting $progName:"
|
|
||||||
msg="$progBase daemon startup"
|
|
||||||
"$startScript" && success "$msg" || failure "$msg"
|
|
||||||
rc=$?
|
|
||||||
[ $rc -eq 0 ] && touch $lockFile
|
|
||||||
echo
|
|
||||||
return $rc
|
|
||||||
}
|
|
||||||
|
|
||||||
stop()
|
|
||||||
{
|
|
||||||
echo -n $"Stoppping $progName:"
|
|
||||||
killproc $prog -TERM
|
|
||||||
rc=$?
|
|
||||||
[ -x $stopScript ] && $stopScript &&
|
|
||||||
[ $rc -ne 0 ] && [ -z "`pidof -x $prog`" ] && rc=0
|
|
||||||
[ $rc -eq 0 ] && rm -f $lockFile
|
|
||||||
echo
|
|
||||||
return $rc
|
|
||||||
}
|
|
||||||
|
|
||||||
restart()
|
|
||||||
{
|
|
||||||
stop
|
|
||||||
sleep 2
|
|
||||||
start
|
|
||||||
}
|
|
||||||
|
|
||||||
condrestart()
|
|
||||||
{
|
|
||||||
[ -e $lockFile ] && restart || :
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start) start ;;
|
|
||||||
stop) stop ;;
|
|
||||||
status) status $prog ;;
|
|
||||||
restart) restart ;;
|
|
||||||
condrestart) condrestart ;;
|
|
||||||
*)
|
|
||||||
echo $"Usage: $0 {start|stop|status|condrestart|restart}"
|
|
||||||
exit 1
|
|
||||||
esac
|
|
||||||
|
|
||||||
exit $?
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
cafServices="caf-c-communication-service caf-c-management-agent"
|
|
||||||
|
|
@ -1,194 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
#Args
|
|
||||||
#brokerAddr
|
|
||||||
# - default:
|
|
||||||
#baseLibDir
|
|
||||||
# - default: /usr/lib
|
|
||||||
# - expand to "$baseLibDir"/vmware-caf/pme
|
|
||||||
#
|
|
||||||
#baseInputDir
|
|
||||||
# - default: /var/lib
|
|
||||||
# - expand to "$baseInputDir"/vmware-caf/pme/data/input
|
|
||||||
#
|
|
||||||
#baseOutputDir
|
|
||||||
# - default: /var/lib
|
|
||||||
# - expand to "$baseOutputDir"/vmware-caf/pme/data/output
|
|
||||||
|
|
||||||
#Standard env
|
|
||||||
SCRIPT=`basename "$0"`
|
|
||||||
THIS_DIR=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
|
|
||||||
|
|
||||||
#Set defaults
|
|
||||||
baseLibDir='/usr/lib'
|
|
||||||
baseInputDir='/var/lib'
|
|
||||||
baseOutputDir='/var/lib'
|
|
||||||
installType='pme'
|
|
||||||
brokerAddr=''
|
|
||||||
|
|
||||||
#Help function
|
|
||||||
function HELP {
|
|
||||||
echo -e \\n"Help documentation for ${SCRIPT}."\\n
|
|
||||||
echo -e "Basic usage: $SCRIPT"\\n
|
|
||||||
echo "Command line switches are optional. The following switches are recognized."
|
|
||||||
echo "b --Sets the value for the broker address. Default is '$brokerAddr'."
|
|
||||||
echo "i --Sets the base location for the input data. Default is '$baseInputDir'."
|
|
||||||
echo "l --Sets the base location for the libraries. Default is '$baseLibDir'."
|
|
||||||
echo "o --Sets the base location for the output data. Default is '$baseOutputDir'."
|
|
||||||
echo -e "c --Configures for client."\\n
|
|
||||||
echo -e "h --Displays this help message. No further functions are performed."\\n
|
|
||||||
echo -e "p --Configures for PME (default)"\\n
|
|
||||||
echo -e "Example: $SCRIPT -b 10.25.57.249 -i \"/usr/lib\" -i \"/var/lib\" -o \"/var/lib\""\\n
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
#Replace tokens with install values
|
|
||||||
setupCafConfig() {
|
|
||||||
pattern="$1"
|
|
||||||
value="$2"
|
|
||||||
rconfigDir="$3"
|
|
||||||
rscriptDir="$4"
|
|
||||||
|
|
||||||
if [ ! -n "$pattern" ]; then
|
|
||||||
echo 'The pattern cannot be empty!'
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "$value" ]; then
|
|
||||||
if [ -d "$rconfigDir" ]; then
|
|
||||||
for file in $(egrep -rl "$pattern" "$rconfigDir"/*); do
|
|
||||||
basefile=$(basename "$file")
|
|
||||||
#echo "Replacing $pattern with $value - $basefile"
|
|
||||||
sed -i "s?$pattern?$value?g" "$file"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
if [ -d "$rscriptDir" ]; then
|
|
||||||
for file in $(egrep -rl "$pattern" "$rscriptDir"/*); do
|
|
||||||
basefile=$(basename "$file")
|
|
||||||
#echo "Replacing $pattern with $value - $basefile"
|
|
||||||
sed -i "s?$pattern?$value?g" "$file"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
#echo "$pattern is empty, skipping"
|
|
||||||
:
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
##BEGIN Main
|
|
||||||
|
|
||||||
#Get Optional overrides
|
|
||||||
while getopts ":b:i:l:o:h" opt; do
|
|
||||||
case $opt in
|
|
||||||
b)
|
|
||||||
brokerAddr="$OPTARG"
|
|
||||||
;;
|
|
||||||
i)
|
|
||||||
baseInputDir="$OPTARG"
|
|
||||||
;;
|
|
||||||
l)
|
|
||||||
baseLibDir="$OPTARG"
|
|
||||||
;;
|
|
||||||
o)
|
|
||||||
baseOutputDir="$OPTARG"
|
|
||||||
;;
|
|
||||||
c)
|
|
||||||
HELP
|
|
||||||
;;
|
|
||||||
h)
|
|
||||||
installType='client'
|
|
||||||
;;
|
|
||||||
p)
|
|
||||||
installType='pme'
|
|
||||||
;;
|
|
||||||
\?)
|
|
||||||
echo "Invalid option: -$OPTARG" >&2
|
|
||||||
HELP
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
#Expand variables
|
|
||||||
stdQuals="vmware-caf/$installType"
|
|
||||||
libDir="$baseLibDir"/"$stdQuals"
|
|
||||||
inputDir="$baseInputDir"/"$stdQuals"/data/input
|
|
||||||
outputDir="$baseOutputDir"/"$stdQuals"/data/output
|
|
||||||
|
|
||||||
cafInstallDir="$baseLibDir/vmware-caf"
|
|
||||||
baseEtcDir="/etc/$stdQuals"
|
|
||||||
installScriptDir="$baseEtcDir/install"
|
|
||||||
scriptDir="$baseEtcDir/scripts"
|
|
||||||
configDir="$baseEtcDir/config"
|
|
||||||
cafProvidersDir="$inputDir/providers"
|
|
||||||
cafInvokersDir="$inputDir/invokers"
|
|
||||||
cafLogDir="/var/log/$stdQuals"
|
|
||||||
pmeId=`uuidgen`
|
|
||||||
|
|
||||||
#Ensure directories exist
|
|
||||||
mkdir -p "$cafInvokersDir"
|
|
||||||
mkdir -p "$cafProvidersDir"
|
|
||||||
mkdir -p "$cafLogDir"
|
|
||||||
|
|
||||||
#Substitute values into config files
|
|
||||||
setupCafConfig '@installDir@' "$cafInstallDir" "$configDir" "$scriptDir"
|
|
||||||
setupCafConfig '@brokerAddr@' "$brokerAddr" "$configDir" "$scriptDir"
|
|
||||||
setupCafConfig '@libDir@' "$libDir/lib" "$configDir" "$scriptDir"
|
|
||||||
setupCafConfig '@binDir@' "$libDir/bin" "$configDir" "$scriptDir"
|
|
||||||
setupCafConfig '@configDir@' "$configDir" "$configDir" "$scriptDir"
|
|
||||||
setupCafConfig '@inputDir@' "$inputDir" "$configDir" "$scriptDir"
|
|
||||||
setupCafConfig '@outputDir@' "$outputDir" "$configDir" "$scriptDir"
|
|
||||||
setupCafConfig '@providersDir@' "$cafProvidersDir" "$configDir" "$scriptDir"
|
|
||||||
setupCafConfig '@invokersDir@' "$cafInvokersDir" "$configDir" "$scriptDir"
|
|
||||||
setupCafConfig '@logDir@' "$cafLogDir" "$configDir" "$scriptDir"
|
|
||||||
setupCafConfig '@pmeId@' "$pmeId" "$configDir" "$scriptDir"
|
|
||||||
setupCafConfig '@scriptDir@' "$scriptDir" "$configDir" "$scriptDir"
|
|
||||||
|
|
||||||
. "$configDir"/cafenv.config
|
|
||||||
|
|
||||||
#Set default permissions
|
|
||||||
if [ -d "$libDir" ]; then
|
|
||||||
for directory in $(find "$libDir" -type d); do
|
|
||||||
chmod 755 "$directory"
|
|
||||||
done
|
|
||||||
|
|
||||||
for file in $(find "$libDir" -type f); do
|
|
||||||
chmod 555 "$file"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d "$inputDir" ]; then
|
|
||||||
for file in $(find "$inputDir" -type f); do
|
|
||||||
chmod 644 "$file"
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ -d "$inputDir/certs" ]; then
|
|
||||||
for file in $(find "$inputDir/certs" -type f); do
|
|
||||||
chmod 440 "$file"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d "$scriptDir" ]; then
|
|
||||||
chmod 555 "$directory"/*
|
|
||||||
fi
|
|
||||||
|
|
||||||
#Set up links
|
|
||||||
cd "$CAF_LIB_DIR"
|
|
||||||
ln -sf libglib-2.0.so.0.3400.3 libglib-2.0.so
|
|
||||||
ln -sf libglib-2.0.so.0.3400.3 libglib-2.0.so.0
|
|
||||||
ln -sf libgthread-2.0.so.0.3400.3 libgthread-2.0.so
|
|
||||||
ln -sf libgthread-2.0.so.0.3400.3 libgthread-2.0.so.0
|
|
||||||
ln -sf liblog4cpp.so.5.0.6 liblog4cpp.so
|
|
||||||
ln -sf liblog4cpp.so.5.0.6 liblog4cpp.so.5
|
|
||||||
ln -sf librabbitmq.so.4.1.2 librabbitmq.so
|
|
||||||
ln -sf librabbitmq.so.4.1.2 librabbitmq.so.4
|
|
||||||
|
|
||||||
#Run provider install logic
|
|
||||||
installPProviders="$installScriptDir"/installPythonProviders.sh
|
|
||||||
if [ -e "$installPProviders" ]; then
|
|
||||||
"$installPProviders"
|
|
||||||
fi
|
|
||||||
|
|
||||||
#if previous CAF installation
|
|
||||||
#migrate config
|
|
||||||
#migrate other state
|
|
||||||
|
|
@ -1,35 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
#Get info on how the installation was configured
|
|
||||||
. /etc/vmware-caf/pme/config/cafenv.config
|
|
||||||
|
|
||||||
#Set a safety check string
|
|
||||||
VALIDATE_STRING='vmware-caf'
|
|
||||||
|
|
||||||
safe_rm() {
|
|
||||||
#Only remove directory paths that contain the validate string
|
|
||||||
if test "${1#*$VALIDATE_STRING}" != "$1"; then
|
|
||||||
rm -rf "$1"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
#The default of this should be /usr/lib/vmware-caf
|
|
||||||
#base_binary_dir=$(dirname $(dirname $CAF_BIN_DIR))
|
|
||||||
#safe_rm "$base_binary_dir"
|
|
||||||
|
|
||||||
#The default of this should be /var/lib/vmware-caf
|
|
||||||
#base_data_dir=$(dirname $(dirname $(dirname $CAF_INPUT_DIR)))
|
|
||||||
#safe_rm "$base_data_dir"
|
|
||||||
|
|
||||||
#The default of this should be /var/log/vmware-caf
|
|
||||||
base_log_dir=$(dirname $CAF_LOG_DIR)
|
|
||||||
safe_rm "$base_log_dir"
|
|
||||||
|
|
||||||
#07/21/2015
|
|
||||||
#Remove some log files that get put into the CAF bin dir.
|
|
||||||
#This is a hack until we fix the code to prevent this from happening.
|
|
||||||
base_binary_dir="$CAF_BIN_DIR"
|
|
||||||
safe_rm "$base_binary_dir/CommAmqpListener-log4cpp.log"
|
|
||||||
safe_rm "$base_binary_dir/CommAmqpListener-log4cpp_rolling.log"
|
|
||||||
safe_rm "$base_binary_dir/ma-log4cpp.log"
|
|
||||||
safe_rm "$base_binary_dir/ma-log4cpp_rolling.log"
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
dir=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
|
|
||||||
|
|
||||||
configDir=/etc/vmware-caf/pme/config
|
|
||||||
|
|
||||||
#Preserve config
|
|
||||||
mkdir -p "$configDir"/_previous_
|
|
||||||
cp -pf "$configDir"/* "$configDir"/_previous_/ 2>/dev/null
|
|
||||||
|
|
||||||
#preserve state
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
dir=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
|
|
||||||
|
|
||||||
. "$dir"/commonenv.sh
|
|
||||||
|
|
||||||
#Stop configured services
|
|
||||||
for cafService in $cafServices; do
|
|
||||||
/sbin/chkconfig $cafService
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
/sbin/service $cafService restart
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
dir=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
|
|
||||||
|
|
||||||
. "$dir"/commonenv.sh
|
|
||||||
|
|
||||||
#Stop configured services
|
|
||||||
for cafService in $cafServices; do
|
|
||||||
/sbin/chkconfig $cafService
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
/sbin/service $cafService stop
|
|
||||||
chkconfig --del $cafService
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
dir=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
|
|
||||||
|
|
||||||
configDir=/etc/vmware-caf/pme/config
|
|
||||||
|
|
||||||
#Restore previous config
|
|
||||||
if [ -d "$configDir"/_previous_ ]; then
|
|
||||||
mv -f "$configDir"/_previous_/* "$configDir"
|
|
||||||
rmdir "$configDir"/_previous_
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Make newer systemd systems (OpenSuSE 13.2) happy
|
|
||||||
#if [ -x /usr/bin/systemctl ]; then
|
|
||||||
# /usr/bin/systemctl daemon-reload
|
|
||||||
#fi
|
|
||||||
|
|
||||||
#"$dir"/restartServices.sh
|
|
||||||
|
|
||||||
. $configDir/cafenv.config
|
|
||||||
cd $CAF_LIB_DIR
|
|
||||||
ln -sf libglib-2.0.so.0.3400.3 libglib-2.0.so
|
|
||||||
ln -sf libglib-2.0.so.0.3400.3 libglib-2.0.so.0
|
|
||||||
ln -sf libgthread-2.0.so.0.3400.3 libgthread-2.0.so
|
|
||||||
ln -sf libgthread-2.0.so.0.3400.3 libgthread-2.0.so.0
|
|
||||||
ln -sf liblog4cpp.so.5.0.6 liblog4cpp.so
|
|
||||||
ln -sf liblog4cpp.so.5.0.6 liblog4cpp.so.5
|
|
||||||
ln -sf librabbitmq.so.4.1.2 librabbitmq.so
|
|
||||||
ln -sf librabbitmq.so.4.1.2 librabbitmq.so.4
|
|
||||||
|
|
@ -1,174 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
getCurrentDir() {
|
|
||||||
return $(dirname $(readlink -f $0))
|
|
||||||
}
|
|
||||||
|
|
||||||
startCafProcess() {
|
|
||||||
local startType="$1"
|
|
||||||
local startDir="$2"
|
|
||||||
local processDir="$3"
|
|
||||||
local processName="$4"
|
|
||||||
|
|
||||||
local processPath="$processDir/$processName"
|
|
||||||
verifyProcessNotRunning "$processPath"
|
|
||||||
setUtf8Locale
|
|
||||||
|
|
||||||
mkdir -p "$startDir"
|
|
||||||
cd "$startDir"
|
|
||||||
|
|
||||||
case "$startType" in
|
|
||||||
"daemon")
|
|
||||||
$processPath
|
|
||||||
;;
|
|
||||||
"foreground")
|
|
||||||
$processPath -n
|
|
||||||
;;
|
|
||||||
"valgrindMemChecks")
|
|
||||||
G_SLICE=always-malloc G_DEBUG=gc-friendly valgrind -v --tool=memcheck --leak-check=full --num-callers=40 --log-file=${processPath}-valgrind.log $processPath -n
|
|
||||||
;;
|
|
||||||
"valgrindProfiling")
|
|
||||||
valgrind --tool=callgrind $processPath -n
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Unknown startType - $startType"; exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
startVgAuthProcess() {
|
|
||||||
local startType="$1"
|
|
||||||
local startDir="$2"
|
|
||||||
local processDir="$3"
|
|
||||||
local processName="$4"
|
|
||||||
|
|
||||||
local processPath="$processDir/$processName"
|
|
||||||
verifyProcessNotRunning "$processPath"
|
|
||||||
setUtf8Locale
|
|
||||||
|
|
||||||
mkdir -p "$startDir"
|
|
||||||
cd "$startDir"
|
|
||||||
|
|
||||||
# Run the processes using -s rather than -d if you want the logging to go the file instead of the console
|
|
||||||
case "$startType" in
|
|
||||||
"daemon")
|
|
||||||
# This is supposed to start the service as a daemon, but it's failing... perhaps because the service
|
|
||||||
# hasn't been registered - see above.
|
|
||||||
#./$processName -b
|
|
||||||
|
|
||||||
# -s tells it to log to a file, -d to the console
|
|
||||||
nohup $processPath -s > ${processPath}.out 2>&1 &
|
|
||||||
;;
|
|
||||||
"foreground")
|
|
||||||
$processPath -d
|
|
||||||
;;
|
|
||||||
"valgrindMemChecks")
|
|
||||||
G_SLICE=always-malloc G_DEBUG=gc-friendly valgrind -v --tool=memcheck --leak-check=full --num-callers=40 --log-file=${processPath}-valgrind.log $processPath -d
|
|
||||||
;;
|
|
||||||
"valgrindProfiling")
|
|
||||||
valgrind --tool=callgrind $processPath -d
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Unknown startType - $startType"; exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
#The best locale is UTF8, and prefereably matches the
|
|
||||||
#desired language and region
|
|
||||||
getBestLocale() {
|
|
||||||
# Only find one best
|
|
||||||
if [ -z $best_locale ]; then
|
|
||||||
echo "Looking for best match for <$1>"
|
|
||||||
#If no language or region is defined, default to US English
|
|
||||||
if [ "$1" = "C" -o "$1" = "" -o "$1" = "POSIX" ]; then
|
|
||||||
echo "Generic starting point, defaulting"
|
|
||||||
getBestLocale "en_US"
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
available_utf8_locales=`locale -a | egrep -i '.utf8|.utf-8' | egrep -vi '^c.utf'`
|
|
||||||
for loc in $available_utf8_locales; do
|
|
||||||
best_locale=$loc
|
|
||||||
#echo "Trying $loc"
|
|
||||||
if test "${loc#*$1}" != "$loc"; then
|
|
||||||
echo "$loc is best match for $1"
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ -z $best_locale ]; then
|
|
||||||
echo "No UTF8 locale found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
#If no match was found, use any valid UTF8
|
|
||||||
echo "Found no best, using $best_locale"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
#Set the locale to something UTF8
|
|
||||||
setUtf8Locale() {
|
|
||||||
# Only change if the current locale is not UTF8
|
|
||||||
locale_list=`locale | egrep -vi '.utf8|.utf-8|=$|LANGUAGE'`
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
echo "The locale is not UTF8, looking for a better one"
|
|
||||||
|
|
||||||
#LC_ALL takes precedence
|
|
||||||
if [ ! -z $LC_ALL ]; then
|
|
||||||
echo "Initializing locale search with LC_ALL:$LC_ALL"
|
|
||||||
initial_local=$LC_ALL
|
|
||||||
else
|
|
||||||
echo "Initializing locale search with LANG:$LANG"
|
|
||||||
initial_local=$LANG
|
|
||||||
fi
|
|
||||||
|
|
||||||
locale_prefix=`echo $initial_local | sed 's/\.[^.]*$//'`
|
|
||||||
getBestLocale $locale_prefix
|
|
||||||
|
|
||||||
#For now, we'll just set LANG and LC_ALL, we may need to cycle
|
|
||||||
#through the entire locale_list in the future
|
|
||||||
export LANG=$best_locale
|
|
||||||
export LC_ALL=$best_locale
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
verifyProcessNotRunning() {
|
|
||||||
local processPath=$1
|
|
||||||
|
|
||||||
pid=$(ps aux | egrep "${processPath}" | egrep -v "color=auto|grep" | awk '{print $2}')
|
|
||||||
if [ ! -z "$pid" ]; then
|
|
||||||
echo "$processPath is already running - $pid"; exit 0
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
stopProcess() {
|
|
||||||
local processDir=$1
|
|
||||||
local processName=$2
|
|
||||||
|
|
||||||
local processPath="$processDir/$processName"
|
|
||||||
|
|
||||||
pid=$(ps aux | egrep "${processPath}" | egrep -v "color=auto|grep" | awk '{print $2}')
|
|
||||||
if [ -z "$pid" ]; then
|
|
||||||
echo "$processPath not found"
|
|
||||||
else
|
|
||||||
echo "Stopping $processPath - $pid"
|
|
||||||
counter=0
|
|
||||||
while [ ! -z "$pid" ]; do
|
|
||||||
if [ $counter -lt 20 ]; then
|
|
||||||
kill $pid
|
|
||||||
else
|
|
||||||
echo "Killing $processPath with prejudice- $pid"
|
|
||||||
kill -9 $pid
|
|
||||||
fi
|
|
||||||
counter=`expr $counter + 1`;
|
|
||||||
#echo "counter=$counter"
|
|
||||||
sleep 1
|
|
||||||
pid=$(ps aux | egrep "${processPath}" | egrep -v "color=auto|grep" | awk '{print $2}')
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
enableCoreFiles() {
|
|
||||||
ulimit -c unlimited
|
|
||||||
}
|
|
||||||
|
|
@ -1,191 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
function setCafRootDir() {
|
|
||||||
if [ "$CAF_CONFIG_DIR" = "" ]; then
|
|
||||||
if [ -f "/etc/vmware-caf/pme/config/cafenv.config" ]; then
|
|
||||||
. "/etc/vmware-caf/pme/config/cafenv.config"
|
|
||||||
else
|
|
||||||
if [ -f "/etc/vmware-caf/client/config/cafenv.config" ]; then
|
|
||||||
. "/etc/vmware-caf/client/config/cafenv.config"
|
|
||||||
else
|
|
||||||
echo "Failed to resolve cafenv.config"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function prtHeader() {
|
|
||||||
local header=$1
|
|
||||||
|
|
||||||
echo "*************************"
|
|
||||||
echo "***"
|
|
||||||
echo "*** $header"
|
|
||||||
echo "***"
|
|
||||||
echo "*************************"
|
|
||||||
}
|
|
||||||
|
|
||||||
function prtHelp() {
|
|
||||||
echo "*** $0 cmd <args>"
|
|
||||||
echo " Runs various CAF commands"
|
|
||||||
echo " cmd: The CAF command to run:"
|
|
||||||
echo " * listServices Lists the CAF Services"
|
|
||||||
echo " * startServices Starts the Services"
|
|
||||||
echo " * stopServices Stops the Services"
|
|
||||||
echo " * killServices Kills the Services"
|
|
||||||
echo ""
|
|
||||||
echo " * startListener Starts the Listener Service"
|
|
||||||
echo " * startListenerForeground Starts the Listener in the foreground"
|
|
||||||
echo " * startListenerValgrindMemChecks Starts the Listener with Valgrind Mem Checks"
|
|
||||||
echo " * stopListener Stops the Listener Service"
|
|
||||||
echo " * killListener Kills the Listener Service"
|
|
||||||
echo ""
|
|
||||||
echo " * startMa Starts the Management Agent Service"
|
|
||||||
echo " * startMaForeground Starts the Management Agent in the foreground"
|
|
||||||
echo " * startMaValgrindMemChecks Starts the Management Agent with Valgrind Mem Checks"
|
|
||||||
echo " * stopMa Stops the Management Agent Service"
|
|
||||||
echo " * killMa Kills the Management Agent Service"
|
|
||||||
}
|
|
||||||
|
|
||||||
function startProcess() {
|
|
||||||
local process="$1"
|
|
||||||
local enableConsoleLogging="$2"
|
|
||||||
local cmd="$3"
|
|
||||||
|
|
||||||
case "$process" in
|
|
||||||
"listener")
|
|
||||||
if [ -f "$scriptsDir/start-listener" ]; then
|
|
||||||
prtHeader "Starting Listener - $cmd"
|
|
||||||
if [ "$enableConsoleLogging" = "true" ]; then
|
|
||||||
enableConsoleLogging "CommAmqpListener"
|
|
||||||
else
|
|
||||||
disableConsoleLogging "CommAmqpListener"
|
|
||||||
fi
|
|
||||||
$scriptsDir/start-listener "$cmd"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
"ma")
|
|
||||||
if [ -f "$scriptsDir/start-ma" ]; then
|
|
||||||
prtHeader "Starting Management Agent - $cmd"
|
|
||||||
if [ "$enableConsoleLogging" = "true" ]; then
|
|
||||||
enableConsoleLogging "ma"
|
|
||||||
else
|
|
||||||
disableConsoleLogging "ma"
|
|
||||||
fi
|
|
||||||
$scriptsDir/start-ma "$cmd"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Unknown process - $process"
|
|
||||||
prtHelp
|
|
||||||
exit 1
|
|
||||||
esac
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function stopListener() {
|
|
||||||
if [ -f "$scriptsDir/stop-listener" ]; then
|
|
||||||
$scriptsDir/stop-listener
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function stopMa() {
|
|
||||||
if [ -f "$scriptsDir/stop-ma" ]; then
|
|
||||||
$scriptsDir/stop-ma
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function killListener() {
|
|
||||||
pid=$(ps -eo pid,cmd | egrep "CommAmqpListener" | egrep -v "egrep" | awk '{print $1}')
|
|
||||||
if [ "$pid" != "" ]; then
|
|
||||||
echo "Killing Listener - $pid"
|
|
||||||
kill -9 $pid
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function killMa() {
|
|
||||||
pid=$(ps -eo pid,cmd | egrep "ManagementAgentHost" | egrep -v "egrep" | awk '{print $1}')
|
|
||||||
if [ "$pid" != "" ]; then
|
|
||||||
echo "Killing Management Agent - $pid"
|
|
||||||
kill -9 $pid
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function enableConsoleLogging() {
|
|
||||||
component="$1"
|
|
||||||
|
|
||||||
sed -i 's/^#log4j.rootCategory=DEBUG, console/log4j.rootCategory=DEBUG, console/g' "$CAF_CONFIG_DIR/${component}-log4cpp_config"
|
|
||||||
sed -i 's/^log4j.rootCategory=DEBUG, logfile/#log4j.rootCategory=DEBUG, logfile/g' "$CAF_CONFIG_DIR/${component}-log4cpp_config"
|
|
||||||
}
|
|
||||||
|
|
||||||
function disableConsoleLogging() {
|
|
||||||
component="$1"
|
|
||||||
|
|
||||||
sed -i 's/^log4j.rootCategory=DEBUG, console/#log4j.rootCategory=DEBUG, console/g' "$CAF_CONFIG_DIR/${component}-log4cpp_config"
|
|
||||||
sed -i 's/^#log4j.rootCategory=DEBUG, logfile/log4j.rootCategory=DEBUG, logfile/g' "$CAF_CONFIG_DIR/${component}-log4cpp_config"
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ $# -lt 1 -o "$1" = "--help" ]; then
|
|
||||||
prtHelp
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
cmd=$1
|
|
||||||
shift
|
|
||||||
cmd_params=$@
|
|
||||||
|
|
||||||
setCafRootDir
|
|
||||||
scriptsDir="$CAF_CONFIG_DIR/../scripts"
|
|
||||||
|
|
||||||
case "$cmd" in
|
|
||||||
"listServices")
|
|
||||||
prtHeader "Listing services"
|
|
||||||
ps -ef | egrep "CommAmqpListener|ManagementAgentHost|VGAuthService" | egrep -v "egrep"
|
|
||||||
;;
|
|
||||||
"startListener")
|
|
||||||
startProcess "listener" "false" "daemon"
|
|
||||||
;;
|
|
||||||
"startMa")
|
|
||||||
startProcess "ma" "false" "daemon"
|
|
||||||
;;
|
|
||||||
"startServices")
|
|
||||||
startProcess "listener" "false" "daemon"
|
|
||||||
startProcess "ma" "false" "daemon"
|
|
||||||
;;
|
|
||||||
"startListenerForeground")
|
|
||||||
startProcess "listener" "true" "foreground"
|
|
||||||
;;
|
|
||||||
"startMaForeground")
|
|
||||||
startProcess "ma" "true" "foreground"
|
|
||||||
;;
|
|
||||||
"startListenerValgrindMemChecks")
|
|
||||||
startProcess "listener" "true" "valgrindMemChecks"
|
|
||||||
;;
|
|
||||||
"startMaValgrindMemChecks")
|
|
||||||
startProcess "ma" "true" "valgrindMemChecks"
|
|
||||||
;;
|
|
||||||
"stopListener")
|
|
||||||
stopListener
|
|
||||||
;;
|
|
||||||
"stopMa")
|
|
||||||
stopMa
|
|
||||||
;;
|
|
||||||
"stopServices")
|
|
||||||
stopListener
|
|
||||||
stopMa
|
|
||||||
;;
|
|
||||||
"killListener")
|
|
||||||
killListener
|
|
||||||
;;
|
|
||||||
"killMa")
|
|
||||||
killMa
|
|
||||||
;;
|
|
||||||
"killServices")
|
|
||||||
killListener
|
|
||||||
killMa
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Bad command - $cmd"
|
|
||||||
prtHelp
|
|
||||||
exit 1
|
|
||||||
esac
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
helpMessage() {
|
|
||||||
echo "*** $0 {userName} {certPath} {subject}"
|
|
||||||
echo " Starts the VgAuth service and optionally adds the user and user->subject mapping"
|
|
||||||
echo " userName: The name of the user to be added [default: $userName]"
|
|
||||||
echo " certPath: Path to the certificate [default: $certPath]"
|
|
||||||
echo " subject: Subject that maps to the userName in the SAML [default: $subject]"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
scriptsDir=$(dirname $(readlink -f $0))
|
|
||||||
certsDir=$scriptsDir/../data/input/certs
|
|
||||||
|
|
||||||
userName=""
|
|
||||||
certPath=$certsDir/selfSignedCert.pem
|
|
||||||
subject="samlTestSubject"
|
|
||||||
|
|
||||||
if [ $# -gt 3 -o "$1" = "--help" ]; then
|
|
||||||
helpMessage
|
|
||||||
fi
|
|
||||||
if [ $# -ge 1 ]; then
|
|
||||||
userName=$1
|
|
||||||
fi
|
|
||||||
if [ $# -ge 2 ]; then
|
|
||||||
certPath=$2
|
|
||||||
fi
|
|
||||||
if [ $# -ge 3 ]; then
|
|
||||||
subject=$3
|
|
||||||
fi
|
|
||||||
|
|
||||||
$scriptsDir/start-VGAuthService
|
|
||||||
|
|
||||||
if [ $userName != "" ]; then
|
|
||||||
/usr/sbin/useradd $userName
|
|
||||||
|
|
||||||
sleep 1
|
|
||||||
$scriptsDir/vgAuth addUser $userName $certPath $subject
|
|
||||||
fi
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
helpMessage() {
|
|
||||||
local defStartType=$1
|
|
||||||
|
|
||||||
echo "*** $0 {startType}"
|
|
||||||
echo " Starts VgAuth"
|
|
||||||
echo " startType: How to start the listener (daemon, foreground, valgrindMemChecks, valgrindProfiling) [default: $defStartType]"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
startType="daemon"
|
|
||||||
if [ $# -gt 1 -o "$1" = "--help" ]; then
|
|
||||||
helpMessage "$startType"
|
|
||||||
fi
|
|
||||||
if [ $# -ge 1 ]; then
|
|
||||||
startType=$1
|
|
||||||
fi
|
|
||||||
|
|
||||||
scriptsDir=$(dirname $(readlink -f $0))
|
|
||||||
configDir=$scriptsDir/../config
|
|
||||||
. $configDir/cafenv.config
|
|
||||||
. $scriptsDir/caf-common
|
|
||||||
|
|
||||||
processName="VGAuthService"
|
|
||||||
|
|
||||||
export LD_LIBRARY_PATH=$CAF_ROOT_DIR/lib
|
|
||||||
|
|
||||||
#enableCoreFiles
|
|
||||||
|
|
||||||
startVgAuthProcess "$startType" "$CAF_LOG_DIR" "$CAF_BIN_DIR" "$processName"
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
helpMessage() {
|
|
||||||
local defStartType=$1
|
|
||||||
|
|
||||||
echo "*** $0 {startType}"
|
|
||||||
echo " Starts the listener"
|
|
||||||
echo " startType: How to start the listener (daemon, foreground, valgrindMemChecks, valgrindProfiling) [default: $defStartType]"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
startType="daemon"
|
|
||||||
if [ $# -gt 1 -o "$1" = "--help" ]; then
|
|
||||||
helpMessage "$startType"
|
|
||||||
fi
|
|
||||||
if [ $# -ge 1 ]; then
|
|
||||||
startType=$1
|
|
||||||
fi
|
|
||||||
|
|
||||||
scriptsDir=$(dirname $(readlink -f $0))
|
|
||||||
configDir=$scriptsDir/../config
|
|
||||||
. $configDir/cafenv.config
|
|
||||||
. $scriptsDir/caf-common
|
|
||||||
|
|
||||||
processName="CommAmqpListener"
|
|
||||||
|
|
||||||
export CAF_APPCONFIG=$CAF_CONFIG_DIR/CommAmqpListener-appconfig
|
|
||||||
export LD_LIBRARY_PATH="$CAF_LIB_DIR"
|
|
||||||
|
|
||||||
#enableCoreFiles
|
|
||||||
|
|
||||||
startCafProcess "$startType" "$CAF_LOG_DIR" "$CAF_BIN_DIR" "$processName"
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
helpMessage() {
|
|
||||||
local defStartType=$1
|
|
||||||
|
|
||||||
echo "*** $0 {startType}"
|
|
||||||
echo " Starts the Management Agent"
|
|
||||||
echo " startType: How to start the listener (daemon, foreground, valgrindMemChecks, valgrindProfiling) [default: $defStartType]"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
startType="daemon"
|
|
||||||
if [ $# -gt 1 -o "$1" = "--help" ]; then
|
|
||||||
helpMessage "$startType"
|
|
||||||
fi
|
|
||||||
if [ $# -ge 1 ]; then
|
|
||||||
startType=$1
|
|
||||||
fi
|
|
||||||
|
|
||||||
scriptsDir=$(dirname $(readlink -f $0))
|
|
||||||
configDir=$scriptsDir/../config
|
|
||||||
. $configDir/cafenv.config
|
|
||||||
. $scriptsDir/caf-common
|
|
||||||
|
|
||||||
processName="ManagementAgentHost"
|
|
||||||
|
|
||||||
export CAF_APPCONFIG=$CAF_CONFIG_DIR/ma-appconfig
|
|
||||||
export LD_LIBRARY_PATH="$CAF_LIB_DIR"
|
|
||||||
|
|
||||||
#enableCoreFiles
|
|
||||||
|
|
||||||
startCafProcess "$startType" "$CAF_LOG_DIR" "$CAF_BIN_DIR" "$processName"
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
echo $$
|
|
||||||
while true; do
|
|
||||||
sleep 1000
|
|
||||||
done
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
scriptsDir=$(dirname $(readlink -f $0))
|
|
||||||
. $scriptsDir/caf-common
|
|
||||||
|
|
||||||
processName="VGAuthService"
|
|
||||||
stopProcess "$processName"
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
scriptsDir=$(dirname $(readlink -f $0))
|
|
||||||
configDir=$scriptsDir/../config
|
|
||||||
. $configDir/cafenv.config
|
|
||||||
. $scriptsDir/caf-common
|
|
||||||
|
|
||||||
processName="CommAmqpListener"
|
|
||||||
stopProcess "$CAF_BIN_DIR" "$processName"
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
scriptsDir=$(dirname $(readlink -f $0))
|
|
||||||
configDir=$scriptsDir/../config
|
|
||||||
. $configDir/cafenv.config
|
|
||||||
. $scriptsDir/caf-common
|
|
||||||
|
|
||||||
processName="ManagementAgentHost"
|
|
||||||
stopProcess "$CAF_BIN_DIR" "$processName"
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
helpMessage() {
|
|
||||||
echo "*** $0 {userName} {certPath} {subject}"
|
|
||||||
echo " Stops the VgAuth service and optionally removes the user and user->subject mapping"
|
|
||||||
echo " userName: The name of the user to be removed [default: $userName]"
|
|
||||||
echo " certPath: Path to the certificate [default: $certPath]"
|
|
||||||
echo " subject: Subject that maps to the userName in the SAML [default: $subject]"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
scriptsDir=$(dirname $(readlink -f $0))
|
|
||||||
certsDir=$scriptsDir/../data/input/certs
|
|
||||||
|
|
||||||
userName=""
|
|
||||||
certPath=$certsDir/selfSignedCert.pem
|
|
||||||
subject="samlTestSubject"
|
|
||||||
|
|
||||||
if [ $# -gt 3 -o "$1" = "--help" ]; then
|
|
||||||
helpMessage
|
|
||||||
fi
|
|
||||||
if [ $# -ge 1 ]; then
|
|
||||||
userName=$1
|
|
||||||
fi
|
|
||||||
if [ $# -ge 2 ]; then
|
|
||||||
certPath=$2
|
|
||||||
fi
|
|
||||||
if [ $# -ge 3 ]; then
|
|
||||||
subject=$3
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $userName != "" ]; then
|
|
||||||
$scriptsDir/vgAuth removeUser $userName $certPath $subject
|
|
||||||
|
|
||||||
sleep 1
|
|
||||||
/usr/sbin/userdel -r $userName
|
|
||||||
fi
|
|
||||||
|
|
||||||
$scriptsDir/stop-VGAuthService
|
|
||||||
|
|
@ -1,79 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
helpMessage() {
|
|
||||||
echo "*** $0 Action {Username} {CertPath} {Subject}"
|
|
||||||
echo " Manages the VGAuth alias store"
|
|
||||||
echo " Action: help, addUser, removeUser, listAll, listUser"
|
|
||||||
echo " Username: The name of the user to add to the alias store [default: $username]"
|
|
||||||
echo " CertPath: Path to the cert [default: $cert]"
|
|
||||||
echo " Subject: Subject of the cert [default: $subject]"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
rootDir=$(dirname $(readlink -f $0))/..
|
|
||||||
. $rootDir/config/cafenv.config
|
|
||||||
|
|
||||||
vgAuthCliName=vmware-vgauth-cmd
|
|
||||||
if [ -f /usr/lib/vmware-vgauth/$vgAuthCliName ]; then
|
|
||||||
vgAuthCliPath=/usr/lib/vmware-vgauth/$vgAuthCliName
|
|
||||||
else
|
|
||||||
if [ -f $CAF_BIN_DIR/$vgAuthCliName ]; then
|
|
||||||
vgAuthCliPath=$CAF_BIN_DIR/$vgAuthCliName
|
|
||||||
export LD_LIBRARY_PATH=$CAF_LIB_DIR
|
|
||||||
else
|
|
||||||
echo "*** $vgAuthCliName not found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
action=$1
|
|
||||||
username="testuser"
|
|
||||||
cert=$CAF_INPUT_DIR/certs/selfSignedCert.pem
|
|
||||||
subject="samlTestSubject"
|
|
||||||
|
|
||||||
if [ $# -lt 1 -o $# -gt 4 -o "$1" = "--help" ]; then
|
|
||||||
helpMessage
|
|
||||||
fi
|
|
||||||
if [ $# -ge 2 ]; then
|
|
||||||
username=$2
|
|
||||||
fi
|
|
||||||
if [ $# -ge 3 ]; then
|
|
||||||
cert=$3
|
|
||||||
fi
|
|
||||||
if [ $# -ge 4 ]; then
|
|
||||||
subject=$4
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$action" in
|
|
||||||
"addUser")
|
|
||||||
userLineCnt=$($vgAuthCli list --username=$username | wc -l)
|
|
||||||
if [ $userLineCnt = 0 ]; then
|
|
||||||
echo "*** Addding $username ***"
|
|
||||||
$vgAuthCli add --global --username=$username --file $cert --subject=$subject
|
|
||||||
else
|
|
||||||
echo "*** User already exists... Doing nothing - $username"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
"removeUser")
|
|
||||||
userLineCnt=$($vgAuthCli list --username=$username | wc -l)
|
|
||||||
if [ $userLineCnt = 0 ]; then
|
|
||||||
echo "*** User already gone... Doing nothing - $username"
|
|
||||||
else
|
|
||||||
echo "*** Removing $username ***"
|
|
||||||
$vgAuthCli remove --username=$username --file $cert --subject=$subject
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
"listAll")
|
|
||||||
$vgAuthCli list
|
|
||||||
;;
|
|
||||||
"listUser")
|
|
||||||
echo "*** Listing $username ***"
|
|
||||||
$vgAuthCli list --username=$username
|
|
||||||
;;
|
|
||||||
"help")
|
|
||||||
helpMessage
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
helpMessage
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1,142 +0,0 @@
|
||||||
<?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>
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
<?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>
|
|
||||||
|
|
@ -1,402 +0,0 @@
|
||||||
<!-- 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' >
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,203 +0,0 @@
|
||||||
<!--
|
|
||||||
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;>
|
|
||||||
|
|
@ -1,283 +0,0 @@
|
||||||
<?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>
|
|
||||||
|
|
@ -1,135 +0,0 @@
|
||||||
<?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>
|
|
||||||
|
|
@ -1,287 +0,0 @@
|
||||||
<?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>
|
|
||||||
|
|
||||||
|
|
@ -1,308 +0,0 @@
|
||||||
<?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>
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDpjCCAo6gAwIBAgIJAO/dumwp42faMA0GCSqGSIb3DQEBCwUAMG8xCzAJBgNV
|
|
||||||
BAMMAkNBMRcwFQYKCZImiZPyLGQBGRYHdnNwaGVyZTEVMBMGCgmSJomT8ixkARkW
|
|
||||||
BWxvY2FsMQswCQYDVQQGEwJVUzEjMCEGA1UECgwaY2MtdmNlbnRlcjEuZW5nLnZt
|
|
||||||
d2FyZS5jb20wHhcNMTUwNzI0MTYzMjM1WhcNMjUwNzIxMTYzMjM1WjBvMQswCQYD
|
|
||||||
VQQDDAJDQTEXMBUGCgmSJomT8ixkARkWB3ZzcGhlcmUxFTATBgoJkiaJk/IsZAEZ
|
|
||||||
FgVsb2NhbDELMAkGA1UEBhMCVVMxIzAhBgNVBAoMGmNjLXZjZW50ZXIxLmVuZy52
|
|
||||||
bXdhcmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtF0wUEI7
|
|
||||||
b7nTBUmL2afHHsHgoAGD3vPLSwjkQKWZhtjf/9PnBbQa2Qvt+AfUawAs9jZSUytg
|
|
||||||
VxyAVttTT1/trH6cj8eeAA9/P69h/qwYxJr+O01QK8VdKHkdK+Ec+C0oBrbscU25
|
|
||||||
tTq+pM57iQ5XD5qw/fGfkwvqSe3vfcDnbd1rbSDGjQ7sGxeR0AfFdclhOo/NnxfD
|
|
||||||
Tl4/yx9fnCv1BYKNkg3M5t57WI2+nxPa5BVTOt65csBSOTSjRfCbySad0N3gRD11
|
|
||||||
P3p4p7lyia/fMKyuQ2wYo89Mc3asOv6jOyZBaKzYD//a0GCBDDmI5LinH35p/JlC
|
|
||||||
hWWJ+Bldr9rLZQIDAQABo0UwQzAdBgNVHQ4EFgQUuFbh291cPl9Iko2AuhzJCr65
|
|
||||||
jyAwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYJKoZIhvcN
|
|
||||||
AQELBQADggEBAGQpGV0a9GkXtxY0ezPFvBU/JYjKznNkoaeLMB4ZHJRdOBJdAsqN
|
|
||||||
BOx5t1pBZIwVFDMUlgkbHCOOh9vVzaAuDGTRSsVWTc5jt2eZGNypr1Cj2ylIfsMO
|
|
||||||
w7X0DdmDbVeQCe3y9TRER6F/jNu2UZp37xn8/UWHYENC4Bem/u/OSUM59bxvJClc
|
|
||||||
N+q+S7L0Y81EmErzZQW7xmK2eieRIntkH6upPcteaWYwpSjRU9gXkAKzeYCt11xU
|
|
||||||
H/ZT9iqjnrVGOooHwNna+c2oFGlGYNKyvneU2ATA9JnY39JXLfav6Az8VE9nLPRt
|
|
||||||
S7LEvnemwSyx+Y7xlraR2Qwq0Em+TMgahbI=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
-----BEGIN PRIVATE KEY-----
|
|
||||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDGba5Upqo6t9ko
|
|
||||||
JakmTYgGEqVgRhlWT/54S9KzooudPG6tu91/uGewDtYfsDlhnI3hK4iSbxJHR+Yq
|
|
||||||
DAmaqiY55m0G126n+omg3XNkP5atN8BtzLGyhe/XM7lOg4/njX2rAoZjKKMZUO9+
|
|
||||||
9WM8WaeIV+nEgF97grcEjwqQ7fRecjdlkpWsOTMXasX6wfU2AIHOr3OGbMRj7FCr
|
|
||||||
07pyP22ojTsiMdefVu2O8A2r003El+fohrODuq430tEbEJKc1eke+qRHD+vjm/Ze
|
|
||||||
WrftTp0thgLD4qW0itctMGfzvAaH13saFU2AurhClcs8sTfZBH+x0x0jcbuWvnL5
|
|
||||||
t4GL/Xu5AgMBAAECggEABxW7d8JLqbUOx+QwWfHCvZTE2t8l4HMSvvDWIRvYqFCU
|
|
||||||
Exf2HK1U5nBhLNh59AZG+pc3VSMqH+ltSmsLnL4eh0q28duXU+AaMeg2SooKszye
|
|
||||||
Xk1Euv8VRTXPlAIWjUn8BrMcYUX+LNU69+mDFZCN7sxUyHNc9WgBaORCmFImu4iA
|
|
||||||
YTjynqBncGtD+KjfXzYij7RlrT9FdfSuHLn8/MsaLFi2RgSMWWomfwpvGPnihh1F
|
|
||||||
oHLfw3DtuqOPJHGGt8QQ5FFTXN3aJTNQzmJmOQa3Wl3aTUDtafSND+8rkxKbm7w8
|
|
||||||
1+8R/Skp3RzThqU4QErPya+dARCrmi2mKA8qOFboQQKBgQDkU4YwGnqSbhasipu6
|
|
||||||
GD2zhUwSbPo8fD3jofSRhNwi99uIl4o+ixrcptxjL7/AuxHfLxmXSg+kRW2jBo0C
|
|
||||||
5P40WrwjI23/Lbwh5fxsVuP4MbvepUW2BsiaSImb98nEgxTD/5sDWiGe/gi35VPb
|
|
||||||
CjoLkwLLR2FvJB1xHxN25C7JlQKBgQDeen3BE2IRCU5eJooAd748XMHAUVt6pH5I
|
|
||||||
IC292M9+Y1wT1E0xJsc8GWy0LTMdAotQTbha/MPau42uvHtWsBlGcptP4yvg/6uJ
|
|
||||||
BA1Fhh9VqIMs+DAeL/NbePmO6VP9DteoNL5YkQd7evUn93J9BngsvGrwMvbYK5mI
|
|
||||||
AzGTrj+IlQKBgQCfc9UacuN2r3sWNBZc9+DfJg/iLkjzRLDT756koWw6321pDqt0
|
|
||||||
0iCIR99RRV9ccUgh3Pq6NPaHehT+7Ow9QT5lwZfx0iRXONFRuxN1dZjvE4xoCHOO
|
|
||||||
k140oMO5MGqv2fr+hdrzlFY2eqIMCxNsvM+claY14DujKk2FWnZ1aRVjoQKBgH4O
|
|
||||||
L2SPY/g9Kp8j/PtI3Yv8Dne2YTu7KiYZvXEdAGwfRhOiLd6UlzyRN0tbdOOSBneI
|
|
||||||
odVD9IDh1eRUvRmgC6Ij26ZHFByXII0ws4hZ9zUklraLJVBlYODKSbRUthbjKwQO
|
|
||||||
Zm9uNSwcvf1YMhFu8fZ/B6Rza/ONuJ8dGCESEMOFAoGAK/zBzimPMnoDKjN1TDk+
|
|
||||||
QSQC41rCnXEcqH8Z7FBVkkruZ5E27aJaOwRwUeir8C959wMg0F+rH36WjXemBmw8
|
|
||||||
6NFO5AO0EwXe7nFInsLzWAL+fDtFHxCnopsINlYvMnfqd07+xeW9U4sZAVHWs51O
|
|
||||||
BlAbiw1JV/X+xgvPK4pQxcM=
|
|
||||||
-----END PRIVATE KEY-----
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIID6TCCAtGgAwIBAgIJAOiEjI8ODqZCMA0GCSqGSIb3DQEBCwUAMG8xCzAJBgNV
|
|
||||||
BAMMAkNBMRcwFQYKCZImiZPyLGQBGRYHdnNwaGVyZTEVMBMGCgmSJomT8ixkARkW
|
|
||||||
BWxvY2FsMQswCQYDVQQGEwJVUzEjMCEGA1UECgwaY2MtdmNlbnRlcjEuZW5nLnZt
|
|
||||||
d2FyZS5jb20wHhcNMTUwODEyMTkzMDQ4WhcNMjUwNzIxMTYzMjM1WjB1MQ0wCwYD
|
|
||||||
VQQDDARBY21lMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTESMBAG
|
|
||||||
A1UEBwwJUGFsbyBBbHRvMRAwDgYDVQQKDAdBY21lT3JnMRwwGgYDVQQLDBNBY21l
|
|
||||||
T3JnIEVuZ2luZWVyaW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
|
|
||||||
xm2uVKaqOrfZKCWpJk2IBhKlYEYZVk/+eEvSs6KLnTxurbvdf7hnsA7WH7A5YZyN
|
|
||||||
4SuIkm8SR0fmKgwJmqomOeZtBtdup/qJoN1zZD+WrTfAbcyxsoXv1zO5ToOP5419
|
|
||||||
qwKGYyijGVDvfvVjPFmniFfpxIBfe4K3BI8KkO30XnI3ZZKVrDkzF2rF+sH1NgCB
|
|
||||||
zq9zhmzEY+xQq9O6cj9tqI07IjHXn1btjvANq9NNxJfn6Iazg7quN9LRGxCSnNXp
|
|
||||||
HvqkRw/r45v2Xlq37U6dLYYCw+KltIrXLTBn87wGh9d7GhVNgLq4QpXLPLE32QR/
|
|
||||||
sdMdI3G7lr5y+beBi/17uQIDAQABo4GBMH8wCwYDVR0PBAQDAgXgMDAGA1UdEQQp
|
|
||||||
MCeBDmVtYWlsQGFjbWUuY29thwR/AAABgg9zZXJ2ZXIuYWNtZS5jb20wHQYDVR0O
|
|
||||||
BBYEFFjaImJnGok8y/plG+ZOH0aw38WrMB8GA1UdIwQYMBaAFLhW4dvdXD5fSJKN
|
|
||||||
gLocyQq+uY8gMA0GCSqGSIb3DQEBCwUAA4IBAQAcdOvU9DqeN9XfaFHt7bTC/mHx
|
|
||||||
l7SZfdozsfFoO8WJg2MLl1dwN6Iq7iKGWr9bWfwxJHz3VR0hoLIh54D2jUqn8R7b
|
|
||||||
eDoJW5/Zua+aC84pqqpjVKbrzEsUDgysFYRr+ALLlVW8+GTizHkr7FiLJ7tV1sSz
|
|
||||||
qT4roldYLwNcUkGHF9L77RZGvuDr9g7pcHTxSq+ApHVHeRTJHBJfs5z7JB7yFqdG
|
|
||||||
27fMl0GwxCLEigGbIOeoqS796dy20Tg6XLasUnVwgCoumvzn1XUmAJIvosjvXB0N
|
|
||||||
ABh6HN/Cf1lTnYanRPch7fJ2TerhPw5JkDQYLmL7ltQGCWWPXYYwAqvcm9Uv
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
export CAF_TMP_DIR=$CAF_OUTPUT_DIR/tmp
|
|
||||||
export CAF_INPUT_DIR=$CAF_INPUT_DIR
|
|
||||||
export CAF_OUTPUT_DIR=$CAF_OUTPUT_DIR
|
|
||||||
export CAF_PROVIDERREG_DIR=$CAF_OUTPUT_DIR/providerReg
|
|
||||||
export CAF_INVOKERS_DIR=$CAF_OUTPUT_DIR/invokers
|
|
||||||
export CAF_PROVIDERS_DIR=$CAF_OUTPUT_DIR/providers
|
|
||||||
export CAF_COMMONPACKAGES_DIR=$CAF_OUTPUT_DIR/commonPackages
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<caf:providerReg
|
|
||||||
xmlns:caf="http://schemas.vmware.com/caf/schema/fx"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://schemas.vmware.com/caf/schema/fx http://10.25.57.32/caf-downloads/schema/fx/ProviderInfra.xsd"
|
|
||||||
providerNamespace="cafTestInfra"
|
|
||||||
providerName="CafTestInfraProvider"
|
|
||||||
providerVersion="1.0.0"
|
|
||||||
inProcMoniker="com.vmware.commonagent.providers.testinfraprovider"
|
|
||||||
staleSec="1000"
|
|
||||||
isSchemaVisible="true"/>
|
|
||||||
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<caf:providerReg
|
|
||||||
xmlns:caf="http://schemas.vmware.com/caf/schema/fx"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://schemas.vmware.com/caf/schema/fx http://10.25.57.32/caf-downloads/schema/fx/ProviderInfra.xsd"
|
|
||||||
providerNamespace="caf"
|
|
||||||
providerName="ConfigProvider"
|
|
||||||
providerVersion="1.0.0"
|
|
||||||
inProcMoniker="com.vmware.commonagent.providers.configprovider"
|
|
||||||
staleSec="1000"
|
|
||||||
isSchemaVisible="false"/>
|
|
||||||
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<caf:providerReg
|
|
||||||
xmlns:caf="http://schemas.vmware.com/caf/schema/fx"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://schemas.vmware.com/caf/schema/fx http://10.25.57.32/caf-downloads/schema/fx/ProviderInfra.xsd"
|
|
||||||
providerNamespace="caf"
|
|
||||||
providerName="InstallProvider"
|
|
||||||
providerVersion="1.0.0"
|
|
||||||
inProcMoniker="com.vmware.commonagent.providers.installprovider"
|
|
||||||
staleSec="1000"
|
|
||||||
isSchemaVisible="false"/>
|
|
||||||
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<caf:providerReg
|
|
||||||
xmlns:caf="http://schemas.vmware.com/caf/schema/fx"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://schemas.vmware.com/caf/schema/fx http://10.25.57.32/caf-downloads/schema/fx/ProviderInfra.xsd"
|
|
||||||
providerNamespace="caf"
|
|
||||||
providerName="RemoteCommandProvider"
|
|
||||||
providerVersion="1.0.0"
|
|
||||||
inProcMoniker="com.vmware.commonagent.providers.remotecommandprovider"
|
|
||||||
staleSec="1000"
|
|
||||||
isSchemaVisible="false"/>
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
drop database if exists bookstore;
|
||||||
|
create database bookstore;
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
drop database if exists bookstore;
|
||||||
|
create database bookstore;
|
||||||
|
use bookstore;
|
||||||
|
create table book(
|
||||||
|
id int(11) not NULL,
|
||||||
|
title VARCHAR(255),
|
||||||
|
author VARCHAR(255),
|
||||||
|
publisher VARCHAR(255),
|
||||||
|
publishYear int(11)
|
||||||
|
)DEFAULT CHARSET=utf8;
|
||||||
|
Insert into book (id,title,author,publisher,publishYear) values
|
||||||
|
(1002,'平凡的世界', '路遥','新世界出版社',2011),
|
||||||
|
(1026,'活着', '余华','东方出版社',2016),
|
||||||
|
(1204,'围城', '钱钟书','人名文学出版社',1991),
|
||||||
|
(1208,'围城', '钱钟书','文艺出版社',2012);
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
drop database if exists bookstore;
|
||||||
|
create database bookstore;
|
||||||
|
use bookstore;
|
||||||
|
create table book(
|
||||||
|
id int(11) not NULL,
|
||||||
|
title VARCHAR(255),
|
||||||
|
author VARCHAR(255),
|
||||||
|
publisher VARCHAR(255),
|
||||||
|
publishYear int(11)
|
||||||
|
)DEFAULT CHARSET=utf8;
|
||||||
|
Insert into book (id,title,author,publisher,publishYear) values
|
||||||
|
(1002,'平凡的世界', '路遥','新世界出版社',2011),
|
||||||
|
(1026,'活着', '余华','东方出版社',2016),
|
||||||
|
(1204,'围城', '钱钟书','人名文学出版社',1991),
|
||||||
|
(1208,'围城', '钱钟书','文艺出版社',2012),
|
||||||
|
(1004,'平凡的世界', '路遥','文艺出版社',2012),
|
||||||
|
(1010,'人生', '路遥','文艺出版社',2005),
|
||||||
|
(1024,'活着', '余华','作家出版社',2012);
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
drop database if exists bookstore;
|
||||||
|
create database bookstore;
|
||||||
|
use bookstore;
|
||||||
|
create table book(
|
||||||
|
id int(11) not NULL,
|
||||||
|
title VARCHAR(255),
|
||||||
|
author VARCHAR(255),
|
||||||
|
publisher VARCHAR(255),
|
||||||
|
publishYear int(11)
|
||||||
|
)DEFAULT CHARSET=utf8;
|
||||||
|
Insert into book (id,title,author,publisher,publishYear) values
|
||||||
|
(1002,'平凡的世界', '路遥','新世界出版社',2011),
|
||||||
|
(1204,'围城', '钱钟书','人名文学出版社',1991),
|
||||||
|
(1208,'围城', '钱钟书','文艺出版社',2012),
|
||||||
|
(1004,'平凡的世界', '路遥','文艺出版社',2012),
|
||||||
|
(1010,'人生', '路遥','文艺出版社',2005);
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
drop database if exists bookstore;
|
||||||
|
create database bookstore;
|
||||||
|
use bookstore;
|
||||||
|
create table book(
|
||||||
|
id int(11) not NULL,
|
||||||
|
title VARCHAR(255),
|
||||||
|
author VARCHAR(255),
|
||||||
|
publisher VARCHAR(255),
|
||||||
|
publishYear int(11)
|
||||||
|
)DEFAULT CHARSET=utf8;
|
||||||
|
Insert into book (id,title,author,publisher,publishYear) values
|
||||||
|
(1002,'平凡的世界', '路遥','新世界出版社',2011),
|
||||||
|
(1204,'围城', '钱钟书','人名文学出版社',1991),
|
||||||
|
(1208,'围城', '钱钟书','文艺出版社',2012),
|
||||||
|
(1004,'平凡的世界', '路遥','文艺出版社',2012),
|
||||||
|
(1010,'人生', '路遥','文艺出版社',2005);
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
drop database if exists bookstore;
|
||||||
|
create database bookstore;
|
||||||
|
use bookstore;
|
||||||
|
create table step7(
|
||||||
|
id int(11) not NULL,
|
||||||
|
title VARCHAR(255),
|
||||||
|
author VARCHAR(255),
|
||||||
|
publisher VARCHAR(255),
|
||||||
|
publishYear int(11)
|
||||||
|
)DEFAULT CHARSET=utf8;
|
||||||
|
Insert into step7 (id,title,author,publisher,publishYear) values
|
||||||
|
(1002,'平凡的世界', null,'新世界出版社',null),
|
||||||
|
(1208,null, '钱钟书',null,null);
|
||||||
|
create table transformedBook(
|
||||||
|
id int(11),
|
||||||
|
column_name VARCHAR(255),
|
||||||
|
value VARCHAR(255)
|
||||||
|
)DEFAULT CHARSET=utf8;
|
||||||
67
doc/INSTALL
67
doc/INSTALL
|
|
@ -1,67 +0,0 @@
|
||||||
Copyright (c) 1998-2015 VMware, Inc. All rights reserved.
|
|
||||||
|
|
||||||
|
|
||||||
Please visit http://www.vmware.com/info?id=99 for help on getting started
|
|
||||||
installing VMware Tools.
|
|
||||||
|
|
||||||
_____________________________________________________________________________
|
|
||||||
|
|
||||||
INSTALLING/UPGRADING
|
|
||||||
|
|
||||||
To install/upgrade VMware Tools for Linux,
|
|
||||||
run the program "vmware-install.pl" from a command prompt, either in text
|
|
||||||
mode or from a terminal inside an X session. You must have super user
|
|
||||||
privileges (i.e. be logged as root) to run it.
|
|
||||||
|
|
||||||
./vmware-install.pl
|
|
||||||
|
|
||||||
If you are installing VMware Tools for the first time,
|
|
||||||
you can hit the <enter> key each time you are prompted to select the
|
|
||||||
factory default answer. By default,
|
|
||||||
the installation program installs:
|
|
||||||
the executables in /usr/bin,
|
|
||||||
the server executables in /usr/sbin,
|
|
||||||
the library files in /usr/lib/vmware-tools,
|
|
||||||
and the documentation files in /usr/share/doc/vmware-tools.
|
|
||||||
|
|
||||||
If you have previously installed VMware Tools,
|
|
||||||
you can hit the <enter> key each time you are prompted to keep your previous
|
|
||||||
answer, or you can decide to submit a new answer.
|
|
||||||
|
|
||||||
Once the installation/upgrade is complete, you can safely remove the
|
|
||||||
vmware-tools-distrib directory from your system.
|
|
||||||
|
|
||||||
CONFIGURING
|
|
||||||
|
|
||||||
In order to run correctly, VMware Tools must first be configured.
|
|
||||||
|
|
||||||
To configure VMware Tools, run the program "vmware-config-tools.pl" (this is
|
|
||||||
automatically done for you at the end of the installation/upgrade
|
|
||||||
process if you answer "yes" to the last question). You must have super user
|
|
||||||
privileges (i.e. be logged as root) to run it.
|
|
||||||
|
|
||||||
vmware-config-tools.pl
|
|
||||||
|
|
||||||
This will teach VMware Tools how to run on your current Linux kernel.
|
|
||||||
If you reboot your machine with a new kernel that VMware Tools
|
|
||||||
doesn't know yet (because, let's say, you have upgraded your Linux system),
|
|
||||||
you will have to run this configuration program again.
|
|
||||||
Then, VMware Tools will know this new kernel once and for all.
|
|
||||||
______________________________________________________________________________
|
|
||||||
|
|
||||||
UNINSTALLING
|
|
||||||
|
|
||||||
To remove an existing installation, run the program
|
|
||||||
"vmware-uninstall-tools.pl".
|
|
||||||
You must have super user privileges (i.e. be logged as root) to run it.
|
|
||||||
|
|
||||||
vmware-uninstall-tools.pl
|
|
||||||
|
|
||||||
The uninstall process will delete all installed files, and will backup the
|
|
||||||
files that have been modified since they have been installed.
|
|
||||||
______________________________________________________________________________
|
|
||||||
|
|
||||||
|
|
||||||
We hope you will enjoy this product,
|
|
||||||
|
|
||||||
--The VMware team.
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
For complete VMware(TM) product documentation, please use the product
|
|
||||||
Help menu or refer to http://www.vmware.com/support.
|
|
||||||
File diff suppressed because it is too large
Load Diff
1141
etc/installer.sh
1141
etc/installer.sh
File diff suppressed because it is too large
Load Diff
|
|
@ -1,64 +0,0 @@
|
||||||
.encoding = "UTF-8"
|
|
||||||
monolithic.version = "10.0.5"
|
|
||||||
svga33.version = "10.3.0.0"
|
|
||||||
svga4.version = "10.4.0.0"
|
|
||||||
vmmouse42.version = "1.0.0.0"
|
|
||||||
svga42.version = "10.10.2.0"
|
|
||||||
vmmouse43.version = "12.6.4.0"
|
|
||||||
svga43.version = "10.16.7.0"
|
|
||||||
vmmouse43_64.version = "12.6.4.0"
|
|
||||||
svga43_64.version = "10.16.7.0"
|
|
||||||
vmmouse67.version = "12.6.4.0"
|
|
||||||
svga67.version = "10.16.7.0"
|
|
||||||
vmmouse67_64.version = "12.6.4.0"
|
|
||||||
svga67_64.version = "10.16.7.0"
|
|
||||||
vmmouse68.version = "12.6.4.0"
|
|
||||||
svga68.version = "10.16.7.0"
|
|
||||||
vmmouse68_64.version = "12.6.4.0"
|
|
||||||
svga68_64.version = "10.16.7.0"
|
|
||||||
vmmouse70.version = "12.7.0.0"
|
|
||||||
svga70.version = "11.0.99.4"
|
|
||||||
vmmouse70_64.version = "12.7.0.0"
|
|
||||||
svga70_64.version = "11.0.99.4"
|
|
||||||
vmmouse71.version = "12.7.0.0"
|
|
||||||
svga71.version = "11.0.99.4"
|
|
||||||
vmmouse71_64.version = "12.7.0.0"
|
|
||||||
svga71_64.version = "11.0.99.4"
|
|
||||||
vmmouse73.version = "12.7.0.0"
|
|
||||||
svga73.version = "11.0.99.4"
|
|
||||||
vmmouse73_64.version = "12.7.0.0"
|
|
||||||
svga73_64.version = "11.0.99.4"
|
|
||||||
vmmouse73_99.version = "12.7.0.0"
|
|
||||||
svga73_99.version = "11.0.99.4"
|
|
||||||
vmmouse73_99_64.version = "12.7.0.0"
|
|
||||||
svga73_99_64.version = "11.0.99.4"
|
|
||||||
vmmouse74.version = "12.7.0.0"
|
|
||||||
svga74.version = "11.0.99.4"
|
|
||||||
vmmouse74_64.version = "12.7.0.0"
|
|
||||||
svga74_64.version = "11.0.99.4"
|
|
||||||
vmmouse75.version = "12.7.0.0"
|
|
||||||
svga75.version = "11.0.99.4"
|
|
||||||
vmmouse75_64.version = "12.7.0.0"
|
|
||||||
svga75_64.version = "11.0.99.4"
|
|
||||||
vmmouse76.version = "12.7.0.0"
|
|
||||||
svga76.version = "11.0.99.4"
|
|
||||||
vmmouse76_64.version = "12.7.0.0"
|
|
||||||
svga76_64.version = "11.0.99.4"
|
|
||||||
checkvm.version = "10.0.5.520"
|
|
||||||
vmtoolsd.version = "10.0.5.520"
|
|
||||||
upgrader.version = "10.0.5.520"
|
|
||||||
hgfsclient.version = "10.0.5.520"
|
|
||||||
hgfsmounter.version = "10.0.5.520"
|
|
||||||
vmguestlib.version = "10.0.5.520"
|
|
||||||
vmguestlibjava.version = "10.0.5.520"
|
|
||||||
toolbox-cmd.version = "10.0.5.520"
|
|
||||||
guestproxycerttool.version = "10.0.5.520"
|
|
||||||
vmci.version = "9.8.1.0"
|
|
||||||
vmhgfs.version = "2.0.17.1"
|
|
||||||
vmmemctl.version = "1.3.2.0"
|
|
||||||
vmsync.version = "1.1.0.1"
|
|
||||||
vmxnet.version = "2.1.0.0"
|
|
||||||
vmxnet3.version = "1.4.2.0"
|
|
||||||
vmblock.version = "1.1.2.0"
|
|
||||||
vsock.version = "9.8.1.0"
|
|
||||||
pvscsi.version = "1.2.3.0"
|
|
||||||
|
|
@ -1,70 +0,0 @@
|
||||||
##############################################################
|
|
||||||
# Copyright (c) 2011-2015 VMware, Inc. All rights reserved.
|
|
||||||
##############################################################
|
|
||||||
#
|
|
||||||
# German translation catalog.
|
|
||||||
#
|
|
||||||
# Please follow a few guidelines when editing this file:
|
|
||||||
# . Try to maintain formatting (e.g., indentation and line breaks).
|
|
||||||
# . Avoid long lines by breaking them into multiple lines.
|
|
||||||
# . Catalogs *must* be in UTF-8.
|
|
||||||
# . Try to keep the file sorted by message id.
|
|
||||||
#
|
|
||||||
|
|
||||||
addsubj.fail = "%1$s: Das Hinzufügen des Alias für den Benutzer '%2$s': %3$s ist fehlgeschlagen.\n"
|
|
||||||
addsubj.success = "%1$s: Alias hinzugefügt\n"
|
|
||||||
|
|
||||||
addoptions.comment = "Inhaberkommentar"
|
|
||||||
|
|
||||||
addoptions.file = "PEM-Dateiname"
|
|
||||||
|
|
||||||
addoptions.global = "Zertifikat der globalen Zuordnungsdatei hinzufügen"
|
|
||||||
|
|
||||||
addoptions.subject = "Der SAML-Inhaber"
|
|
||||||
|
|
||||||
addoptions.username = "Benutzer, dessen Zertifikatsspeicher hinzugefügt wird zu"
|
|
||||||
|
|
||||||
addoptions.verbose = "Detaillierter Vorgang"
|
|
||||||
|
|
||||||
|
|
||||||
cmdline.parse = "Die Analyse der Befehlszeile ist fehlgeschlagen"
|
|
||||||
|
|
||||||
cmdline.summary.pemfile = "PEM-Datei"
|
|
||||||
cmdline.summary.subject = "Inhaber"
|
|
||||||
cmdline.summary.username = "Benutzername"
|
|
||||||
cmdline.summary.comm = "Kommentar"
|
|
||||||
|
|
||||||
list.comment = "Kommentar"
|
|
||||||
list.count = "%1$s: Es wurden %2$d Aliase für den Benutzer '%3$s' gefunden.\n"
|
|
||||||
|
|
||||||
list.error = "%1$s: Die Auflistung der Aliase für den Benutzer '%2$s': %3$s ist fehlgeschlagen.\n"
|
|
||||||
list.subject = "Inhaber"
|
|
||||||
|
|
||||||
listmapped.count = "%1$s: Es wurden %2$d zugeordnete Aliase gefunden.\n"
|
|
||||||
|
|
||||||
listmapped.error = "%1$s: Die Auflistung der zugeordneten Aliase %2$s ist fehlgeschlagen.\n"
|
|
||||||
|
|
||||||
listmapped.subject = "Inhaber"
|
|
||||||
|
|
||||||
listmapped.username = "Benutzername"
|
|
||||||
|
|
||||||
listoptions.username = "Benutzer, dessen Zertifikatsspeicher abgefragt wird"
|
|
||||||
|
|
||||||
listoptions.verbose = "Detaillierter Vorgang"
|
|
||||||
|
|
||||||
loadfile.fail = "%1$s: PEM-Datei '%2$s' kann nicht gelesen werden\n"
|
|
||||||
|
|
||||||
name.any = "<ALLE>"
|
|
||||||
|
|
||||||
removesubj.fail = "%1$s: Das Entfernen des Alias für den Benutzer '%2$s': %3$s ist fehlgeschlagen.\n"
|
|
||||||
|
|
||||||
removesubj.success = "%1$s: Alias entfernt\n"
|
|
||||||
|
|
||||||
removeoptions.file = "PEM-Dateiname"
|
|
||||||
|
|
||||||
removeoptions.subject = "Der SAML-Inhaber"
|
|
||||||
removeoptions.username = "Benutzer, dessen Zertifikatsspeicher entfernt wurde aus"
|
|
||||||
|
|
||||||
removeoptions.verbose = "Detaillierter Vorgang"
|
|
||||||
|
|
||||||
vgauth.init.failed = "Die Initialisierung von VGAuth ist fehlgeschlagen"
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
##############################################################
|
|
||||||
# Copyright (c) 2011-2015 VMware, Inc. All rights reserved.
|
|
||||||
##############################################################
|
|
||||||
#
|
|
||||||
# German translation catalog.
|
|
||||||
#
|
|
||||||
# Please follow a few guidelines when editing this file:
|
|
||||||
# . Try to maintain formatting (e.g., indentation and line breaks).
|
|
||||||
# . Avoid long lines by breaking them into multiple lines.
|
|
||||||
# . Catalogs *must* be in UTF-8.
|
|
||||||
# . Try to keep the file sorted by message id.
|
|
||||||
# . ids use the form filename.object.messagetype
|
|
||||||
|
|
||||||
auth.password.invalid = "Benutzername und Kennwort für '%1$s' stimmen nicht überein"
|
|
||||||
auth.password.valid = "Benutzername und Kennwort wurden erfolgreich für '%1$s' bestätigt"
|
|
||||||
auth.sspi.badid = "Versuch der Authentifizierung mithilfe einer ungültigen oder abgelaufenen SSPI-Anfrage-ID: %1$u"
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
||||||
##############################################################
|
|
||||||
# Copyright (c) 2011-2015 VMware, Inc. All rights reserved.
|
|
||||||
##############################################################
|
|
||||||
#
|
|
||||||
# German translation catalog.
|
|
||||||
#
|
|
||||||
# Please follow a few guidelines when editing this file:
|
|
||||||
# . Try to maintain formatting (e.g., indentation and line breaks).
|
|
||||||
# . Avoid long lines by breaking them into multiple lines.
|
|
||||||
# . Catalogs *must* be in UTF-8.
|
|
||||||
# . Try to keep the file sorted by message id.
|
|
||||||
# . ids use the form filename.object.messagetype
|
|
||||||
|
|
||||||
proto.attack = "Möglicher Sicherheitsangriff! Der Anfragetyp %1$d verfügt über einen Benutzernamen (%2$s), der nicht mit dem Pipe-Eigentümer (%3$s) übereinstimmt!"
|
|
||||||
|
|
||||||
validate.samlBearer.fail = "Die Überprüfung des SAML-Träger-Token ist fehlgeschlagen: %1$d"
|
|
||||||
|
|
||||||
validate.samlBearer.success = "Überprüfter SAML-Träger-Token für den Benutzer '%1$s'"
|
|
||||||
|
|
||||||
alias.addid = "Dem Aliasspeicher im Eigentum von '%1$s' durch den Benutzer '%2$s' hinzugefügtes Alias"
|
|
||||||
|
|
||||||
alias.dir.badperm = "Das Aliasspeicherverzeichnis '%1$s' verfügt über unzulässige Eigentümer oder Berechtigungen. Alle aktuell in '%2$s' gespeicherte Aliase stehen für die Authentifizierung nicht zur Verfügung"
|
|
||||||
|
|
||||||
alias.dir.notadir = "Das Aliasspeicherverzeichnis '%1$s' ist vorhanden, ist aber kein Verzeichnis"
|
|
||||||
|
|
||||||
alias.dir.renamefail = "Das Umbenennen des verdächtigen Aliasspeicherverzeichnisses '%1$s' in '%2$s' ist fehlgeschlagen"
|
|
||||||
|
|
||||||
|
|
||||||
alias.alias.badfile = "Der Aliasspeicher '%1$s' ist vorhanden, ist aber keine ordnungsgemäße Datei. Die Aliase für den Benutzer '%2$s' stehen für die Authentifizierung nicht zur Verfügung"
|
|
||||||
|
|
||||||
alias.alias.badperm = "Der Aliasspeicher '%1$s' verfügt über unzulässige Eigentümer oder Berechtigungen. Die Aliase für den Benutzer '%2$s' stehen für die Authentifizierung nicht zur Verfügung"
|
|
||||||
|
|
||||||
alias.alias.rename = "Der verdächtige Aliasspeicher '%1$s' wurde in '%2$s' umbenannt"
|
|
||||||
|
|
||||||
alias.alias.renamefail = "Das Umbenennen des verdächtigen Aliasspeichers '%1$s' in '%2$s' ist fehlgeschlagen"
|
|
||||||
|
|
||||||
alias.mapfile.badperm = "Die Zuordungsdatei '%1$s' des Aliasspeichers verfügt über unzulässige Eigentümer oder Berechtigungen. Die Aliase in der Zuordnungsdatei stehen für eine Authentifizierung nicht zur Verfügung"
|
|
||||||
|
|
||||||
alias.mapping.badfile = "Die Zuordnungsdatei '%1$s' ist vorhanden, ist aber keine ordnungsgemäße Datei. Die Aliase in der Zuordnungsdatei stehen für eine Authentifizierung nicht zur Verfügung"
|
|
||||||
|
|
||||||
alias.removeid = "Das Alias wurde aus dem Aliasspeicher im Eigentum von '%1$s' durch den Benutzer '%2$s' entfernt"
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
##############################################################
|
|
||||||
# Copyright (c) 2010-2015 VMware, Inc. All rights reserved.
|
|
||||||
##############################################################
|
|
||||||
#
|
|
||||||
# German translation catalog.
|
|
||||||
#
|
|
||||||
# Please follow a few guidelines when editing this file:
|
|
||||||
# . Try to maintain formatting (e.g., indentation and line breaks).
|
|
||||||
# . Avoid long lines by breaking them into multiple lines.
|
|
||||||
# . Catalogs *must* be in UTF-8.
|
|
||||||
# . Try to keep the file sorted by message id.
|
|
||||||
#
|
|
||||||
|
|
||||||
displayDPI.logout.caption = "VMware Tools"
|
|
||||||
|
|
||||||
displayDPI.logout.message = "VMware Tools verfügt über veränderte Größeneinstellungen für die Benutzeroberfläche. Für die Übernahme dieser Änderungen müssen Sie sich abmelden. Schließen Sie alle Anwendungen und klicken Sie auf 'OK', um sich jetzt abzumelden, oder klicken Sie auf 'Abbrechen', um sich später abzumelden."
|
|
||||||
|
|
||||||
pmtimer.warning.caption = "Konfigurationsfehler des Gastbetriebssystems"
|
|
||||||
|
|
||||||
pmtimer.warning.text = "Der VMware Tools-Dienst hat einen Fehler bei der Konfiguration des Betriebssystems dieser virtuellen Maschine erkannt. In der Datei 'Boot.ini' ist der Parameter „/usepmtimer“ boot angegeben. Dieser Parameter führt zu einer schwerwiegenden Beeinträchtigung der VM-Leistung bei bestimmten Arbeitslasten.\n\nEntfernen Sie den „usepmtimer“-Parameter aus der Datei 'Boot.ini' und starten Sie die VM neu, um die VM-Leistung zu verbessern.\n\nZusätzliche Details finden Sie im VMware Knowledgebase-Artikel KB 1011714."
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
##############################################################
|
|
||||||
# Copyright (c) 2010-2015 VMware, Inc. All rights reserved.
|
|
||||||
##############################################################
|
|
||||||
#
|
|
||||||
# German translation catalog.
|
|
||||||
#
|
|
||||||
# Please follow a few guidelines when editing this file:
|
|
||||||
# . Try to maintain formatting (e.g., indentation and line breaks).
|
|
||||||
# . Avoid long lines by breaking them into multiple lines.
|
|
||||||
# . Catalogs *must* be in UTF-8.
|
|
||||||
# . Try to keep the file sorted by message id.
|
|
||||||
#
|
|
||||||
|
|
||||||
redirect.logout.message = "VMware Tools hat die Einstellungen zum Aktiveren der gemeinsamen Nutzung von Daten mit dem Host geändert. Sie müssen sich abmelden, damit die Einstellungen übernommen werden. Klicken Sie auf 'OK', um sich jetzt abzumelden. Klicken Sie auf 'Abbrechen', um sich später abzumelden."
|
|
||||||
|
|
||||||
redirect.logout.title = "VMware Tools"
|
|
||||||
|
|
||||||
sharedfolders.name = "VMware-Ordnerfreigaben"
|
|
||||||
|
|
||||||
|
|
@ -1,161 +0,0 @@
|
||||||
##############################################################
|
|
||||||
# Copyright (c) 2010-2015 VMware, Inc. All rights reserved.
|
|
||||||
##############################################################
|
|
||||||
#
|
|
||||||
# German translation catalog.
|
|
||||||
#
|
|
||||||
# Please follow a few guidelines when editing this file:
|
|
||||||
# . Try to maintain formatting (e.g., indentation and line breaks).
|
|
||||||
# . Avoid long lines by breaking them into multiple lines.
|
|
||||||
# . Catalogs *must* be in UTF-8.
|
|
||||||
# . Try to keep the file sorted by message id.
|
|
||||||
#
|
|
||||||
|
|
||||||
arg.command = "Befehl"
|
|
||||||
|
|
||||||
arg.devicename = "Gerätename"
|
|
||||||
|
|
||||||
arg.logging.level = "Ebene der Protokollierung"
|
|
||||||
|
|
||||||
arg.logging.service = "Dienstname der Protokollierung"
|
|
||||||
|
|
||||||
arg.logging.subcommand = "Vorgang der Protokollierung"
|
|
||||||
|
|
||||||
arg.mountpoint = "Mount-Punkt"
|
|
||||||
|
|
||||||
arg.scriptpath = "Skriptpfad"
|
|
||||||
|
|
||||||
arg.scripttype = "Skripttyp"
|
|
||||||
|
|
||||||
arg.subcommand = "Unterbefehl"
|
|
||||||
|
|
||||||
device.connect.error = "Gerät '%1$s' kann nicht angeschlossen werden.\n"
|
|
||||||
|
|
||||||
device.disconnect.error = "Das Gerät '%1$s' kann nicht getrennt werden.\n"
|
|
||||||
|
|
||||||
device.notfound = "Fehler beim Abrufen der Schnittstelleninformationen: Gerät nicht gefunden.\n"
|
|
||||||
|
|
||||||
disk.shrink.canceled = "Vorgang zum Verkleinern der Festplatte abgebrochen.\n"
|
|
||||||
|
|
||||||
disk.shrink.complete = "Vorgang zum Verkleinern der Festplatte abgeschlossen.\n"
|
|
||||||
|
|
||||||
disk.shrink.conflict = "Fehler: Die Toolbox betrachtet die Festplattenverkleinerung als aktiviert, während der Host die Funktion als deaktiviert behandelt.\n\n Schließen Sie die Toolbox und öffnen Sie sie erneut, um eine Synchronisierung mit dem Host vorzunehmen.\n"
|
|
||||||
|
|
||||||
disk.shrink.disabled = "Das Verkleinern von Festplatten ist für diese virtuelle Maschine deaktiviert.\n\nDie Verkleinerung ist für verknüpfte Klone, übergeordnete Elemente verknüpfter Klone, \nFestplatten mit vorab zugewiesenem Speicherplatz, Snapshots oder aufgrund weiterer Faktoren deaktiviert. \nWeitere Informationen finden Sie im Benutzerhandbuch.\n"
|
|
||||||
|
|
||||||
disk.shrink.error = "Fehler beim Verkleinern der Festplatte: %1$s\n"
|
|
||||||
|
|
||||||
disk.shrink.incomplete = "Vorgang zum Verkleinern der Festplatte nicht abgeschlossen.\n"
|
|
||||||
|
|
||||||
disk.shrink.partition.error = "Partitionsdaten konnten nicht erfasst werden.\n"
|
|
||||||
|
|
||||||
disk.shrink.partition.notfound = "Die Partition %1$s wurde nicht gefunden\n"
|
|
||||||
|
|
||||||
disk.shrink.partition.unsupported = "Die Partition %1$s kann nicht verkleinert werden\n"
|
|
||||||
|
|
||||||
disk.shrink.unavailable = "Die Verkleinerungsfunktion ist nicht verfügbar,\n\nweil Sie entweder eine alte Version eines VMware-Produkts ausführen oder weil zu viele Kommunikationskanäle offen sind.\n\nWenn Sie eine alte Version eines VMware-Produkts ausführen, sollten Sie ein Upgrade in Erwägung ziehen.\n\nWenn zu viele Kommunikationskanäle geöffnet sind, sollten Sie Ihre virtuelle Maschine aus- und anschließend wieder einschalten.\n"
|
|
||||||
|
|
||||||
disk.shrink.ignoreFreeSpaceWarnings = "Ignorieren Sie während des Verkleinerungsvorgangs etwaige Warnungen bezüglich des Speicherplatzes.\n"
|
|
||||||
|
|
||||||
disk.wipe.ignoreFreeSpaceWarnings = "Ignorieren Sie während des Wiper-Vorgangs etwaige Warnungen bezüglich des Speicherplatzes.\n"
|
|
||||||
|
|
||||||
disk.wiper.error = "Fehler: %1$s"
|
|
||||||
|
|
||||||
disk.wiper.file.error = "Fehler, Erstellen der Wiper-Datei nicht möglich.\n"
|
|
||||||
|
|
||||||
disk.wiper.progress = "\rProgress: %1$d"
|
|
||||||
|
|
||||||
error.missing = "%1$s: %2$s fehlt\n"
|
|
||||||
|
|
||||||
error.noadmin.posix = "%1$s: Sie müssen root-Benutzer sein, um die %2$s-Vorgänge auszuführen.\n"
|
|
||||||
|
|
||||||
error.noadmin.win = "%1$s: Zum Ausführen der %2$s-Vorgänge sind Administratorberechtigungen erforderlich.\nVerwenden Sie eine Administrator-Eingabeaufforderung, um diese Aufgaben abzuschließen.\n"
|
|
||||||
|
|
||||||
error.novirtual = "%1$s muss innerhalb einer virtuellen Maschine ausgeführt werden.\n"
|
|
||||||
|
|
||||||
error.unknown = "%1$s: %2$s '%3$s' unbekannt\n"
|
|
||||||
|
|
||||||
help.device = "%1$s: Funktionen für die Hardwaregeräte der virtuellen Maschine\nNutzung: %2$s %3$s <Unterbefehl> [Argumente]\n'dev' ist der Name des Geräts.\n\nUnterbefehle:\n enable <dev>: Aktivieren des Geräts 'dev' \n disable <dev>: Deaktivieren des Geräts 'dev'\n list: Auflisten aller verfügbaren Geräte\n status <dev>: Ausgeben des Status eines Geräts\n"
|
|
||||||
|
|
||||||
help.disk = "%1$s: Führt Verkleinerungen von Festplatten durch\nNutzung: %2$s %3$s <Unterbefehl> [Argumente]\n\nUnterbefehle:\n list: Auflisten der verfügbaren Speicherorte\n shrink <Speicherort>: Löschen und Verkleinern eines Dateisystems am angegebenen Speicherort\n shrinkonly: Verkleinern alle Festplatten\n wipe <Speicherort>: Löschen eines Dateisystems am angegebenen Speicherort\n"
|
|
||||||
|
|
||||||
help.hint = "Siehe '%1$s %2$s%3$s%4$s' für weitere Informationen.\n"
|
|
||||||
|
|
||||||
help.logging = "%1$s: Toolsprotokollierung verändern\nNutzung: %2$s %3$s level <Unterbefehl> <Dienstname> <Ebene>\n\nUnterbefehle:\n get <Dienstname>: Anzeige der aktuellen Ebene\n set <Dienstname> <Ebene>: Einrichten der aktuellen Ebene\n\n<Dienstname> kann jeder unterstützte Dienst sein wie vmsvc oder vmusr\n<Ebene> kann für einen Fehler, ein kritisches Ereignis, eine Warnung, Info, Meldung oder ein Debugging stehen \n Standard ist %4$s\n"
|
|
||||||
|
|
||||||
help.main = "Nutzung: %1$s <Befehl> [Optionen] [Unterbefehl]<\nGeben> Sie '%2$s %3$s <Befehl>' für die Hilfe zu einem bestimmten Befehl ein.\Geben Sie '%4$s -v' für die Anzeige der Version von VMware Tools ein.\nVerwenden Sie den Parameter'-q' zur Ausblendung der stdout-Ausgabe.\nDie meisten Befehle verwenden einen Unterbefehl.\n\nVerfügbare Befehle:\n device\n disk\n logging\n script\n stat\n timesync\n upgrade (nicht für alle Betriebssysteme verfügbar)\n"
|
|
||||||
|
|
||||||
help.script = "%1$s: Steuerung der Skripts, die als Reaktion auf Betriebsvorgänge ausgeführt werden\nNutzung: %2$s %3$s <power|resume|suspend|shutdown> <Unterbefehl> [Argumente]\n\nUnterbefehle:\n enable: Aktivieren des angegebenen Skripts und Wiederherstellen dessen Pfads auf den Standardpfad\n disable: Deaktivieren des vorhandenen Skripts\n set <Vollständiger Pfad>: Festlegen des angegebenen Skripts auf den angegebenen Pfad\n default: Ausgeben des Standardpfads des angegebenen Skripts\n current: Ausgeben des aktuellen Pfads des angegebenen Skripts\n"
|
|
||||||
|
|
||||||
help.stat = "%1$s: Drucken von hilfreichen Gast- und Hostinformationen\nNutzung: %2$s %3$s <Unterbefehl>\n\nUnterbefehle:\n hosttime: Ausgeben der Hostuhrzeit\n speed: Ausgeben der CPU-Geschwindigkeit in MHz\nUnterbefehle nur für ESX-Gäste:\n sessionid: Ausgeben der aktuellen Sitzungs-ID\n balloon: Ausgeben der Balloon-Arbeitsspeicher-Informationen\n swap: Ausgeben der Auslagerungsinformationen für den Arbeitsspeicher\n memlimit: Ausgeben des Arbeitsspeicher-Limits\n memres: Ausgeben der Arbeitsspeicherreservierung\n cpures: Ausgeben der CPU-Reservierung\n cpulimit: Ausgeben des CPU-Limits\n"
|
|
||||||
|
|
||||||
help.timesync = "%1$s: Funktionen für die Steuerung der Zeitsynchronisierung auf dem Gastbetriebssystem\Nutzung: %2$s %3$s <Unterbefehl>\n\nUnterbefehle:\n enable: Aktivieren der Zeitsynchronisierung\n disable: Deaktivieren der Zeitsynchronisierung\n status: Ausgeben des Status der Zeitsynchronisierung\n"
|
|
||||||
|
|
||||||
help.upgrade = "%1$s: Funktionen für das Upgrade von VMware Tools.\nNutzung: %2$s %3$s <Unterbefehl> [Argumente]\nUnterbefehle:\n status: Überprüfen des Upgrade-Status für VMware Tools.\n start: Starten eines automatischen Upgrade von VMware Tools.\n\nDamit die Upgrades funktionieren, muss der VMware Tools-Dienst ausgeführt werden.\n"
|
|
||||||
|
|
||||||
option.disabled = "Deaktiviert"
|
|
||||||
|
|
||||||
option.enabled = "Aktiviert"
|
|
||||||
|
|
||||||
script.notfound = "%1$s ist nicht vorhanden.\n"
|
|
||||||
|
|
||||||
script.operation = "Vorgang"
|
|
||||||
|
|
||||||
script.unknownop = "Kein Skript für den Vorgang %1$s.\n"
|
|
||||||
|
|
||||||
script.write.error = "Fehler beim Schreiben der Konfiguration: %1$s\n"
|
|
||||||
|
|
||||||
stat.balloon.failed = "Balloon-Arbeitsspeicher konnte nicht abgerufen werden: %1$s\n"
|
|
||||||
|
|
||||||
stat.cpumax.failed = "CPU-Limit konnte nicht abgerufen werden: %1$s\n"
|
|
||||||
|
|
||||||
stat.cpumin.failed = "CPU-Mindestwert konnte nicht abgerufen werden: %1$s\n"
|
|
||||||
|
|
||||||
stat.formattime.failed = "Hostuhrzeit kann nicht formatiert werden.\n"
|
|
||||||
|
|
||||||
stat.get.failed = "Statistiken konnten nicht abgerufen werden: %1$s\n"
|
|
||||||
|
|
||||||
stat.getsession.failed = "Sitzungs-ID konnte nicht abgerufen werden: %1$s\n"
|
|
||||||
|
|
||||||
stat.getspeed.failed = "Prozessorgeschwindigkeit nicht abrufbar.\n"
|
|
||||||
|
|
||||||
stat.gettime.failed = "Hostuhrzeit konnte nicht abgerufen werden.\n"
|
|
||||||
|
|
||||||
stat.maxmem.failed = "Arbeitsspeicher-Limit konnte nicht abgerufen werden: %1$s\n"
|
|
||||||
|
|
||||||
stat.memres.failed = "Arbeitsspeicherreservierung konnte nicht abgerufen werden: %1$s\n"
|
|
||||||
|
|
||||||
stat.memswap.failed = "Ausgelagerter Arbeitsspeicher konnte nicht abgerufen werden: %1$s\n"
|
|
||||||
|
|
||||||
stat.openhandle.failed = "OpenHandle fehlgeschlagen: %1$s\n"
|
|
||||||
|
|
||||||
stat.update.failed = "UpdateInfo fehlgeschlagen: %1$s\n"
|
|
||||||
|
|
||||||
stat.processorSpeed.info = "%1$u MHz\n"
|
|
||||||
|
|
||||||
stat.memoryBalloon.info = "%1$u MB\n"
|
|
||||||
|
|
||||||
stat.memoryReservation.info = "%1$u MB\n"
|
|
||||||
|
|
||||||
stat.memorySwapped.info = "%1$u MB\n"
|
|
||||||
|
|
||||||
stat.memoryLimit.info = "%1$u MB\n"
|
|
||||||
|
|
||||||
stat.cpuReservation.info = "%1$u MHz\n"
|
|
||||||
|
|
||||||
stat.cpuLimit.info = "%1$u MHz\n"
|
|
||||||
|
|
||||||
upgrade.available = "Eine neue Version von VMware Tools steht zur Verfügung.\n"
|
|
||||||
|
|
||||||
upgrade.error.check_error = "Fehler beim Überprüfen der Verfügbarkeit von Upgrades.\n"
|
|
||||||
|
|
||||||
upgrade.error.error = "Fehler beim Starten des Upgrades von VMware Tools.\n"
|
|
||||||
|
|
||||||
upgrade.error.not_supported = "Der Host unterstützt kein automatisches Upgrade von VMware Tools.\n"
|
|
||||||
|
|
||||||
upgrade.error.unknown_reply = "Unerwartete Antwort vom Host: %1$s\n"
|
|
||||||
|
|
||||||
upgrade.started = "Das Upgrade wird durchgeführt.\n"
|
|
||||||
|
|
||||||
upgrade.uptodate = "VMware Tools ist auf dem neuesten Stand.\n"
|
|
||||||
|
|
||||||
|
|
@ -1,59 +0,0 @@
|
||||||
##############################################################
|
|
||||||
# Copyright (c) 2010-2015 VMware, Inc. All rights reserved.
|
|
||||||
##############################################################
|
|
||||||
#
|
|
||||||
# German translation catalog.
|
|
||||||
#
|
|
||||||
# Please follow a few guidelines when editing this file:
|
|
||||||
# . Try to maintain formatting (e.g., indentation and line breaks).
|
|
||||||
# . Avoid long lines by breaking them into multiple lines.
|
|
||||||
# . Catalogs *must* be in UTF-8.
|
|
||||||
# . Try to keep the file sorted by message id.
|
|
||||||
#
|
|
||||||
|
|
||||||
cmdline.background = "Wird im Hintergrund ausgeführt und erstellt eine pid-Datei."
|
|
||||||
|
|
||||||
cmdline.background.pidfile = "pidfile"
|
|
||||||
|
|
||||||
cmdline.blockfd = "Dateideskriptor für das Dateisystem, das VMware blockiert."
|
|
||||||
|
|
||||||
cmdline.blockfd.fd = "fd"
|
|
||||||
|
|
||||||
cmdline.commonpath = "Pfad zum Plug-In-Verzeichnis."
|
|
||||||
|
|
||||||
cmdline.config = "Verwendet die Konfigurationsdatei im angegebenen Pfad."
|
|
||||||
|
|
||||||
cmdline.debug = "Wird unter Verwendung des angegebenen Plug-Ins im Debug-Modus ausgeführt."
|
|
||||||
|
|
||||||
cmdline.displayname = "Anzeigename des Dienstes (wird nur mit -i verwendet)."
|
|
||||||
|
|
||||||
cmdline.displayname.argument = "Name"
|
|
||||||
|
|
||||||
cmdline.install = "Installiert den Dienst mit dem Service Control Manager (SCM)."
|
|
||||||
|
|
||||||
cmdline.install.args = "args"
|
|
||||||
|
|
||||||
cmdline.kill = "Stoppt eine laufende Instanz eines Tools-Dienstes."
|
|
||||||
|
|
||||||
cmdline.log = "Ignoriert; für Abwärtskompatibilität beibehalten."
|
|
||||||
|
|
||||||
cmdline.name = "Name des Dienstes, der gestartet wird."
|
|
||||||
|
|
||||||
cmdline.name.argument = "svcname"
|
|
||||||
|
|
||||||
cmdline.path = "Pfad"
|
|
||||||
|
|
||||||
cmdline.pluginpath = "Pfad des Plug-In-Verzeichnisses."
|
|
||||||
|
|
||||||
cmdline.rpc = "Sendet einen RPC-Befehl an den Host und wird beendet."
|
|
||||||
|
|
||||||
cmdline.rpc.command = "Befehl"
|
|
||||||
|
|
||||||
cmdline.rpcerror = "Befehl konnte nicht an VMware-Hypervisor gesendet werden."
|
|
||||||
|
|
||||||
cmdline.state = "Führt einen Dump des internen Zustands der Instanz eines laufenden Dienstes in die Protokolle aus."
|
|
||||||
|
|
||||||
cmdline.uninstall = "Deinstalliert den Dienst vom Service Control Manager (SCM)."
|
|
||||||
|
|
||||||
cmdline.version = "Druckt die Version des Daemons und wird beendet."
|
|
||||||
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
##############################################################
|
|
||||||
# Copyright (c) 2011-2015 VMware, Inc. All rights reserved.
|
|
||||||
##############################################################
|
|
||||||
#
|
|
||||||
# English translation catalog.
|
|
||||||
#
|
|
||||||
# Please follow a few guidelines when editing this file:
|
|
||||||
# . Try to maintain formatting (e.g., indentation and line breaks).
|
|
||||||
# . Avoid long lines by breaking them into multiple lines.
|
|
||||||
# . Catalogs *must* be in UTF-8.
|
|
||||||
# . Try to keep the file sorted by message id.
|
|
||||||
#
|
|
||||||
|
|
||||||
addsubj.fail = "%1$s: Failed to add alias for user '%2$s': %3$s.\n"
|
|
||||||
addsubj.success = "%1$s: alias added\n"
|
|
||||||
|
|
||||||
addoptions.comment = "subject comment"
|
|
||||||
|
|
||||||
addoptions.file = "PEM file name"
|
|
||||||
|
|
||||||
addoptions.global = "Add the certificate to the global mapping file"
|
|
||||||
|
|
||||||
addoptions.subject = "The SAML subject"
|
|
||||||
|
|
||||||
addoptions.username = "User whose certificate store is being added to"
|
|
||||||
|
|
||||||
addoptions.verbose = "Verbose operation"
|
|
||||||
|
|
||||||
|
|
||||||
cmdline.parse = "Command line parsing failed"
|
|
||||||
|
|
||||||
cmdline.summary.pemfile = "PEM-file"
|
|
||||||
cmdline.summary.subject = "subject"
|
|
||||||
cmdline.summary.username = "username"
|
|
||||||
cmdline.summary.comm = "comment"
|
|
||||||
|
|
||||||
list.comment = "Comment"
|
|
||||||
list.count = "%1$s Found %2$d aliases for user '%3$s'\n"
|
|
||||||
|
|
||||||
list.error = "%1$s: Failed to list aliases for user '%2$s': %3$s.\n"
|
|
||||||
list.subject = "Subject"
|
|
||||||
|
|
||||||
listmapped.count = "%1$s Found %2$d mapped aliases\n"
|
|
||||||
|
|
||||||
listmapped.error = "%1$s: Failed to list mapped aliases: %2$s.\n"
|
|
||||||
|
|
||||||
listmapped.subject = "Subject"
|
|
||||||
|
|
||||||
listmapped.username = "Username"
|
|
||||||
|
|
||||||
listoptions.username =
|
|
||||||
"User whose certificate store is being queried"
|
|
||||||
|
|
||||||
listoptions.verbose = "Verbose operation"
|
|
||||||
|
|
||||||
loadfile.fail = "%1$s: Unable to read PEM file '%2$s'\n"
|
|
||||||
|
|
||||||
name.any = "<ANY>"
|
|
||||||
|
|
||||||
removesubj.fail = "%1$s: Failed to remove alias for user '%2$s': %3$s.\n"
|
|
||||||
|
|
||||||
removesubj.success = "%1$s: alias removed\n"
|
|
||||||
|
|
||||||
removeoptions.file = "PEM file name"
|
|
||||||
|
|
||||||
removeoptions.subject = "The SAML subject"
|
|
||||||
removeoptions.username =
|
|
||||||
"User whose certificate store is being removed from"
|
|
||||||
|
|
||||||
removeoptions.verbose = "Verbose operation"
|
|
||||||
|
|
||||||
vgauth.init.failed = "Failed to init VGAuth"
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
##############################################################
|
|
||||||
# Copyright (c) 2011-2015 VMware, Inc. All rights reserved.
|
|
||||||
##############################################################
|
|
||||||
#
|
|
||||||
# English translation catalog.
|
|
||||||
#
|
|
||||||
# Please follow a few guidelines when editing this file:
|
|
||||||
# . Try to maintain formatting (e.g., indentation and line breaks).
|
|
||||||
# . Avoid long lines by breaking them into multiple lines.
|
|
||||||
# . Catalogs *must* be in UTF-8.
|
|
||||||
# . Try to keep the file sorted by message id.
|
|
||||||
# . ids use the form filename.object.messagetype
|
|
||||||
|
|
||||||
auth.password.invalid = "Username and password mismatch for '%1$s'"
|
|
||||||
auth.password.valid = "Username and password successfully validated for '%1$s'"
|
|
||||||
auth.sspi.badid = "Attempt to authenticate using an invalid or expired SSPI challenge ID: %1$u"
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
||||||
##############################################################
|
|
||||||
# Copyright (c) 2011-2015 VMware, Inc. All rights reserved.
|
|
||||||
##############################################################
|
|
||||||
#
|
|
||||||
# English translation catalog.
|
|
||||||
#
|
|
||||||
# Please follow a few guidelines when editing this file:
|
|
||||||
# . Try to maintain formatting (e.g., indentation and line breaks).
|
|
||||||
# . Avoid long lines by breaking them into multiple lines.
|
|
||||||
# . Catalogs *must* be in UTF-8.
|
|
||||||
# . Try to keep the file sorted by message id.
|
|
||||||
# . ids use the form filename.object.messagetype
|
|
||||||
|
|
||||||
proto.attack = "Possible security attack! Request type %1$d has a userName (%2$s) which doesn't match the pipe owner (%3$s)!"
|
|
||||||
|
|
||||||
validate.samlBearer.fail = "Validation of SAML bearer token failed: %1$d"
|
|
||||||
|
|
||||||
validate.samlBearer.success = "Validated SAML bearer token for user '%1$s'"
|
|
||||||
|
|
||||||
alias.addid = "Alias added to Alias store owned by '%1$s' by user '%2$s'"
|
|
||||||
|
|
||||||
alias.dir.badperm = "Alias store directory '%1$s' has incorrect owner or permissions. Any Aliases currently stored in '%2$s' will not be available for authentication"
|
|
||||||
|
|
||||||
alias.dir.notadir = "Alias store directory '%1$s' exists but is not a directory"
|
|
||||||
|
|
||||||
alias.dir.renamefail = "Failed to rename suspect Alias store directory '%1$s' to '%2$s'"
|
|
||||||
|
|
||||||
|
|
||||||
alias.alias.badfile = "Alias store '%1$s' exists but is not a regular file. The Aliases for user '%2$s' will not be available for authentication"
|
|
||||||
|
|
||||||
alias.alias.badperm = "Alias store '%1$s' has incorrect owner or permissions. The Aliases for user '%2$s' will not be available for authentication"
|
|
||||||
|
|
||||||
alias.alias.rename = "Suspect Alias store '%1$s' renamed to '%2$s'"
|
|
||||||
|
|
||||||
alias.alias.renamefail = "Failed to rename suspect Alias store '%1$s' to '%2$s'"
|
|
||||||
|
|
||||||
alias.mapfile.badperm = "Alias store mapping file '%1$s' has incorrect owner or permissions. The Aliases in the mapping file will not be available for authentication"
|
|
||||||
|
|
||||||
alias.mapping.badfile = "Mapping file '%1$s' exists but is not a regular file. The Aliases in the mapping file will not be available for authentication"
|
|
||||||
|
|
||||||
alias.removeid = "Alias removed from Alias store owned by '%1$s' by user '%2$s'"
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
##############################################################
|
|
||||||
# Copyright (c) 2010-2015 VMware, Inc. All rights reserved.
|
|
||||||
##############################################################
|
|
||||||
#
|
|
||||||
# English translation catalog.
|
|
||||||
#
|
|
||||||
# Please follow a few guidelines when editing this file:
|
|
||||||
# . Try to maintain formatting (e.g., indentation and line breaks).
|
|
||||||
# . Avoid long lines by breaking them into multiple lines.
|
|
||||||
# . Catalogs *must* be in UTF-8.
|
|
||||||
# . Try to keep the file sorted by message id.
|
|
||||||
#
|
|
||||||
|
|
||||||
displayDPI.logout.caption = "VMware Tools"
|
|
||||||
|
|
||||||
displayDPI.logout.message = "VMware Tools has modified the user interface size settings. You must log off to apply these changes. Close all applications and press OK to log off now, or press Cancel to log off later."
|
|
||||||
|
|
||||||
pmtimer.warning.caption = "Operating System Configuration Error"
|
|
||||||
|
|
||||||
pmtimer.warning.text = "The VMware Tools Service detected an error with this virtual machine's operating system configuration. The Boot.ini file specifies the |22/usepmtimer|22 boot parameter. This parameter severely degrades VM performance under certain workloads.\n\nRemove the |22usepmtimer|22 parameter from the Boot.ini file and restart the VM, to improve VM performance.\n\nSee VMware Knowledge Base (KB) article KB 1011714 for additional details."
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
##############################################################
|
|
||||||
# Copyright (c) 2010-2015 VMware, Inc. All rights reserved.
|
|
||||||
##############################################################
|
|
||||||
#
|
|
||||||
# English translation catalog.
|
|
||||||
#
|
|
||||||
# Please follow a few guidelines when editing this file:
|
|
||||||
# . Try to maintain formatting (e.g., indentation and line breaks).
|
|
||||||
# . Avoid long lines by breaking them into multiple lines.
|
|
||||||
# . Catalogs *must* be in UTF-8.
|
|
||||||
# . Try to keep the file sorted by message id.
|
|
||||||
#
|
|
||||||
|
|
||||||
redirect.logout.message = "VMware Tools has modified settings to enable sharing data with the host. You must log off to apply these settings. Press OK to log off now. Press Cancel to log off later."
|
|
||||||
|
|
||||||
redirect.logout.title = "VMware Tools"
|
|
||||||
|
|
||||||
sharedfolders.name = "VMware Shared Folders"
|
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue