diff options
author | Radek Novacek <rnovacek@redhat.com> | 2012-10-22 13:45:27 +0200 |
---|---|---|
committer | Radek Novacek <rnovacek@redhat.com> | 2012-10-22 13:45:27 +0200 |
commit | b6917503f020b96c29c26940d50bb3f46b8edcb2 (patch) | |
tree | 4339b64ad877b44ba717e855444b661c5d06c29c /openlmi-register-pegasus | |
parent | 86a07232637625234cfa5116a96fb4602619b663 (diff) | |
download | openlmi-providers-b6917503f020b96c29c26940d50bb3f46b8edcb2.tar.gz openlmi-providers-b6917503f020b96c29c26940d50bb3f46b8edcb2.tar.xz openlmi-providers-b6917503f020b96c29c26940d50bb3f46b8edcb2.zip |
Move registration scripts to proper directories0.0.10
register.py is renamed to openlmi-mof-register and moved to /usr/bin/,
reg2pegasus is now openlmi-register-pegasus in /usr/libexec/.
Diffstat (limited to 'openlmi-register-pegasus')
-rwxr-xr-x | openlmi-register-pegasus | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/openlmi-register-pegasus b/openlmi-register-pegasus new file mode 100755 index 0000000..6f33634 --- /dev/null +++ b/openlmi-register-pegasus @@ -0,0 +1,69 @@ +#!/usr/bin/python2 + +import sys +import re + +reg_parse = re.compile(r"\[([^\]]+)\]\s+" +"provider: ([^\s]+)\s+" +"location: (\w+)\s+" +"type: ([^\n]+)\s+" +"namespace: ([^\n]+)") + +Types = { + 'instance': '2', + 'association': '3', + 'indication': '4', + 'method': '5', + 'consumer': '6', + 'instanceQuery': '7' +} + +def define_module(location): + return """instance of PG_ProviderModule +{ + Name = "%(location)s"; + Location = "%(location)s"; + Vendor = "RedHat"; + Version = "0.0.1"; + InterfaceType = "CMPI"; + InterfaceVersion = "2.0.0"; + ModuleGroupName = "lmi-providers"; +}; +""" % { 'location': location } + +def getTypes(types): + l = [] + for key, value in Types.items(): + if key in types: + l.append(value) + return ",".join(l) + +def define_capability(location, provider, cls, types): + return """instance of PG_Provider +{ + Name = "%(provider)s"; + ProviderModuleName = "%(location)s"; +}; + +instance of PG_ProviderCapabilities +{ + ProviderModuleName = "%(location)s"; + ProviderName = "%(provider)s"; + CapabilityID = "%(class)s"; + ClassName = "%(class)s"; + Namespaces = { "root/cimv2" }; + ProviderType = { %(types)s }; + SupportedProperties = NULL; + SupportedMethods = NULL; +}; +""" % { 'location': location, 'provider': provider, 'class': cls, 'types': getTypes(types) } + +modules_defined = {} +for record in reg_parse.findall(sys.stdin.read()): + cls, provider, location, types, namespace = record + + if location not in modules_defined: + print define_module(location) + modules_defined[location] = True + + print define_capability(location, provider, cls, types) |