From 14fbcd9231a89f5157135c962ee9b9e1a868b374 Mon Sep 17 00:00:00 2001
From: Nicolas Wavrant <nicolas.wavrant@tiolive.com>
Date: Wed, 11 Sep 2013 15:45:30 +0200
Subject: [PATCH] slaprunner: slapos.cfg is now deployed by a buildout section
 (in order to kick the recipe)

---
 slapos/recipe/slaprunner/__init__.py          |  8 ++--
 software/slaprunner/common.cfg                | 18 ++++++++-
 software/slaprunner/instance-runner.cfg       | 32 +++++++++++++++
 software/slaprunner/instance.cfg              |  2 +-
 software/slaprunner/software.cfg              |  2 +-
 software/slaprunner/template/slapos.cfg.in.j2 | 40 +++++++++++++++++++
 6 files changed, 94 insertions(+), 8 deletions(-)
 create mode 100644 software/slaprunner/template/slapos.cfg.in.j2

diff --git a/slapos/recipe/slaprunner/__init__.py b/slapos/recipe/slaprunner/__init__.py
index f49f1a99f..235f5813c 100644
--- a/slapos/recipe/slaprunner/__init__.py
+++ b/slapos/recipe/slaprunner/__init__.py
@@ -76,10 +76,10 @@ class Recipe(GenericBaseRecipe):
         cloud9_url=self.cloud9_url
     )
 
-    config_file = self.createFile(self.options['slapos.cfg'],
-        self.substituteTemplate(self.getTemplateFilename('slapos.cfg.in'),
-        configuration))
-    path_list.append(config_file)
+    #config_file = self.createFile(self.options['slapos.cfg'],
+    #    self.substituteTemplate(self.getTemplateFilename('slapos.cfg.in'),
+    #    configuration))
+    config_file = configuration['etc_dir'] + 'slapos.cfg'
 
     environment = dict(
         PATH=os.path.dirname(
diff --git a/software/slaprunner/common.cfg b/software/slaprunner/common.cfg
index 30b7ffb04..e5a14be87 100644
--- a/software/slaprunner/common.cfg
+++ b/software/slaprunner/common.cfg
@@ -25,6 +25,11 @@ parts =
   instance-runner-import
   instance-runner-export
   slapos-cookbook
+  slapos-cfg-template 
+
+develop =
+  /opt/slapos.toolbox/
+  /opt/slaprunner/
 
 # XXX: we have to manually add this for resilience
   rdiff-backup
@@ -76,14 +81,14 @@ command =
 recipe = slapos.recipe.template
 url = ${:_profile_base_location_}/instance.cfg
 output = ${buildout:directory}/template.cfg
-md5sum = 92a2f3bcd5ff79e3b61ca4a8bacb73ec
+#md5sum = 92a2f3bcd5ff79e3b61ca4a8bacb73ec
 mode = 0644
 
 [template-runner]
 recipe = slapos.recipe.template
 url = ${:_profile_base_location_}/instance-runner.cfg
 output = ${buildout:directory}/template-runner.cfg
-md5sum = bcd1ee4dd126d2c6e9461f7753fc83b7
+#md5sum = bcd1ee4dd126d2c6e9461f7753fc83b7
 mode = 0644
 
 [instance-runner-import]
@@ -129,6 +134,15 @@ filename = launcher.in
 mode = 0644
 location = ${buildout:parts-directory}/${:_buildout_section_name_}
 
+[slapos-cfg-template]
+recipe = hexagonit.recipe.download
+url = ${:_profile_base_location_}/template/${:filename}
+#md5sum =
+location = ${buildout:parts-directory}/${:_buildout_section_name_}
+filename = slapos.cfg.in.j2 
+download-only = true
+mode = 0644
+
 [eggs]
 recipe = z3c.recipe.scripts
 eggs =
diff --git a/software/slaprunner/instance-runner.cfg b/software/slaprunner/instance-runner.cfg
index a6d5d4cdf..031742cad 100644
--- a/software/slaprunner/instance-runner.cfg
+++ b/software/slaprunner/instance-runner.cfg
@@ -21,6 +21,7 @@ parts =
   request-cloud9-frontend
   node-frontend-promise
   nginx-promise
+  slapos-cfg
 
 eggs-directory = ${buildout:eggs-directory}
 develop-eggs-directory = ${buildout:develop-eggs-directory}
@@ -394,3 +395,34 @@ debug = false
 cloud9-frontend-domain =
 frontend-domain =
 
+[slapos-cfg]
+recipe = slapos.recipe.template:jinja2
+template = ${slapos-cfg-template:location}/${slapos-cfg-template:filename}
+rendered = $${slaprunner:slapos.cfg}
+mode = 700
+supd-temp-var = $${slaprunner:instance-directory}/$${directory:etc}/supervisord.conf
+prox-db-var = $${slaprunner:working-directory}/proxy.db
+context =
+  key software_root runnerdirectory:software-root
+  key instance_root runnerdirectory:instance-root
+  key ipv4 slaprunner:ipv4
+  key proxy_port slaprunner:proxy_port
+  key partition_amount slaprunner:partition-amount
+  key slapgrid_sr slaprunner:slapgrid_sr 
+  key slapgrid_cp slaprunner:slapgrid_cp
+  key slapproxy slaprunner:slapproxy 
+  key supervisor slaprunner:supervisor
+  key supervisord_config slapos-cfg:supd-temp-var
+  key runner_workdir slaprunner:working-directory
+  key runner_port slaprunner:runner_port
+  key ipv6 slaprunner:ipv6
+  key etc_dir slaprunner:etc_dir
+  key proxy_host slaprunner:ipv4
+  key proxy_database slapos-cfg:prox-db-var
+  key ssh_client slaprunner:ssh_client
+  key public_key slaprunner:public_key
+  key private_key slaprunner:private_key
+  key git slaprunner:git-binary
+  key cloud9_url slaprunner:cloud9-url
+  key run_dir slaprunner:run_dir
+  key log_dir slaprunner:log_dir
diff --git a/software/slaprunner/instance.cfg b/software/slaprunner/instance.cfg
index deb88f91c..4ef71ccee 100644
--- a/software/slaprunner/instance.cfg
+++ b/software/slaprunner/instance.cfg
@@ -50,4 +50,4 @@ computer = $${slap-connection:computer-id}
 partition = $${slap-connection:partition-id}
 url = $${slap-connection:server-url}
 key = $${slap-connection:key-file}
-cert = $${slap-connection:cert-file}
\ No newline at end of file
+cert = $${slap-connection:cert-file}
diff --git a/software/slaprunner/software.cfg b/software/slaprunner/software.cfg
index 3b453c0d5..901c317dd 100644
--- a/software/slaprunner/software.cfg
+++ b/software/slaprunner/software.cfg
@@ -69,7 +69,7 @@ lock-file = 2.0
 rdiff-backup = 1.0.5
 slapos.recipe.cmmi = 0.2
 slapos.recipe.download = 1.0.dev-r4053
-slapos.toolbox = 0.35.1
+#slapos.toolbox = 0.35.1
 slapos.cookbook = 0.78.5
 cliff = 1.4
 cmd2 = 0.6.6
diff --git a/software/slaprunner/template/slapos.cfg.in.j2 b/software/slaprunner/template/slapos.cfg.in.j2
new file mode 100644
index 000000000..9b5ee5541
--- /dev/null
+++ b/software/slaprunner/template/slapos.cfg.in.j2
@@ -0,0 +1,40 @@
+[slapos]
+software_root = {{software_root}}
+instance_root = {{instance_root}}
+master_url = http://{{ipv4}}:{{proxy_port}}
+computer_id = slaprunner
+maximal_delay = 0
+
+[slapformat]
+partition_amount = {{partition_amount}}
+
+[slaprunner]
+slapgrid_sr = {{slapgrid_sr}}
+slapgrid_cp = {{slapgrid_cp}}
+slapproxy = {{slapproxy}}
+supervisor = {{supervisor}}
+supervisord_config = {{supervisord_config}}
+runner_workdir = {{runner_workdir}}
+runner_host = {{ipv4}}
+runner_port = {{runner_port}}
+ipv4_address = {{ipv4}}
+ipv6_address = {{ipv6}}
+etc_dir = {{etc_dir}}
+run_dir = {{run_dir}}
+log_dir = {{log_dir}}
+
+[slapproxy]
+host = {{proxy_host}}
+port = {{proxy_port}}
+database_uri = {{proxy_database}}
+
+[sshkeys_authority]
+ssh_client = {{ssh_client}}
+public_key = {{public_key}}
+private_key = {{private_key}}
+
+[gitclient]
+git = {{git}}
+
+[cloud9_IDE]
+cloud9 = {{cloud9_url}}
-- 
2.30.9