Revision e369f21d lib/confd/server.py

b/lib/confd/server.py
43 43
  """A processor for confd requests.
44 44

  
45 45
  @ivar reader: confd SimpleConfigReader
46
  @ivar disabled: whether confd serving is disabled
46 47

  
47 48
  """
48 49
  DISPATCH_TABLE = {
......
56 57
    """Constructor for ConfdProcessor
57 58

  
58 59
    """
59
    self.reader = ssconf.SimpleConfigReader()
60
    self.disabled = True
60 61
    self.hmac_key = utils.ReadFile(constants.HMAC_CLUSTER_KEY)
62
    self.reader = None
61 63
    assert \
62 64
      not constants.CONFD_REQS.symmetric_difference(self.DISPATCH_TABLE), \
63 65
      "DISPATCH_TABLE is unaligned with CONFD_REQS"
64 66

  
67
  def Enable(self):
68
    try:
69
      self.reader = ssconf.SimpleConfigReader()
70
      self.disabled = False
71
    except errors.ConfigurationError:
72
      self.disabled = True
73
      raise
74

  
75
  def Disable(self):
76
    self.disabled = True
77
    self.reader = None
78

  
65 79
  def ExecQuery(self, payload_in, ip, port):
66 80
    """Process a single UDP request from a client.
67 81

  
......
73 87
    @type port: source port
74 88

  
75 89
    """
90
    if self.disabled:
91
      logging.debug('Confd is disabled. Ignoring query.')
92
      return
76 93
    try:
77 94
      request = self.ExtractRequest(payload_in)
78 95
      reply, rsalt = self.ProcessRequest(request)

Also available in: Unified diff