From 6de4e3ce3345815c6a3d9181b25584ee16a00e20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Le=20Ninivin?= <cedric.leninivin@tiolive.com> Date: Tue, 28 Feb 2017 17:54:19 +0100 Subject: [PATCH] software.apache-frontend: Add promise on cache availability --- software/apache-frontend/common.cfg | 2 +- .../instance-apache-frontend.cfg | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/software/apache-frontend/common.cfg b/software/apache-frontend/common.cfg index e56c3e4f4..a82b37313 100644 --- a/software/apache-frontend/common.cfg +++ b/software/apache-frontend/common.cfg @@ -56,7 +56,7 @@ mode = 0644 [template-apache-frontend] recipe = slapos.recipe.template url = ${:_profile_base_location_}/instance-apache-frontend.cfg -md5sum = c86c435136f6b910b3dd7dcb84a789a2 +md5sum = 0ca52aa73c2547499b2f62fc72288f45 output = ${buildout:directory}/template-apache-frontend.cfg mode = 0644 diff --git a/software/apache-frontend/instance-apache-frontend.cfg b/software/apache-frontend/instance-apache-frontend.cfg index c6e60e52b..735d860fa 100644 --- a/software/apache-frontend/instance-apache-frontend.cfg +++ b/software/apache-frontend/instance-apache-frontend.cfg @@ -37,6 +37,7 @@ parts = trafficserver-plugin-config trafficserver-storage-config trafficserver-promise-listen-port + trafficserver-promise-cache-availability ## Nginx nginx-frontend @@ -463,6 +464,27 @@ path = $${directory:promise}/trafficserver-port-listening hostname = $${trafficserver-variable:local-ip} port = $${trafficserver-variable:input-port} +[trafficserver-line] +recipe = slapos.cookbook:wrapper +command-line = ${trafficserver:location}/bin/traffic_line +wrapper-path = $${directory:bin}/traffic_line +environment = TS_ROOT=$${buildout:directory} +parameters-extra = true + +[trafficserver-promise-cache-availability] +recipe = collective.recipe.template +input = + inline:#!${buildout:executable} + import subprocess + import sys + traffic_line = "$${trafficserver-line:wrapper-path}" + result = float(subprocess.check_output([traffic_line, '-r', 'proxy.node.cache.percent_free' ])) + if result != 0: sys.exit(0) + sys.stderr.write("Cache not available, availability: %s" % result) + sys.exit(127) +output = $${directory:promise}/trafficserver-cache-availability +mode = 700 + ### End of ATS sections ### Apaches Graceful and promises -- 2.30.9