Revision 250554a9

b/lib/confd/querylib.py
98 98
    """ClusterMasterQuery main execution
99 99

  
100 100
    """
101
    if query is None:
101
    if isinstance(query, dict):
102
      if constants.CONFD_REQQ_FIELDS in query:
103
        status = constants.CONFD_REPL_STATUS_OK
104
        req_fields = query[constants.CONFD_REQQ_FIELDS]
105
        if not isinstance(req_fields, (list, tuple)):
106
          logging.debug("FIELDS request should be a list")
107
          return QUERY_ARGUMENT_ERROR
108

  
109
        answer = []
110
        for field in req_fields:
111
          if field == constants.CONFD_REQFIELD_NAME:
112
            answer.append(self.reader.GetMasterNode())
113
          elif field == constants.CONFD_REQFIELD_IP:
114
            answer.append(self.reader.GetMasterIP())
115
      else:
116
        logging.debug("missing FIELDS in query dict")
117
        return QUERY_ARGUMENT_ERROR
118
    elif not query:
102 119
      status = constants.CONFD_REPL_STATUS_OK
103 120
      answer = self.reader.GetMasterNode()
104 121
    else:
105
      status = constants.CONFD_REPL_STATUS_ERROR
106
      answer = 'master query accepts no query argument'
122
      logging.debug("Invalid master query argument: not dict or empty")
123
      return QUERY_ARGUMENT_ERROR
107 124

  
108 125
    return status, answer
109 126

  
b/lib/constants.py
687 687
CONFD_REQQ_LINK = "0"
688 688
CONFD_REQQ_IP = "1"
689 689
CONFD_REQQ_IPLIST = "2"
690
CONFD_REQQ_FIELDS = "3"
691

  
692
CONFD_REQFIELD_NAME = "0"
693
CONFD_REQFIELD_IP = "1"
690 694

  
691 695
CONFD_REQS = frozenset([
692 696
  CONFD_REQ_PING,

Also available in: Unified diff