
On 30 March 2016 at 22:31, Yaniv Kaul <ykaul@redhat.com> wrote:
On Wed, Mar 30, 2016 at 5:33 PM, Barak Korren <bkorren@redhat.com> wrote:
Maybe we can live-generate the file from the lago status output?
Indeed...
<ugly-hack-not-tested-yet> with open('../robo.conf.in') as f: robo_conf_in = f.read()
replacements = { '@HOST0@': prefix.virt_env.get_vm(_get_prefixed_name('host0').ip(), '@HOST1@': prefix.virt_env.get_vm(_get_prefixed_name('host1').ip(), '@HOST2@': prefix.virt_env.get_vm(_get_prefixed_name('host2').ip(), } for k, v in replacements.items(): robo_conf_out = robo_conf_in.replace(k, v, 1)
with open('../robo.conf', 'w') as out: out.write(robo_conf_out) out.close()
</ugly-hack-not-tested-yet>
If you don't expect robo.conf.in to come from an untrusted source, consider using string.format with a dict rather then looping with string.replace. Also consider constructing the dict with a mapping comprehension expression looping over the hosts (See [1] for tutorial of the syntax, you can use the {..foo..} syntax if you don't care about Python 2.6 compatibility or the dict(...) syntax if you do) [1]: http://www.bogotobogo.com/python/python_dictionary_comprehension_with_zip_fr... -- Barak Korren bkorren@redhat.com RHEV-CI Team