Revision 250554a9 lib/confd/querylib.py
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 |
|
Also available in: Unified diff