Watcher: add option for setting RAPI IP
authorHelga Velroyen <helgav@google.com>
Thu, 2 Jul 2015 11:38:17 +0000 (13:38 +0200)
committerHelga Velroyen <helgav@google.com>
Fri, 3 Jul 2015 10:06:02 +0000 (12:06 +0200)
commitfbf8089c7f19d6c4d9844d00d2f25a71f644a5b0
treefd7a6074bb77266b234404f586b07a807c2aa58e
parent7e16570b6de06c4ade8735c03b0d4af786c4bd46
Watcher: add option for setting RAPI IP

Per default, the RAPI daemon binds to 0.0.0.0 when being
started. This means it serves from any IP the machine is
configured for. This works well together with the watcher
which always polls the RAPI daemons on 127.0.0.1 and
restarts it when it is not reachable.

If a user decides to start the RAPI daemon with a particular
IP other than 127.0.0.1 (using the option -b, for example
set in /etc/default/ganeti), RAPI will only serve from that
IP and thus it will not be reachable from 127.0.0.1. Since
the watcher only polls on this IP, it will inevitably fail
to connect to the RAPI daemon and thus restart it every five
minutes.

To solve this, this patch adds an option --rapi-ip to the
watcher. Whenever -b of the RAPI daemon is set, the watcher
needs to be fed the same IP with --rapi-ip (which means
editing /etc/cron.d/ganeti for example). This is not optimal
regarding user experience (as it is easy to forget one of
the two places), but the alternative would be to make this
a ganeti configuration parameter which is fed to both, RAPI
daemon and watcher, but this would be significantly more
effort for this relatively rarely used feature.

Signed-off-by: Helga Velroyen <helgav@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>
lib/watcher/__init__.py