From b6917503f020b96c29c26940d50bb3f46b8edcb2 Mon Sep 17 00:00:00 2001 From: Radek Novacek Date: Mon, 22 Oct 2012 13:45:27 +0200 Subject: Move registration scripts to proper directories register.py is renamed to openlmi-mof-register and moved to /usr/bin/, reg2pegasus is now openlmi-register-pegasus in /usr/libexec/. --- openlmi-mof-register | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100755 openlmi-mof-register (limited to 'openlmi-mof-register') diff --git a/openlmi-mof-register b/openlmi-mof-register new file mode 100755 index 0000000..7a9aaa4 --- /dev/null +++ b/openlmi-mof-register @@ -0,0 +1,93 @@ +#!/bin/sh + +pegasus_repository="/var/lib/Pegasus/repository" + +function usage() +{ + printf "Usage: $0 [ register | unregister ] mof reg\n" +} + +function register() +{ + mof=$1 + reg=$2 + if [ $HAS_SFCBD -eq 1 ]; + then + /usr/bin/sfcbstage -r $reg $mof + /usr/bin/sfcbrepos -f + /usr/bin/systemctl reload-or-try-restart sblim-sfcb.service + fi + + if [ $HAS_PEGASUS -eq 1 ]; + then + /usr/sbin/cimserver --status > /dev/null 2>&1 + if [ $? -eq 0 ]; + then + CIMMOF="/usr/bin/cimmof" + else + CIMMOF="/usr/bin/cimmofl -R $pegasus_repository" + fi + + $CIMMOF -uc $mof + if [ -x $(dirname $0)/openlmi-register-pegasus ]; + then + cat $reg | $(dirname $0)/openlmi-register-pegasus | $CIMMOF -uc -n root/PG_Interop - + else + cat $reg | /usr/libexec/openlmi-register-pegasus | $CIMMOF -uc -n root/PG_Interop - + fi + fi +} + +function unregister() +{ + mof=$1 + reg=$2 + if [ $HAS_SFCBD -eq 1 ]; + then + /usr/bin/sfcbunstage -r $(basename $reg) $(basename $mof) + /usr/bin/sfcbrepos -f + /usr/bin/systemctl reload-or-try-restart sblim-sfcb.service + fi + + if [ $HAS_PEGASUS -eq 1 ]; + then + for provider in $(sed -n 's/ *location: *//p' $reg | sort | uniq); + do + /usr/bin/cimprovider -d -m ${provider} && /usr/bin/cimprovider -r -m ${provider} + done + fi +} + +if [ $# -lt 3 ]; +then + usage + exit 1 +fi + +if [ -e /usr/sbin/sfcbd ]; +then + HAS_SFCBD=1 +else + HAS_SFCBD=0 +fi + +if [ -e /usr/sbin/cimserver ]; +then + HAS_PEGASUS=1 +else + HAS_PEGASUS=0 +fi + +# TODO: check if at least one server is installed + +case $1 in + register) + register $2 $3 + break;; + unregister) + unregister $2 $3 + break;; + **) + usage + exit 1 +esac -- cgit