From d2ea626839fdea10ae9eb8ac3d350a67ae86e6d7 Mon Sep 17 00:00:00 2001
From: Tristan Cavelier <tristan.cavelier@nexedi.com>
Date: Wed, 6 Jul 2016 15:58:41 +0200
Subject: [PATCH] cloudooo: add timeout parameter

---
 software/cloudooo/instance-cloudoo-input-schema.json | 4 ++++
 software/cloudooo/instance-cloudoo.cfg.in            | 8 +++++++-
 software/cloudooo/software.cfg                       | 5 ++++-
 3 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/software/cloudooo/instance-cloudoo-input-schema.json b/software/cloudooo/instance-cloudoo-input-schema.json
index ab8b7bfe1..e5daf23aa 100644
--- a/software/cloudooo/instance-cloudoo-input-schema.json
+++ b/software/cloudooo/instance-cloudoo-input-schema.json
@@ -36,6 +36,10 @@
         }
       }
     },
+    "timeout": {
+      "description": "Configure apache with this timeout",
+      "type": "integer"
+    },
     "mimetype-entry-addition": {
       "description": "The list of entry to add to the cloudooo mimetype registry. Each entry should on one line which format is: \"<source_mimetype> <destination_mimetype> <handler>\"",
       "type": "string"
diff --git a/software/cloudooo/instance-cloudoo.cfg.in b/software/cloudooo/instance-cloudoo.cfg.in
index 04deb772d..15c1218a8 100644
--- a/software/cloudooo/instance-cloudoo.cfg.in
+++ b/software/cloudooo/instance-cloudoo.cfg.in
@@ -17,6 +17,12 @@
 {% endif -%}
 {% do assert(backend_count > 0) -%}
 
+{% set timeout = instance_parameter_dict['timeout'] | int -%}
+{% if instance_parameter_dict.get('timeout-parameter-name') -%}
+{%   set timeout = slapparameter_dict.get(instance_parameter_dict['timeout-parameter-name'], timeout) | int -%}
+{% endif -%}
+{% do assert(timeout > 0) -%}
+
 {% set ssl_parameter_dict = instance_parameter_dict.get('ssl', {}) %}
 {% if instance_parameter_dict.get('ssl-dict-parameter-name') -%}
 {%   set ssl_parameter_dict = slapparameter_dict.get(instance_parameter_dict['ssl-dict-parameter-name'], ssl_parameter_dict) -%}
@@ -93,7 +99,7 @@ pid-file = ${directory:run}/apache.pid
 error-log = ${directory:log}/apache-error.log
 access-log = ${directory:log}/apache-access.log
 # Apache 2.4's default value (60 seconds) can be a bit too short
-timeout = 300
+timeout = {{ timeout }}
 # Basic SSL server configuration
 cert = ${apache-ssl:cert}
 key = ${apache-ssl:key}
diff --git a/software/cloudooo/software.cfg b/software/cloudooo/software.cfg
index c598a269a..888a4ed0f 100644
--- a/software/cloudooo/software.cfg
+++ b/software/cloudooo/software.cfg
@@ -4,6 +4,9 @@ port-parameter-name = tcpv4-port
 port = 8000
 backend-count-parameter-name = backend-count
 backend-count = 1
+timeout-parameter-name = timeout
+# timeout in seconds
+timeout = 600
 ssl-dict-parameter-name = ssl
 #ssl-dict =
 mimetype-entry-addition-parameter-name = mimetype-entry-addition
@@ -99,5 +102,5 @@ extra-context =
 [template-cloudooo]
 recipe = slapos.recipe.build:download
 url = ${:_profile_base_location_}/instance-cloudoo.cfg.in
-md5sum = b23e68b3b76b7e7cba8df3a6c1dd5b4c
+md5sum = 7134b253ab5dfba520a31739fa611de6
 mode = 640
-- 
2.30.9