59 |
59 |
self._last_size = None
|
60 |
60 |
|
61 |
61 |
self._config_data = None
|
62 |
|
self._instances_ips = None
|
63 |
62 |
self._inst_ips_by_link = None
|
64 |
|
self._ip_to_instance = None
|
|
63 |
self._ip_to_inst_by_link = None
|
65 |
64 |
self._mc_primary_ips = None
|
66 |
65 |
self._nodes_primary_ips = None
|
67 |
66 |
|
... | ... | |
106 |
105 |
raise errors.ConfigurationError("Cannot load config file %s: %s" %
|
107 |
106 |
(self._file_name, err))
|
108 |
107 |
|
109 |
|
self._ip_to_instance = {}
|
|
108 |
self._ip_to_inst_by_link = {}
|
110 |
109 |
self._instances_ips = []
|
111 |
110 |
self._inst_ips_by_link = {}
|
112 |
111 |
c_nparams = self._config_data['cluster']['nicparams'][constants.PP_DEFAULT]
|
... | ... | |
114 |
113 |
instance = self._config_data['instances'][iname]
|
115 |
114 |
for nic in instance['nics']:
|
116 |
115 |
if 'ip' in nic and nic['ip']:
|
117 |
|
self._instances_ips.append(nic['ip'])
|
118 |
|
self._ip_to_instance[nic['ip']] = iname
|
119 |
116 |
params = objects.FillDict(c_nparams, nic['nicparams'])
|
120 |
117 |
if not params['link'] in self._inst_ips_by_link:
|
121 |
118 |
self._inst_ips_by_link[params['link']] = []
|
|
119 |
self._ip_to_inst_by_link[params['link']] = {}
|
|
120 |
self._ip_to_inst_by_link[params['link']][nic['ip']] = iname
|
122 |
121 |
self._inst_ips_by_link[params['link']].append(nic['ip'])
|
123 |
122 |
|
124 |
123 |
self._nodes_primary_ips = []
|
... | ... | |
185 |
184 |
offline = self._config_data["nodes"][node]["offline"]
|
186 |
185 |
return master_candidate, drained, offline
|
187 |
186 |
|
188 |
|
def GetInstanceByIp(self, ip):
|
189 |
|
if ip not in self._ip_to_instance:
|
|
187 |
def GetInstanceByLinkIp(self, ip, link):
|
|
188 |
if not link:
|
|
189 |
link = self.GetDefaultNicLink()
|
|
190 |
if not link in self._ip_to_inst_by_link:
|
190 |
191 |
return None
|
191 |
|
return self._ip_to_instance[ip]
|
|
192 |
if not ip in self._ip_to_inst_by_link[link]:
|
|
193 |
return None
|
|
194 |
return self._ip_to_inst_by_link[link][ip]
|
192 |
195 |
|
193 |
196 |
def GetNodePrimaryIp(self, node):
|
194 |
197 |
"""Get a node's primary ip
|
... | ... | |
223 |
226 |
return self._mc_primary_ips
|
224 |
227 |
|
225 |
228 |
def GetInstancesIps(self, link):
|
226 |
|
if link is None:
|
227 |
|
return self._instances_ips
|
|
229 |
if not link:
|
|
230 |
link = self.GetDefaultNicLink()
|
|
231 |
|
228 |
232 |
if link in self._inst_ips_by_link:
|
229 |
233 |
return self._inst_ips_by_link[link]
|
230 |
234 |
else:
|