
# HG changeset patch # User Dan Smith <danms@us.ibm.com> # Date 1196962499 28800 # Node ID f19a5921a4996f3babd6ab3d4cd5b4c523da2bfd # Parent 0fd998389d0260fd54af8c7b9005f5a0fc402b4d Add base schema installation script Signed-off-by: Dan Smith <danms@us.ibm.com> diff -r 0fd998389d02 -r f19a5921a499 base_schema/install_base_schema.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base_schema/install_base_schema.sh Thu Dec 06 09:34:59 2007 -0800 @@ -0,0 +1,89 @@ +#!/bin/bash -x + +DATA="$1" +NS=root/virt +CIMOM=pegasus + +TMPDIR=$(mktemp -d /tmp/cim_schema.XXXXX) + +unpack_schema() { + (cd ${TMPDIR} && unzip ${DATA}/cimv*-MOFs.zip) >/dev/null 2>&1 +} + +fix_schema() { + (cd ${TMPDIR} && patch -p0 < ${DATA}/fix_schema.patch) >/dev/null 2>&1 + cp -a ${DATA}/cimv216-interop.mof ${TMPDIR} +} + +detect_peg_repo() { + dirs="$PEGASUS_HOME /var/lib/Pegasus /var/lib/pegasus /usr/local/var/lib/pegasus /var/local/lib/pegasus /var/opt/tog-pegasus" + + for d in $dirs; do + if [ -d "$d" ]; then + echo $d + return + fi + done +} + +detect_sfcb_dir() { + dirs="SFCB_DIR /usr/local/share/sfcb /usr/share/sfcb" + + for d in $dirs; do + if [ -d "$d" ]; then + echo $d; + return + fi + done +} + +install_schema_pegasus() { + local repo=$(detect_peg_repo) + + if [ -z "$repo" ]; then + echo "Unable to determine Pegasus repository path" + echo "set PEGASUS_HOME" + return + fi + + cd ${TMPDIR} + + cimmofl -uc -aEV -R$repo -n $NS cimv*.mof + cimmofl -uc -aEV -R$repo -n $NS qualifiers.mof + cimmofl -uc -aEV -R$repo -n $NS qualifiers_optional.mof + cimmofl -uc -aEV -R$repo -n /root/interop cimv*-interop.mof +} + +install_schema_sfcb() { + local dir=$(detect_sfcb_dir) + + if [ ! mkdir ${dir}/CIM ]; then + echo "Unable to determine SFCB directory" + echo "set SFCB_DIR" + return + fi + + mv ${TMPDIR}/cimv*.mof ${TMPDIR}/CIM_Schema.mof + cp -ra ${TMPDIR}/* ${dir} + sfcbrepos +} + +if [ -z "$1" ]; then + echo "Usage: $0 [source_dir]" + exit 1 +fi + +(unpack_schema) +(fix_schema) + +case "$CIMOM" in + sfcb) + (install_schema_sfcb) + ;; + pegasus) + (install_schema_pegasus) + ;; + *) + echo ERROR: Unknown CIMOM: $CIMOM + ;; +esac