diff options
Diffstat (limited to 'cloudinit/CloudConfig')
-rw-r--r-- | cloudinit/CloudConfig/cc_mcollective.py | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/cloudinit/CloudConfig/cc_mcollective.py b/cloudinit/CloudConfig/cc_mcollective.py index d7302fe8..9aae2d64 100644 --- a/cloudinit/CloudConfig/cc_mcollective.py +++ b/cloudinit/CloudConfig/cc_mcollective.py @@ -27,14 +27,14 @@ import cloudinit.CloudConfig as cc # Our fake header section class FakeSecHead(object): - def __init__(self, fp): - self.fp = fp - self.sechead = '[nullsection]\n' - def readline(self): - if self.sechead: - try: return self.sechead - finally: self.sechead = None - else: return self.fp.readline() + def __init__(self, fp): + self.fp = fp + self.sechead = '[nullsection]\n' + def readline(self): + if self.sechead: + try: return self.sechead + finally: self.sechead = None + else: return self.fp.readline() def handle(name,cfg,cloud,log,args): # If there isn't a mcollective key in the configuration don't do anything @@ -59,8 +59,13 @@ def handle(name,cfg,cloud,log,args): os.rename('/etc/mcollective/server.cfg','/etc/mcollective/server.cfg.old') outputfile = StringIO.StringIO() mcollective_config.write(outputfile) - # Now we got the whoe file, write to disk except first line + # Now we got the whole file, write to disk except first line final_configfile = open('/etc/mcollective/server.cfg', 'wb') + # Note below, that we've just used ConfigParser because it generally + # works. Below, we remove the initial 'nullsection' header + # and then change 'key = value' to 'key: value'. The global + # search and replace of '=' with ':' could be problematic though. + # this most likely needs fixing. final_configfile.write(outputfile.getvalue().replace('[nullsection]\n','').replace(' =',':')) final_configfile.close() |