Revision 23824641 lib/ssconf.py
b/lib/ssconf.py | ||
---|---|---|
34 | 34 |
from ganeti import constants |
35 | 35 |
from ganeti import utils |
36 | 36 |
from ganeti import serializer |
37 |
from ganeti import objects |
|
37 | 38 |
|
38 | 39 |
|
39 | 40 |
SSCONF_LOCK_TIMEOUT = 10 |
... | ... | |
101 | 102 |
|
102 | 103 |
self._ip_to_instance = {} |
103 | 104 |
self._instances_ips = [] |
105 |
self._inst_ips_by_link = {} |
|
106 |
c_nparams = self._config_data['cluster']['nicparams'][constants.PP_DEFAULT] |
|
104 | 107 |
for iname in self._config_data['instances']: |
105 | 108 |
instance = self._config_data['instances'][iname] |
106 | 109 |
for nic in instance['nics']: |
107 | 110 |
if 'ip' in nic and nic['ip']: |
108 | 111 |
self._instances_ips.append(nic['ip']) |
109 | 112 |
self._ip_to_instance[nic['ip']] = iname |
113 |
params = objects.FillDict(c_nparams, nic['nicparams']) |
|
114 |
if not params['link'] in self._inst_ips_by_link: |
|
115 |
self._inst_ips_by_link[params['link']] = [] |
|
116 |
self._inst_ips_by_link[params['link']].append(nic['ip']) |
|
110 | 117 |
|
111 | 118 |
self._nodes_primary_ips = [] |
112 | 119 |
self._mc_primary_ips = [] |
... | ... | |
203 | 210 |
def GetMasterCandidatesPrimaryIps(self): |
204 | 211 |
return self._mc_primary_ips |
205 | 212 |
|
206 |
def GetInstancesIps(self): |
|
207 |
return self._instances_ips |
|
213 |
def GetInstancesIps(self, link): |
|
214 |
if link is None: |
|
215 |
return self._instances_ips |
|
216 |
if link in self._inst_ips_by_link: |
|
217 |
return self._inst_ips_by_link[link] |
|
218 |
else: |
|
219 |
return [] |
|
208 | 220 |
|
209 | 221 |
|
210 | 222 |
class SimpleStore(object): |
Also available in: Unified diff