Revision b705c7a6 lib/rpc.py
b/lib/rpc.py | ||
---|---|---|
259 | 259 |
|
260 | 260 |
def _AddressLookup(node_list, |
261 | 261 |
ssc=ssconf.SimpleStore, |
262 |
nslookup_fn=netutils.HostInfo.LookupHostname):
|
|
262 |
nslookup_fn=netutils.Hostname.GetIP):
|
|
263 | 263 |
"""Return addresses for given node names. |
264 | 264 |
|
265 | 265 |
@type node_list: list |
... | ... | |
272 | 272 |
@returns: List of corresponding addresses, if found |
273 | 273 |
|
274 | 274 |
""" |
275 |
def _NSLookup(name): |
|
276 |
_, _, addrs = nslookup_fn(name) |
|
277 |
return addrs[0] |
|
278 |
|
|
275 |
iplist = ssc().GetNodePrimaryIPList() |
|
279 | 276 |
addresses = [] |
280 |
try: |
|
281 |
iplist = ssc().GetNodePrimaryIPList() |
|
282 |
ipmap = dict(entry.split() for entry in iplist) |
|
283 |
for node in node_list: |
|
284 |
address = ipmap.get(node) |
|
285 |
if address is None: |
|
286 |
address = _NSLookup(node) |
|
287 |
addresses.append(address) |
|
288 |
except errors.ConfigurationError: |
|
289 |
# Address not found in so we do a NS lookup |
|
290 |
addresses = [_NSLookup(node) for node in node_list] |
|
277 |
ipmap = dict(entry.split() for entry in iplist) |
|
278 |
for node in node_list: |
|
279 |
address = ipmap.get(node) |
|
280 |
if address is None: |
|
281 |
address = nslookup_fn(node) |
|
282 |
addresses.append(address) |
|
291 | 283 |
|
292 | 284 |
return addresses |
293 | 285 |
|
Also available in: Unified diff