summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bryant <m@ocado.com>2016-01-19 14:07:54 +0000
committerMike Bryant <m@ocado.com>2016-01-19 14:07:54 +0000
commiteb3d86fe6debc286d74e0eed5a61d5a564b324c4 (patch)
treea706d1bd2a714c2ba672ef93e01a23d7e6a48e06
parent3e72b6a35f2aff6a299019c34f4b57e97ba480aa (diff)
Add the option of automatically reloading the config every X seconds. Fixes #271
-rw-r--r--Dockerfile1
-rw-r--r--README.md5
-rwxr-xr-xextra/auto-reload-config.runit12
3 files changed, 18 insertions, 0 deletions
diff --git a/Dockerfile b/Dockerfile
index 01a0c5f..0eeeb8d 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -12,3 +12,4 @@ RUN apt-get remove -y ruby-dev pkg-config make cmake
RUN apt-get -y autoremove
ADD extra/oxidized.runit /etc/service/oxidized/run
+ADD extra/auto-reload-config.runit /etc/service/auto-reload-config/run
diff --git a/README.md b/README.md
index e4c02e8..a6766ec 100644
--- a/README.md
+++ b/README.md
@@ -230,6 +230,11 @@ rvm use --default 2.1.2
root@bla:~#
```
+If you want to have the config automatically reloaded (e.g. when using a http source that changes)
+```
+ root@bla:~# docker run -v /etc/oxidized:/root/.config/oxidized -p 8888:8888/tcp -e CONFIG_RELOAD_INTERVAL=3600 -t oxidized/oxidized:latest oxidized
+```
+
## Cookbook
### Debugging
In case a model plugin doesn't work correctly (ios, procurve, etc.), you can enable live debugging of SSH/Telnet sessions. Just add a ```debug``` option, specifying a log file destination to the ```input``` section.
diff --git a/extra/auto-reload-config.runit b/extra/auto-reload-config.runit
new file mode 100755
index 0000000..5eaecc8
--- /dev/null
+++ b/extra/auto-reload-config.runit
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+if [ -z "$CONFIG_RELOAD_INTERVAL" ]; then
+ # Just stop and do nothing
+ read
+fi
+
+while true; do
+ sleep $CONFIG_RELOAD_INTERVAL
+ echo "Reloading config..."
+ curl -s http://localhost:8888/reload?format=json -O /dev/null
+done