diff options
author | Radek Novacek <rnovacek@redhat.com> | 2012-08-02 11:47:02 +0200 |
---|---|---|
committer | Radek Novacek <rnovacek@redhat.com> | 2012-08-02 12:07:47 +0200 |
commit | ab81c6fc893e34de159b25290f7313082351d992 (patch) | |
tree | d0ca8f9f94aa762cb771075c79ec8d8b490d1b4a /reg2pegasus.py | |
parent | 97a06662a7d51d0a9beaa73a47b2c5dd437b13be (diff) | |
download | openlmi-providers-ab81c6fc893e34de159b25290f7313082351d992.tar.gz openlmi-providers-ab81c6fc893e34de159b25290f7313082351d992.tar.xz openlmi-providers-ab81c6fc893e34de159b25290f7313082351d992.zip |
Always use .reg file instead of .registration
Diffstat (limited to 'reg2pegasus.py')
-rw-r--r-- | reg2pegasus.py | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/reg2pegasus.py b/reg2pegasus.py new file mode 100644 index 0000000..08f8662 --- /dev/null +++ b/reg2pegasus.py @@ -0,0 +1,69 @@ +#!/usr/bin/python + +import sys +import re + +reg_parse = re.compile(r"\[([^\]]+)\]\s+" +"provider: (\w+)\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 = "cura-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, cls, types): + return """instance of PG_Provider +{ + Name = "%(class)s"; + ProviderModuleName = "%(location)s"; +}; + +instance of PG_ProviderCapabilities +{ + ProviderModuleName = "%(location)s"; + ProviderName = "%(class)s"; + CapabilityID = "%(class)s"; + ClassName = "%(class)s"; + Namespaces = { "root/cimv2" }; + ProviderType = { %(types)s }; + SupportedProperties = NULL; + SupportedMethods = NULL; +}; +""" % { 'location': location, '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, cls, types) |