Revision d01ae714

b/lib/confd/querylib.py
208 208

  
209 209
    return status, answer
210 210

  
211

  
212
class InstancesIpsQuery(ConfdQuery):
213
  """A query for instances IPs.
214

  
215
  It returns the list of instances IPs.
216

  
217
  """
218
  def Exec(self, query):
219
    """InstancesIpsQuery main execution.
220

  
221
    """
222
    if query is None:
223
      status = constants.CONFD_REPL_STATUS_OK
224
      answer = self.reader.GetInstancesIps()
225
    else:
226
      status = constants.CONFD_REPL_STATUS_ERROR
227
      answer = "non-empty instances IPs query"
228

  
229
    return status, answer
230

  
b/lib/confd/server.py
54 54
    constants.CONFD_REQ_CLUSTER_MASTER: querylib.ClusterMasterQuery,
55 55
    constants.CONFD_REQ_NODE_PIP_LIST: querylib.NodesPipsQuery,
56 56
    constants.CONFD_REQ_MC_PIP_LIST: querylib.MasterCandidatesPipsQuery,
57
    constants.CONFD_REQ_INSTANCES_IPS_LIST: querylib.InstancesIpsQuery,
57 58
    }
58 59

  
59 60
  def __init__(self):
b/lib/constants.py
641 641
CONFD_REQ_CLUSTER_MASTER = 3
642 642
CONFD_REQ_NODE_PIP_LIST = 4
643 643
CONFD_REQ_MC_PIP_LIST = 5
644
CONFD_REQ_INSTANCES_IPS_LIST = 6
644 645

  
645 646
CONFD_REQS = frozenset([
646 647
  CONFD_REQ_PING,
......
649 650
  CONFD_REQ_CLUSTER_MASTER,
650 651
  CONFD_REQ_NODE_PIP_LIST,
651 652
  CONFD_REQ_MC_PIP_LIST,
653
  CONFD_REQ_INSTANCES_IPS_LIST,
652 654
  ])
653 655

  
654 656
CONFD_REPL_STATUS_OK = 0
b/lib/ssconf.py
100 100
                                      (self._file_name, err))
101 101

  
102 102
    self._ip_to_instance = {}
103
    self._instances_ips = []
103 104
    for iname in self._config_data['instances']:
104 105
      instance = self._config_data['instances'][iname]
105 106
      for nic in instance['nics']:
106 107
        if 'ip' in nic and nic['ip']:
108
          self._instances_ips.append(nic['ip'])
107 109
          self._ip_to_instance[nic['ip']] = iname
108 110

  
109 111
    self._nodes_primary_ips = []
......
201 203
  def GetMasterCandidatesPrimaryIps(self):
202 204
    return self._mc_primary_ips
203 205

  
206
  def GetInstancesIps(self):
207
    return self._instances_ips
208

  
204 209

  
205 210
class SimpleStore(object):
206 211
  """Interface to static cluster data.

Also available in: Unified diff