From e45917eef95f03a48c44c657f253a9522f26dcf9 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Fri, 12 Oct 2012 04:18:19 +0200 Subject: creating output dir with all config files TODO: create passwd file --- .gitignore | 1 + src/flufigut.py | 38 +++++++++++++++++++++++++++++++++++++- templates/example/planet.xml | 2 +- templates/example/worker.xml | 20 ++++++++++++++++++++ 4 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 .gitignore create mode 100644 templates/example/worker.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e0e2d8f --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +src/output diff --git a/src/flufigut.py b/src/flufigut.py index 37d5ee9..aa01a02 100755 --- a/src/flufigut.py +++ b/src/flufigut.py @@ -34,6 +34,8 @@ import sys import simplejson as json from exceptions import * from jinja2 import Environment, FileSystemLoader +import shutil +import os ### helper functions ############################################ # @@ -315,10 +317,44 @@ if error != 0: ### initialize and render templates ############################# # + +import shutil +shutil.rmtree('output', ignore_errors=True) + env = Environment(loader=FileSystemLoader('../templates/%s/' % (sys.argv[1])), line_statement_prefix = '%%') + +port = 9000 +for w in worker: + if worker[w] > 0: + machine_name = "" + for machine in globals['machines']: + if w in globals['machines'][machine]: + machine_name = machine + break + print "generating config for worker '%s/%s'" % (machine_name, w) + password = rand_string(12) + template = env.get_template('worker.xml') + ports = "%i-%i" % (port, port+1) + port+=2 + workerconf = template.render(globals=globals, name=w, password=password, portrange=ports) + dir = 'output/%s/worker' % machine + if not os.path.exists(dir): + os.makedirs(dir) + f = open('%s/%s.xml' % (dir, w), 'w') + f.write(workerconf.encode("utf8")) + f.write('\n') + f.close() + +print "generating planet '%s/%s'" % (globals['manager']['machine'], globals['name']) template = env.get_template('planet.xml') planet = template.render(globals=globals, atmosphere=atmosphere, flow=flow) -sys.stdout.write(planet.encode("utf8")) +dir = 'output/%s/manager' % globals['manager']['machine'] +if not os.path.exists(dir): + os.makedirs(dir) +f = open('%s/planet.xml' % (dir), 'w') +f.write(planet.encode("utf8")) +f.write('\n') +f.close() ### end ######################################################### diff --git a/templates/example/planet.xml b/templates/example/planet.xml index a252477..6c6b4bb 100644 --- a/templates/example/planet.xml +++ b/templates/example/planet.xml @@ -1,3 +1,4 @@ + @@ -45,4 +46,3 @@ - diff --git a/templates/example/worker.xml b/templates/example/worker.xml new file mode 100644 index 0000000..cd9ee5c --- /dev/null +++ b/templates/example/worker.xml @@ -0,0 +1,20 @@ + + + +%% for name, value in globals.manager.items() +%% if name != 'machine' + <{{ name }}>{{ value }} +%% endif +%% endfor + + + + {{ name }} + {{ password }} + + + {{ portrange }} +%% if debug != '' + {{ debug }} +%% endif + -- cgit v1.2.3