From d68f60a39d53810908af73ab13bbcbe9efbdd6b0 Mon Sep 17 00:00:00 2001
From: pierreozoux <pierre@ozoux.net>
Date: Wed, 18 Feb 2015 13:53:43 +0000
Subject: [PATCH] Revert "Removes discovery unit file" and removes 'while' loop

---
 unit-files/discovery@.service | 17 +++++++++++++++++
 unit-files/web@.service       |  7 +++----
 2 files changed, 20 insertions(+), 4 deletions(-)
 create mode 100644 unit-files/discovery@.service

diff --git a/unit-files/discovery@.service b/unit-files/discovery@.service
new file mode 100644
index 0000000..573dbf1
--- /dev/null
+++ b/unit-files/discovery@.service
@@ -0,0 +1,17 @@
+[Unit]
+Description=%p for %i etcd registration
+
+# Requirements
+Requires=etcd.service
+
+# Dependency binding
+BindsTo=web@%i.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/bin/bash -euxc ' \
+  ip=`docker inspect --format \'{{.NetworkSettings.IPAddress}}\' %i`; \
+  etcdctl --peers 172.17.42.1:4001 set /services/web/%i \'{"ip":"\'$ip\'", "port":"80"}\';'
+ExecStop=-/usr/bin/etcdctl rm /services/web/%i
+
diff --git a/unit-files/web@.service b/unit-files/web@.service
index 5caaba4..2c2daa7 100644
--- a/unit-files/web@.service
+++ b/unit-files/web@.service
@@ -3,10 +3,12 @@ Description=%p-%i
 
 # Requirements
 Requires=docker.service
+Requires=discovery@%i.service
 Requires=backup@%i.timer
 
 # Dependency ordering
 After=docker.service
+Before=discovery@%i.service
 Before=backup@%i.timer
 
 [Service]
@@ -29,9 +31,6 @@ ExecStart=/bin/bash -euxc ' \
     -v /data/runtime/domains/%i/log/apache2:/var/log/apache2 \
     ${DOCKER_ARGUMENTS} \
     pierreozoux/${APPLICATION}'
-ExecStartPost=/bin/bash -c ' \
-  ip=`docker inspect --format \'{{.NetworkSettings.IPAddress}}\' %i`; \
-  /usr/bin/etcdctl --peers 172.17.42.1:4001 set /services/web/%i \'{"ip":"\'$ip\'", "port":"80"}\'
+ExecReload=/usr/bin/docker restart %i
 ExecStop=/usr/bin/docker stop %i
-ExecStopPost=-/usr/bin/etcdctl --peers 172.17.42.1:4001 rm /services/web/%i
 
-- 
GitLab