blob: dd87811a3784e5a0e3604db77d15c3006f04bc03 [file] [log] [blame]
Patrick Williamsb48b7b42016-08-17 15:04:38 -05001#!/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
16if [ "x$1" != "x-n" -a "x$1" != "x-v" ]; then
17# OLD STYLE
18if [ -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
25else
26 exit 1
27fi
28if [ "$YAST_IS_RUNNING" = "instsys" ]; then
29 CIMOM_RUNNING="false"
30fi
31
32CIMOM=$1
33shift
34case "$CIMOM" in
35 pegasus)
36 exit 0
37 ;;
38esac
39MOF_PATH=$1
40shift
41NS=$1
42shift
43
44REPOSITORY="/var/lib/openwbem"
45#tmp_dir=`mktemp -d -p /tmp openwbem.XXXXXX`
46case "$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 ;;
56esac
57#rm -rf $tmp_dir
58# END OLD STYLE
59
60else
61# NEW STYLE
62if [ "x$3" = "x" ]; then
63 echo "Usage: $0 -n <NAMESPACE> <FILES> [...]"
64 exit 1
65fi
66
67if [ "x$1" = "x-v" ]; then
68 VERBOSE=1
69 shift
70fi
71
72# get rid of "-n" arg
73shift
74
75NS="$1"
76
77shift
78
79DBDIR=/var/lib/openwbem
80LOGFILE=$DBDIR/loadmof.log
81CIMOM_INIT=/etc/init.d/owcimomd
82if [ "$YAST_IS_RUNNING" != "instsys" ] ; then
83 $CIMOM_INIT status > /dev/null 2>&1
84 CIMOM_RUNNING=$?
85fi
86if [ "x$CIMOM_RUNNING" = "x0" ]; then
87 $CIMOM_INIT stop > /dev/null 2>&1
88fi
89bkpdir=$DBDIR/backup-$$
90mkdir $bkpdir
91cp -a $DBDIR/*.{dat,ndx,lock} $bkpdir/
92rm -f $LOGFILE.9
93for 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
98done
99if [ -f $LOGFILE ]; then
100 mv $LOGFILE $LOGFILE.0
101fi
102if [ "x$VERBOSE" = "x1" ]; then
103 /usr/bin/owmofc -c -n $NS -d $DBDIR -s /usr/share/mof/cim-current "$@" 2>&1 | tee $LOGFILE
104else
105 /usr/bin/owmofc -c -n $NS -d $DBDIR -s /usr/share/mof/cim-current "$@" > $LOGFILE 2>&1
106fi
107RVAL=$?
108if [ "x$RVAL" != "x0" ]; then
109 echo "MOF import failed! Check $LOGFILE for details."
110 mv $bkpdir/* $DBDIR/
111fi
112rm -rf $bkpdir
113if [ "x$CIMOM_RUNNING" = "x0" ]; then
114 $CIMOM_INIT start > /dev/null 2>&1
115fi
116exit $RVAL
117fi
118