diff options
Diffstat (limited to 'registration2pegasus.py')
-rw-r--r-- | registration2pegasus.py | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/registration2pegasus.py b/registration2pegasus.py new file mode 100644 index 0000000..62947c7 --- /dev/null +++ b/registration2pegasus.py @@ -0,0 +1,62 @@ +#!/usr/bin/python + +import sys + +Types = { + 'instance': '2', + 'association': '3', + 'indication': '4', + 'method': '5', + 'consumer': '6', + 'instanceQuery': '7' +} + +def define_module(provider): + return """instance of PG_ProviderModule +{ + Name = "%(provider)sModule"; + Location = "%(provider)s"; + Vendor = "RedHat"; + Version = "0.0.1"; + InterfaceType = "CMPI"; + InterfaceVersion = "2.0.0"; + ModuleGroupName = "cura-providers"; +}; +""" % { 'provider': provider } + +def getTypes(types): + l = [] + for key, value in Types.items(): + if key in types: + l.append(value) + return ",".join(l) + +def define_capability(provider, name, cls, types): + return """instance of PG_Provider +{ + Name = "%(name)s"; + ProviderModuleName = "%(provider)sModule"; +}; + +instance of PG_ProviderCapabilities +{ + ProviderModuleName = "%(provider)sModule"; + ProviderName = "%(name)s"; + CapabilityID = "%(class)s"; + ClassName = "%(class)s"; + Namespaces = { "root/cimv2" }; + ProviderType = { %(types)s }; + SupportedProperties = NULL; + SupportedMethods = NULL; +}; +""" % { 'provider': provider, 'name': name, 'class': cls, 'types': getTypes(types) } + +modules_defined = {} +for line in sys.stdin: + cls, namespace, name, provider, types = line.strip().split(" ", 4) + + if provider not in modules_defined: + print define_module(provider) + modules_defined[provider] = True + + print define_capability(provider, name, cls, types) |