Page Menu
Home
ClusterLabs Projects
Search
Configure Global Search
Log In
Files
F5519351
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
4 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/ccs2cib b/ccs2cib
index 52600c385b..f7322f07f4 100755
--- a/ccs2cib
+++ b/ccs2cib
@@ -1,166 +1,174 @@
#!/bin/sh
XSL_FILE="@XSL_FILE@"
SAXON_JAR="@SAXON_JAR@"
DEBUG=0
export XSL_FILE SAXON_JAR DEBUG
#
#
#
die()
{
echo "$*"
exit 1
}
_validate()
{
if [ $DEBUG -eq 1 ]; then
echo "debug: adding . to $PATH"
export PATH="$PATH:."
fi
which ccs_flatten &> /dev/null || die "Can't find ccs_flatten in path!"
which java &> /dev/null || die "Can not find java in path!"
if [ -z "$XSL_FILE" ] || [ "$XSL_FILE" = "@XSL_FILE@" ]; then
if [ $DEBUG -eq 1 ]; then
XSL_FILE=./cluconf2cib.xsl
echo "debug: using $XSL_FILE"
else
die "Please specify path to XSLT script using -X <path>."
fi
fi
if [ -z "$SAXON_JAR" ] || [ "$SAXON_JAR" = "@SAXON_JAR@" ]; then
if [ $DEBUG -eq 1 ]; then
SAXON_JAR=/usr/share/java/saxon.jar
echo "debug: using $SAXON_JAR"
else
die "Please specify path to saxon.jar using -J <path>."
fi
fi
[ -d /usr/share/cluster ] || die "/usr/share/cluster does not exist."
[ -f /usr/share/cluster/service.sh ] || die "Missing rgmanager resource agents?"
[ -f "$XSL_FILE" ] || die "$XSL_FILE does not exist!"
[ -f "$SAXON_JAR" ] || die "$SAXON_JAR does not exist!"
[ -f "$1" ] || die "Input file $1 not found"
if [ -f "$2" ]; then
[ $3 -ne 0 ] || die "Output file $2 exists; please remove or use -f"
fi
return 0
}
help()
{
cat <<EOT
usage: $(basename $1) [options]
-i input_file Configuration input [/etc/cluster/cluster.conf]
-o output_file File to output [cib.xml]
-f Force update (remove output_file if it exists)
-R Disable rgmanager in input file after completion
WARNING: Edits config file in-place
-r output_conf Disable rgmanager, store result in output_conf
instead of modifying input_file in place.
-n Don't call crm_verify on the new cib.xml
-d Enable development/debug mode
-X <path> Specify path to XSLT script
-J <path> Specify path to Saxon jar file
-h This message
EOT
}
# main
declare conf_in cib_out xsl_file saxon_jar conf_out opt do_update tmp
declare force_update no_verify
# defaults
conf_in="/etc/cluster/cluster.conf"
cib_out="cib-converted.xml"
conf_out=""
do_update=0
no_verify=0
tmp=$(mktemp /tmp/ccs2cib.tmp.XXXXXX)
while getopts i:o:X:J:Rr:dnhf opt; do
case $opt in
d)
DEBUG=1
;;
i)
conf_in="$OPTARG"
;;
o)
cib_out="$OPTARG"
;;
R)
do_update=1
;;
r)
do_update=1
conf_out="$OPTARG"
;;
n)
no_verify=1
;;
f)
force_update=1
;;
X)
XSL_FILE="$OPTARG"
;;
J)
SAXON_JAR="$OPTARG"
;;
h)
help $0
exit 0
;;
*)
echo "Error parsing $opt"
help $0
exit 1
;;
esac
done
[ -z "$conf_out" ] && conf_out="$conf_in"
_validate "$conf_in" "$cib_out" $force_update
+echo " * Converting configuration"
if ! ccs_flatten "$conf_in" > $tmp; then
rm -f $tmp
- die ccs_flatten failed.
+ die "Flattening of configuration file failed."
fi
if ! java -jar $SAXON_JAR -xsl:$XSL_FILE $tmp > $cib_out; then
rm -f $tmp
- die Conversion failed.
+ die "Conversion failed."
fi
+echo " * Calling crm_verify to validate the configuration."
+
if [ $no_verify -eq 0 ]; then
- crm_verify --xml-file $cib_out -V
- ret=$?
- if [ $ret -ne 0 ]; then
- echo FAILED.
- exit $ret
- fi
+ crm_verify --xml-file $cib_out -V || die "Validation failed."
fi
if [ $do_update -ne 0 ]; then
+ echo " * Disabling rgmanager in $conf_out"
rm -f $tmp
- cp "$conf_in" "$tmp"
- disable_rgmanager "$tmp" > "$conf_out"
+ disable_rgmanager "$conf_in" > "$tmp" || die "Failed to disable rgmanager"
+ mv "$tmp" "$conf_out"
+ if [ "$conf_out" = "/etc/cluster/cluster.conf" ]; then
+ if clustat -Q &> /dev/null; then
+ echo " * Calling cman_tool to update cluster.conf"
+ cman_tool version -r
+ else
+ echo " * You will need to manually copy $conf_out to the other cluster"
+ echo " nodes using scp, ccs_sync, or some other utility."
+ fi
+ fi
fi
-echo Complete, output is $cib_out
+echo " * Proposed cib stored in $cib_out"
exit 0
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Fri, Sep 5, 9:25 AM (9 h, 11 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2308667
Default Alt Text
(4 KB)
Attached To
Mode
rP Pacemaker
Attached
Detach File
Event Timeline
Log In to Comment