Revision 5a8648eb lib/backend.py
b/lib/backend.py | ||
---|---|---|
231 | 231 |
for consumption here or from the node daemon. |
232 | 232 |
|
233 | 233 |
@rtype: tuple |
234 |
@return: master_netdev, master_ip, master_name, primary_ip_family |
|
234 |
@return: master_netdev, master_ip, master_netmask, master_name, |
|
235 |
primary_ip_family |
|
235 | 236 |
@raise RPCFail: in case of errors |
236 | 237 |
|
237 | 238 |
""" |
... | ... | |
239 | 240 |
cfg = _GetConfig() |
240 | 241 |
master_netdev = cfg.GetMasterNetdev() |
241 | 242 |
master_ip = cfg.GetMasterIP() |
243 |
master_netmask = cfg.GetMasterNetmask() |
|
242 | 244 |
master_node = cfg.GetMasterNode() |
243 | 245 |
primary_ip_family = cfg.GetPrimaryIPFamily() |
244 | 246 |
except errors.ConfigurationError, err: |
245 | 247 |
_Fail("Cluster configuration incomplete: %s", err, exc=True) |
246 |
return (master_netdev, master_ip, master_node, primary_ip_family) |
|
248 |
return (master_netdev, master_ip, master_netmask, master_node, |
|
249 |
primary_ip_family) |
|
247 | 250 |
|
248 | 251 |
|
249 | 252 |
def ActivateMasterIp(): |
... | ... | |
251 | 254 |
|
252 | 255 |
""" |
253 | 256 |
# GetMasterInfo will raise an exception if not able to return data |
254 |
master_netdev, master_ip, _, family = GetMasterInfo() |
|
257 |
master_netdev, master_ip, master_netmask, _, family = GetMasterInfo()
|
|
255 | 258 |
|
256 | 259 |
err_msg = None |
257 | 260 |
if netutils.TcpPing(master_ip, constants.DEFAULT_NODED_PORT): |
... | ... | |
267 | 270 |
ipcls = netutils.IP6Address |
268 | 271 |
|
269 | 272 |
result = utils.RunCmd([constants.IP_COMMAND_PATH, "address", "add", |
270 |
"%s/%d" % (master_ip, ipcls.iplen),
|
|
273 |
"%s/%s" % (master_ip, master_netmask),
|
|
271 | 274 |
"dev", master_netdev, "label", |
272 | 275 |
"%s:0" % master_netdev]) |
273 | 276 |
if result.failed: |
... | ... | |
325 | 328 |
# need to decide in which case we fail the RPC for this |
326 | 329 |
|
327 | 330 |
# GetMasterInfo will raise an exception if not able to return data |
328 |
master_netdev, master_ip, _, family = GetMasterInfo() |
|
329 |
|
|
330 |
ipcls = netutils.IP4Address |
|
331 |
if family == netutils.IP6Address.family: |
|
332 |
ipcls = netutils.IP6Address |
|
331 |
master_netdev, master_ip, master_netmask, _, _ = GetMasterInfo() |
|
333 | 332 |
|
334 | 333 |
result = utils.RunCmd([constants.IP_COMMAND_PATH, "address", "del", |
335 |
"%s/%d" % (master_ip, ipcls.iplen),
|
|
334 |
"%s/%s" % (master_ip, master_netmask),
|
|
336 | 335 |
"dev", master_netdev]) |
337 | 336 |
if result.failed: |
338 | 337 |
logging.error("Can't remove the master IP, error: %s", result.output) |
... | ... | |
357 | 356 |
result.cmd, result.exit_code, result.output) |
358 | 357 |
|
359 | 358 |
|
359 |
def ChangeMasterNetmask(netmask): |
|
360 |
"""Change the netmask of the master IP. |
|
361 |
|
|
362 |
""" |
|
363 |
master_netdev, master_ip, old_netmask, _, _ = GetMasterInfo() |
|
364 |
if old_netmask == netmask: |
|
365 |
return |
|
366 |
|
|
367 |
result = utils.RunCmd([constants.IP_COMMAND_PATH, "address", "add", |
|
368 |
"%s/%s" % (master_ip, netmask), |
|
369 |
"dev", master_netdev, "label", |
|
370 |
"%s:0" % master_netdev]) |
|
371 |
if result.failed: |
|
372 |
_Fail("Could not change the master IP netmask") |
|
373 |
|
|
374 |
result = utils.RunCmd([constants.IP_COMMAND_PATH, "address", "del", |
|
375 |
"%s/%s" % (master_ip, old_netmask), |
|
376 |
"dev", master_netdev, "label", |
|
377 |
"%s:0" % master_netdev]) |
|
378 |
if result.failed: |
|
379 |
_Fail("Could not change the master IP netmask") |
|
380 |
|
|
381 |
|
|
360 | 382 |
def EtcHostsModify(mode, host, ip): |
361 | 383 |
"""Modify a host entry in /etc/hosts. |
362 | 384 |
|
Also available in: Unified diff