Patrick Williams | b48b7b4 | 2016-08-17 15:04:38 -0500 | [diff] [blame^] | 1 | #!/bin/sh |
| 2 | # |
| 3 | # options: |
| 4 | # loadmof.sh <MOF_PATH> <NAMESPACE> <FILES> |
| 5 | # |
| 6 | # - or - |
| 7 | # |
| 8 | # options: |
| 9 | # loadmof.sh -n <NAMESPACE> <FILES> [...] |
| 10 | # |
| 11 | # The former is preserved for compatibility with Pegasus and |
| 12 | # sblim providers. The latter is preferred. If $1 is "-n", |
| 13 | # the latter code path is executed. Otherwise the former is |
| 14 | # executed. |
| 15 | |
| 16 | if [ "x$1" != "x-n" -a "x$1" != "x-v" ]; then |
| 17 | # OLD STYLE |
| 18 | if [ -f "/etc/init.d/owcimomd" ]; then |
| 19 | /etc/init.d/owcimomd status 1>&2 > /dev/null |
| 20 | if [ $? = "0" ]; then |
| 21 | CIMOM_RUNNING="true" |
| 22 | else |
| 23 | CIMOM_RUNNING="false" |
| 24 | fi |
| 25 | else |
| 26 | exit 1 |
| 27 | fi |
| 28 | if [ "$YAST_IS_RUNNING" = "instsys" ]; then |
| 29 | CIMOM_RUNNING="false" |
| 30 | fi |
| 31 | |
| 32 | CIMOM=$1 |
| 33 | shift |
| 34 | case "$CIMOM" in |
| 35 | pegasus) |
| 36 | exit 0 |
| 37 | ;; |
| 38 | esac |
| 39 | MOF_PATH=$1 |
| 40 | shift |
| 41 | NS=$1 |
| 42 | shift |
| 43 | |
| 44 | REPOSITORY="/var/lib/openwbem" |
| 45 | #tmp_dir=`mktemp -d -p /tmp openwbem.XXXXXX` |
| 46 | case "$CIMOM_RUNNING" in |
| 47 | true|false) |
| 48 | while [ "$#" -gt 0 ] |
| 49 | do |
| 50 | echo "Loading $MOF_PATH/$1" |
| 51 | #sed "s/cmpi:/cmpi::/g" $MOF_PATH/$1 > $tmp_dir/$1 |
| 52 | /usr/bin/owmofc -c -n $NS -d $REPOSITORY $MOF_PATH/$1 > /dev/null 2>&1 |
| 53 | shift |
| 54 | done |
| 55 | ;; |
| 56 | esac |
| 57 | #rm -rf $tmp_dir |
| 58 | # END OLD STYLE |
| 59 | |
| 60 | else |
| 61 | # NEW STYLE |
| 62 | if [ "x$3" = "x" ]; then |
| 63 | echo "Usage: $0 -n <NAMESPACE> <FILES> [...]" |
| 64 | exit 1 |
| 65 | fi |
| 66 | |
| 67 | if [ "x$1" = "x-v" ]; then |
| 68 | VERBOSE=1 |
| 69 | shift |
| 70 | fi |
| 71 | |
| 72 | # get rid of "-n" arg |
| 73 | shift |
| 74 | |
| 75 | NS="$1" |
| 76 | |
| 77 | shift |
| 78 | |
| 79 | DBDIR=/var/lib/openwbem |
| 80 | LOGFILE=$DBDIR/loadmof.log |
| 81 | CIMOM_INIT=/etc/init.d/owcimomd |
| 82 | if [ "$YAST_IS_RUNNING" != "instsys" ] ; then |
| 83 | $CIMOM_INIT status > /dev/null 2>&1 |
| 84 | CIMOM_RUNNING=$? |
| 85 | fi |
| 86 | if [ "x$CIMOM_RUNNING" = "x0" ]; then |
| 87 | $CIMOM_INIT stop > /dev/null 2>&1 |
| 88 | fi |
| 89 | bkpdir=$DBDIR/backup-$$ |
| 90 | mkdir $bkpdir |
| 91 | cp -a $DBDIR/*.{dat,ndx,lock} $bkpdir/ |
| 92 | rm -f $LOGFILE.9 |
| 93 | for i in 8 7 6 5 4 3 2 1 0; do |
| 94 | let newI=$i+1 |
| 95 | if [ -f $LOGFILE.$i ]; then |
| 96 | mv $LOGFILE.$i $LOGFILE.$newI |
| 97 | fi |
| 98 | done |
| 99 | if [ -f $LOGFILE ]; then |
| 100 | mv $LOGFILE $LOGFILE.0 |
| 101 | fi |
| 102 | if [ "x$VERBOSE" = "x1" ]; then |
| 103 | /usr/bin/owmofc -c -n $NS -d $DBDIR -s /usr/share/mof/cim-current "$@" 2>&1 | tee $LOGFILE |
| 104 | else |
| 105 | /usr/bin/owmofc -c -n $NS -d $DBDIR -s /usr/share/mof/cim-current "$@" > $LOGFILE 2>&1 |
| 106 | fi |
| 107 | RVAL=$? |
| 108 | if [ "x$RVAL" != "x0" ]; then |
| 109 | echo "MOF import failed! Check $LOGFILE for details." |
| 110 | mv $bkpdir/* $DBDIR/ |
| 111 | fi |
| 112 | rm -rf $bkpdir |
| 113 | if [ "x$CIMOM_RUNNING" = "x0" ]; then |
| 114 | $CIMOM_INIT start > /dev/null 2>&1 |
| 115 | fi |
| 116 | exit $RVAL |
| 117 | fi |
| 118 | |