From 05f1ebf3f14ecb7fd101f447e6bc1f666ba29a80 Mon Sep 17 00:00:00 2001 From: Guido Trotter <ultrotter@google.com> Date: Fri, 28 Aug 2009 14:05:54 +0300 Subject: [PATCH] Move SimpleConfigReader creation to ConfdProcessor This will be useful to make ConfdProcessor aware of a config failure, without quitting confd. Signed-off-by: Guido Trotter <ultrotter@google.com> Reviewed-by: Iustin Pop <iustin@google.com> --- daemons/ganeti-confd | 19 ++++++++----------- lib/confd/server.py | 10 +++++----- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/daemons/ganeti-confd b/daemons/ganeti-confd index c8c5a48a7..734eb55d1 100755 --- a/daemons/ganeti-confd +++ b/daemons/ganeti-confd @@ -192,16 +192,16 @@ class ConfdConfigurationReloader(object): check, to verify that the reload hasn't failed. """ - def __init__(self, reader, mainloop): + def __init__(self, processor, mainloop): """Constructor for ConfdConfigurationReloader - @type reader: L{ssconf.SimpleConfigReader} - @param reader: ganeti-confd SimpleConfigReader + @type processor: L{confd.server.ConfdProcessor} + @param processor: ganeti-confd ConfdProcessor @type mainloop: L{daemon.Mainloop} @param mainloop: ganeti-confd mainloop """ - self.reader = reader + self.processor = processor self.mainloop = mainloop self.polling = False @@ -239,7 +239,7 @@ class ConfdConfigurationReloader(object): raise errors.ConfdFatalError(err) try: - reloaded = self.reader.Reload() + reloaded = self.processor.reader.Reload() if reloaded: logging.info("Reloaded ganeti config") else: @@ -275,7 +275,7 @@ class ConfdConfigurationReloader(object): """ self.timer_handle = None try: - reloaded = self.reader.Reload() + reloaded = self.processor.reader.Reload() except errors.ConfigurationError: # transform a ConfigurationError in a fatal error, that will cause confd # to quit. @@ -320,15 +320,12 @@ def ExecConfd(options, args): """ mainloop = daemon.Mainloop() - # confd-level SimpleConfigReader - reader = ssconf.SimpleConfigReader() - # Asyncronous confd UDP server - processor = ConfdProcessor(reader) + processor = ConfdProcessor() server = ConfdAsyncUDPServer(options.bind_address, options.port, processor) # Configuration reloader - reloader = ConfdConfigurationReloader(reader, mainloop) + reloader = ConfdConfigurationReloader(processor, mainloop) mainloop.Run() diff --git a/lib/confd/server.py b/lib/confd/server.py index 0930d53e4..7937dfd09 100644 --- a/lib/confd/server.py +++ b/lib/confd/server.py @@ -34,6 +34,7 @@ from ganeti import objects from ganeti import errors from ganeti import utils from ganeti import serializer +from ganeti import ssconf from ganeti.confd import querylib @@ -41,6 +42,8 @@ from ganeti.confd import querylib class ConfdProcessor(object): """A processor for confd requests. + @ivar reader: confd SimpleConfigReader + """ DISPATCH_TABLE = { constants.CONFD_REQ_PING: querylib.PingQuery, @@ -49,14 +52,11 @@ class ConfdProcessor(object): querylib.InstanceIpToNodePrimaryIpQuery, } - def __init__(self, reader): + def __init__(self): """Constructor for ConfdProcessor - @type reader: L{ssconf.SimpleConfigReader} - @param reader: ConfigReader to use to access the config - """ - self.reader = reader + self.reader = ssconf.SimpleConfigReader() self.hmac_key = utils.ReadFile(constants.HMAC_CLUSTER_KEY) assert \ not constants.CONFD_REQS.symmetric_difference(self.DISPATCH_TABLE), \ -- GitLab