summaryrefslogtreecommitdiffstats
path: root/openlmi-register-pegasus
diff options
context:
space:
mode:
authorRadek Novacek <rnovacek@redhat.com>2012-10-22 13:45:27 +0200
committerRadek Novacek <rnovacek@redhat.com>2012-10-22 13:45:27 +0200
commitb6917503f020b96c29c26940d50bb3f46b8edcb2 (patch)
tree4339b64ad877b44ba717e855444b661c5d06c29c /openlmi-register-pegasus
parent86a07232637625234cfa5116a96fb4602619b663 (diff)
downloadopenlmi-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-xopenlmi-register-pegasus69
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)