Slaves config file is now a jinja2 template

Change-Id: I593ea08f87997dbd99934ad3b34c38c34fe1b824
diff --git a/podder/handlers.py b/podder/handlers.py
index 6b261a6..40d53a8 100644
--- a/podder/handlers.py
+++ b/podder/handlers.py
@@ -17,6 +17,7 @@
     get_all_running_containers, inspect_container, remove_container
 
 from structlog import get_logger
+import yaml
 
 log = get_logger()
 
@@ -48,7 +49,6 @@
     # Assuming only one network exists....
     return create_networking_config(network[0], { l : l for l in links})
 
-
 def process_value(value):
     if value is None:
         return None
@@ -68,7 +68,6 @@
 def construct_container_spec(config):
     container_spec = {}
     container_spec['image'] = get_entry('image', config, mandatory=True)
-    #TODO need to rewrite command to connect to right service instance
     container_spec['command'] = get_entry('command', config, mandatory=True)
     container_spec['environment'] = get_entry('environment', config, noneval={})
     container_spec['ports'] = get_entry('ports', config)
@@ -86,7 +85,11 @@
                     log.info('Removing container {}'.format(container['Names']))
                     remove_container(container['Id'])
 
-def start_slaves(service, instance_name, instance_id, data, config):
+def start_slaves(service, instance_name, instance_id, data, conf):
+    network = obtain_network_name(data)
+    # still assuming a single network
+    config = yaml.load(conf.render(data=data, network=network[0]))
+
     if service not in config['services']:
         log.debug('Unknown service {}'.format(service))
         return
@@ -94,7 +97,7 @@
         if slave not in config['slaves']:
             log.debug('Unknown slave service {}'.format(slave))
             continue
-        network = obtain_network_name(data)
+
         netcfg = create_network_config(network, get_entry('links', config['slaves'][slave]))
         container_spec = construct_container_spec(config['slaves'][slave])
         container_spec['networking_config'] = netcfg
@@ -107,11 +110,14 @@
         container_spec['environment']['PODDER_MASTER'] = instance_name
 
         container = create_container(container_spec)
+        log.info('Starting slaves for {}'.format(instance_name))
         start_container(container)
 
 
-def stop_slaves(service, instance_name, instance_id, data, config):
+def stop_slaves(service, instance_name, instance_id, data, conf):
     log.info('Stopping slaves for {}'.format(instance_name))
+    network = obtain_network_name(data)
+    config = yaml.load(conf.render())
     if service in config['services']:
         service_shutdown(service, instance_name, config)
     else: