diff options
author | Radek Novacek <rnovacek@redhat.com> | 2012-08-01 13:48:26 +0200 |
---|---|---|
committer | Radek Novacek <rnovacek@redhat.com> | 2012-08-02 10:30:49 +0200 |
commit | f21cc8472b172f2fb629df774d4190bb69da940d (patch) | |
tree | 54f81e61c559e9c0fe63842f719e0feb3dc2126d /register.sh | |
parent | 1fcc5cf2b149b2efb8a6f2320f8779d41309c1c8 (diff) | |
download | openlmi-providers-f21cc8472b172f2fb629df774d4190bb69da940d.tar.gz openlmi-providers-f21cc8472b172f2fb629df774d4190bb69da940d.tar.xz openlmi-providers-f21cc8472b172f2fb629df774d4190bb69da940d.zip |
Add script for registration and deregitration of provider
Diffstat (limited to 'register.sh')
-rwxr-xr-x | register.sh | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/register.sh b/register.sh new file mode 100755 index 0000000..cef7f59 --- /dev/null +++ b/register.sh @@ -0,0 +1,88 @@ +#!/bin/sh + +pegasus_repository="/var/lib/Pegasus/repository" + +function usage() +{ + printf "Usage: $0 [ register | unregister ] mof registration\n" +} + +function register() +{ + mof=$1 + registration=$2 + if [ $HAS_SFCBD -eq 1 ]; + then + /usr/bin/sfcbstage -r $registration $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/commofl -R $pegasus_repository" + fi + + $CIMMOF -uc $mof + cat $registration | /usr/bin/python2 $(dirname $0)/registration2pegasus.py | $CIMMOF -uc -n root/PG_Interop - + fi +} + +function unregister() +{ + mof=$1 + registration=$2 + if [ $HAS_SFCBD -eq 1 ]; + then + /usr/bin/sfcbunstage -r $(basename $registration) $(basename $mof) + /usr/bin/sfcbrepos -f + /usr/bin/systemctl reload-or-try-restart sblim-sfcb.service + fi + + if [ $HAS_PEGASUS -eq 1 ]; + then + for module in $(cut -d' ' -f 4 $registration | sort | uniq); + do + /usr/bin/cimprovider -d -m ${module}Module && /usr/bin/cimprovider -r -m ${module}Module + 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 |