Revision 57c7bc57
b/lib/backend.py | ||
---|---|---|
287 | 287 |
return decorator |
288 | 288 |
|
289 | 289 |
|
290 |
def _BuildMasterIpEnv(master_params): |
|
290 |
def _BuildMasterIpEnv(master_params, use_external_mip_script=None):
|
|
291 | 291 |
"""Builds environment variables for master IP hooks. |
292 | 292 |
|
293 | 293 |
@type master_params: L{objects.MasterNetworkParameters} |
294 | 294 |
@param master_params: network parameters of the master |
295 |
@type use_external_mip_script: boolean |
|
296 |
@param use_external_mip_script: whether to use an external master IP |
|
297 |
address setup script (unused, but necessary per the implementation of the |
|
298 |
_RunLocalHooks decorator) |
|
295 | 299 |
|
296 | 300 |
""" |
301 |
# pylint: disable=W0613 |
|
297 | 302 |
ver = netutils.IPAddress.GetVersionFromAddressFamily(master_params.ip_family) |
298 | 303 |
env = { |
299 | 304 |
"MASTER_NETDEV": master_params.netdev, |
... | ... | |
307 | 312 |
|
308 | 313 |
@RunLocalHooks(constants.FAKE_OP_MASTER_TURNUP, "master-ip-turnup", |
309 | 314 |
_BuildMasterIpEnv) |
310 |
def ActivateMasterIp(master_params): |
|
315 |
def ActivateMasterIp(master_params, use_external_mip_script):
|
|
311 | 316 |
"""Activate the IP address of the master daemon. |
312 | 317 |
|
313 | 318 |
@type master_params: L{objects.MasterNetworkParameters} |
314 | 319 |
@param master_params: network parameters of the master |
320 |
@type use_external_mip_script: boolean |
|
321 |
@param use_external_mip_script: whether to use an external master IP |
|
322 |
address setup script |
|
315 | 323 |
|
316 | 324 |
""" |
325 |
# pylint: disable=W0613 |
|
317 | 326 |
err_msg = None |
318 | 327 |
if netutils.TcpPing(master_params.ip, constants.DEFAULT_NODED_PORT): |
319 | 328 |
if netutils.IPAddress.Own(master_params.ip): |
... | ... | |
380 | 389 |
|
381 | 390 |
@RunLocalHooks(constants.FAKE_OP_MASTER_TURNDOWN, "master-ip-turndown", |
382 | 391 |
_BuildMasterIpEnv) |
383 |
def DeactivateMasterIp(master_params): |
|
392 |
def DeactivateMasterIp(master_params, use_external_mip_script):
|
|
384 | 393 |
"""Deactivate the master IP on this node. |
385 | 394 |
|
386 | 395 |
@type master_params: L{objects.MasterNetworkParameters} |
387 | 396 |
@param master_params: network parameters of the master |
397 |
@type use_external_mip_script: boolean |
|
398 |
@param use_external_mip_script: whether to use an external master IP |
|
399 |
address setup script |
|
388 | 400 |
|
389 | 401 |
""" |
402 |
# pylint: disable=W0613 |
|
390 | 403 |
# TODO: log and report back to the caller the error failures; we |
391 | 404 |
# need to decide in which case we fail the RPC for this |
392 | 405 |
|
b/lib/bootstrap.py | ||
---|---|---|
571 | 571 |
|
572 | 572 |
master_params = cfg.GetMasterNetworkParameters() |
573 | 573 |
master_params.name = master |
574 |
ems = cfg.GetUseExternalMipScript() |
|
574 | 575 |
result = runner.call_node_deactivate_master_ip(master_params.name, |
575 |
master_params) |
|
576 |
master_params, ems)
|
|
576 | 577 |
|
577 | 578 |
msg = result.fail_msg |
578 | 579 |
if msg: |
... | ... | |
714 | 715 |
runner = rpc.BootstrapRunner() |
715 | 716 |
master_params = cfg.GetMasterNetworkParameters() |
716 | 717 |
master_params.name = old_master |
718 |
ems = cfg.GetUseExternalMipScript() |
|
717 | 719 |
result = runner.call_node_deactivate_master_ip(master_params.name, |
718 |
master_params) |
|
720 |
master_params, ems)
|
|
719 | 721 |
|
720 | 722 |
msg = result.fail_msg |
721 | 723 |
if msg: |
b/lib/cmdlib.py | ||
---|---|---|
1364 | 1364 |
# Run post hooks on master node before it's removed |
1365 | 1365 |
_RunPostHook(self, master_params.name) |
1366 | 1366 |
|
1367 |
ems = self.cfg.GetUseExternalMipScript() |
|
1367 | 1368 |
result = self.rpc.call_node_deactivate_master_ip(master_params.name, |
1368 |
master_params) |
|
1369 |
master_params, ems)
|
|
1369 | 1370 |
result.Raise("Could not disable the master role") |
1370 | 1371 |
|
1371 | 1372 |
return master_params.name |
... | ... | |
3358 | 3359 |
|
3359 | 3360 |
# shutdown the master IP |
3360 | 3361 |
master_params = self.cfg.GetMasterNetworkParameters() |
3362 |
ems = self.cfg.GetUseExternalMipScript() |
|
3361 | 3363 |
result = self.rpc.call_node_deactivate_master_ip(master_params.name, |
3362 |
master_params) |
|
3364 |
master_params, ems)
|
|
3363 | 3365 |
result.Raise("Could not disable the master role") |
3364 | 3366 |
|
3365 | 3367 |
try: |
... | ... | |
3379 | 3381 |
finally: |
3380 | 3382 |
master_params.ip = new_ip |
3381 | 3383 |
result = self.rpc.call_node_activate_master_ip(master_params.name, |
3382 |
master_params) |
|
3384 |
master_params, ems)
|
|
3383 | 3385 |
msg = result.fail_msg |
3384 | 3386 |
if msg: |
3385 | 3387 |
self.LogWarning("Could not re-enable the master role on" |
... | ... | |
3737 | 3739 |
|
3738 | 3740 |
if self.op.master_netdev: |
3739 | 3741 |
master_params = self.cfg.GetMasterNetworkParameters() |
3742 |
ems = self.cfg.GetUseExternalMipScript() |
|
3740 | 3743 |
feedback_fn("Shutting down master ip on the current netdev (%s)" % |
3741 | 3744 |
self.cluster.master_netdev) |
3742 | 3745 |
result = self.rpc.call_node_deactivate_master_ip(master_params.name, |
3743 |
master_params) |
|
3746 |
master_params, ems)
|
|
3744 | 3747 |
result.Raise("Could not disable the master ip") |
3745 | 3748 |
feedback_fn("Changing master_netdev from %s to %s" % |
3746 | 3749 |
(master_params.netdev, self.op.master_netdev)) |
... | ... | |
3766 | 3769 |
master_params = self.cfg.GetMasterNetworkParameters() |
3767 | 3770 |
feedback_fn("Starting the master ip on the new master netdev (%s)" % |
3768 | 3771 |
self.op.master_netdev) |
3772 |
ems = self.cfg.GetUseExternalMipScript() |
|
3769 | 3773 |
result = self.rpc.call_node_activate_master_ip(master_params.name, |
3770 |
master_params) |
|
3774 |
master_params, ems)
|
|
3771 | 3775 |
if result.fail_msg: |
3772 | 3776 |
self.LogWarning("Could not re-enable the master ip on" |
3773 | 3777 |
" the master, please restart manually: %s", |
... | ... | |
3935 | 3939 |
|
3936 | 3940 |
""" |
3937 | 3941 |
master_params = self.cfg.GetMasterNetworkParameters() |
3942 |
ems = self.cfg.GetUseExternalMipScript() |
|
3938 | 3943 |
self.rpc.call_node_activate_master_ip(master_params.name, |
3939 |
master_params) |
|
3944 |
master_params, ems)
|
|
3940 | 3945 |
|
3941 | 3946 |
|
3942 | 3947 |
class LUClusterDeactivateMasterIp(NoHooksLU): |
... | ... | |
3948 | 3953 |
|
3949 | 3954 |
""" |
3950 | 3955 |
master_params = self.cfg.GetMasterNetworkParameters() |
3951 |
self.rpc.call_node_deactivate_master_ip(master_params.name, master_params) |
|
3956 |
ems = self.cfg.GetUseExternalMipScript() |
|
3957 |
self.rpc.call_node_deactivate_master_ip(master_params.name, master_params, |
|
3958 |
ems) |
|
3952 | 3959 |
|
3953 | 3960 |
|
3954 | 3961 |
def _WaitForSync(lu, instance, disks=None, oneshot=False): |
b/lib/rpc_defs.py | ||
---|---|---|
490 | 490 |
], None, "Starts master daemons on a node"), |
491 | 491 |
("node_activate_master_ip", SINGLE, TMO_FAST, [ |
492 | 492 |
("master_params", ED_OBJECT_DICT, "Network parameters of the master"), |
493 |
("use_external_mip_script", None, |
|
494 |
"Whether to use the user-provided master IP address setup script"), |
|
493 | 495 |
], None, |
494 | 496 |
"Activates master IP on a node"), |
495 | 497 |
("node_stop_master", SINGLE, TMO_FAST, [], None, |
496 | 498 |
"Deactivates master IP and stops master daemons on a node"), |
497 | 499 |
("node_deactivate_master_ip", SINGLE, TMO_FAST, [ |
498 | 500 |
("master_params", ED_OBJECT_DICT, "Network parameters of the master"), |
501 |
("use_external_mip_script", None, |
|
502 |
"Whether to use the user-provided master IP address setup script"), |
|
499 | 503 |
], None, |
500 | 504 |
"Deactivates master IP on a node"), |
501 | 505 |
("node_change_master_netmask", SINGLE, TMO_FAST, [ |
b/lib/server/masterd.py | ||
---|---|---|
537 | 537 |
# activate ip |
538 | 538 |
cfg = config.ConfigWriter() |
539 | 539 |
master_params = cfg.GetMasterNetworkParameters() |
540 |
ems = cfg.GetUseExternalMipScript() |
|
540 | 541 |
runner = rpc.BootstrapRunner() |
541 | 542 |
result = runner.call_node_activate_master_ip(master_params.name, |
542 |
master_params) |
|
543 |
master_params, ems)
|
|
543 | 544 |
|
544 | 545 |
msg = result.fail_msg |
545 | 546 |
if msg: |
b/lib/server/noded.py | ||
---|---|---|
698 | 698 |
|
699 | 699 |
""" |
700 | 700 |
master_params = objects.MasterNetworkParameters.FromDict(params[0]) |
701 |
return backend.ActivateMasterIp(master_params) |
|
701 |
return backend.ActivateMasterIp(master_params, params[1])
|
|
702 | 702 |
|
703 | 703 |
@staticmethod |
704 | 704 |
def perspective_node_deactivate_master_ip(params): |
... | ... | |
706 | 706 |
|
707 | 707 |
""" |
708 | 708 |
master_params = objects.MasterNetworkParameters.FromDict(params[0]) |
709 |
return backend.DeactivateMasterIp(master_params) |
|
709 |
return backend.DeactivateMasterIp(master_params, params[1])
|
|
710 | 710 |
|
711 | 711 |
@staticmethod |
712 | 712 |
def perspective_node_stop_master(params): |
Also available in: Unified diff