summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2012-10-12 04:18:19 +0200
committerChristian Pointner <equinox@spreadspace.org>2012-10-12 04:18:19 +0200
commite45917eef95f03a48c44c657f253a9522f26dcf9 (patch)
treec453b8a41cfff31e443b2bc35baaac36aa754f98
parentmoved video resize and resample to sperate worker (diff)
creating output dir with all config files
TODO: create passwd file
-rw-r--r--.gitignore1
-rwxr-xr-xsrc/flufigut.py38
-rw-r--r--templates/example/planet.xml2
-rw-r--r--templates/example/worker.xml20
4 files changed, 59 insertions, 2 deletions
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 @@
+<?xml version="1.0" encoding="UTF-8"?>
<planet name="{{ globals.name }}">
<manager name="{{ globals.name }}">
@@ -45,4 +46,3 @@
</flow>
</planet>
-
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 @@
+<?xml version="1.0"?>
+<worker name="{{ name }}">
+ <manager>
+%% for name, value in globals.manager.items()
+%% if name != 'machine'
+ <{{ name }}>{{ value }}</{{ name }}>
+%% endif
+%% endfor
+ </manager>
+
+ <authentication type="plaintext">
+ <username>{{ name }}</username>
+ <password>{{ password }}</password>
+ </authentication>
+
+ <feederports>{{ portrange }}</feederports>
+%% if debug != ''
+ <debug>{{ debug }}</debug>
+%% endif
+</worker>