From 91ae95fd00961cf94b1d19182742e93efef9b58d Mon Sep 17 00:00:00 2001 From: Andrea Spadaccini <spadaccio@google.com> Date: Wed, 2 Nov 2011 15:33:21 +0000 Subject: [PATCH] Uniform master IP activation and deactivation Add the master IP family parameter to the master IP deactivation RPCs, so that the activation and deactivation interfaces are uniform. Signed-off-by: Andrea Spadaccini <spadaccio@google.com> Reviewed-by: Guido Trotter <ultrotter@google.com> --- lib/backend.py | 4 +++- lib/bootstrap.py | 9 +++++---- lib/cmdlib.py | 17 ++++++++++------- lib/rpc_defs.py | 1 + lib/server/noded.py | 3 ++- 5 files changed, 21 insertions(+), 13 deletions(-) diff --git a/lib/backend.py b/lib/backend.py index c1c205daf..29f0723af 100644 --- a/lib/backend.py +++ b/lib/backend.py @@ -375,14 +375,16 @@ def StartMasterDaemons(no_voting): @RunLocalHooks(constants.FAKE_OP_MASTER_TURNDOWN, "master-ip-turndown", _BuildMasterIpEnv) -def DeactivateMasterIp(master_ip, master_netmask, master_netdev): +def DeactivateMasterIp(master_ip, master_netmask, master_netdev, family): """Deactivate the master IP on this node. @param master_ip: the master IP @param master_netmask: the master IP netmask @param master_netdev: the master network device + @param family: the IP family """ + # pylint: disable=W0613 # TODO: log and report back to the caller the error failures; we # need to decide in which case we fail the RPC for this diff --git a/lib/bootstrap.py b/lib/bootstrap.py index a7c865312..db5cd4bd8 100644 --- a/lib/bootstrap.py +++ b/lib/bootstrap.py @@ -567,8 +567,9 @@ def FinalizeClusterDestroy(master): modify_ssh_setup = cfg.GetClusterInfo().modify_ssh_setup runner = rpc.BootstrapRunner() - (_, ip, netdev, netmask, _) = cfg.GetMasterNetworkParameters() - result = runner.call_node_deactivate_master_ip(master, ip, netmask, netdev) + (_, ip, netdev, netmask, family) = cfg.GetMasterNetworkParameters() + result = runner.call_node_deactivate_master_ip(master, ip, netmask, netdev, + family) msg = result.fail_msg if msg: logging.warning("Could not disable the master IP: %s", msg) @@ -707,9 +708,9 @@ def MasterFailover(no_voting=False): logging.info("Stopping the master daemon on node %s", old_master) runner = rpc.BootstrapRunner() - (_, ip, netdev, netmask, _) = cfg.GetMasterNetworkParameters() + (_, ip, netdev, netmask, family) = cfg.GetMasterNetworkParameters() result = runner.call_node_deactivate_master_ip(old_master, ip, netmask, - netdev) + netdev, family) msg = result.fail_msg if msg: logging.warning("Could not disable the master IP: %s", msg) diff --git a/lib/cmdlib.py b/lib/cmdlib.py index 53eb65740..f0bb09b83 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -1355,12 +1355,13 @@ class LUClusterDestroy(LogicalUnit): """Destroys the cluster. """ - (master, ip, dev, netmask, _) = self.cfg.GetMasterNetworkParameters() + (master, ip, dev, netmask, family) = self.cfg.GetMasterNetworkParameters() # Run post hooks on master node before it's removed _RunPostHook(self, master) - result = self.rpc.call_node_deactivate_master_ip(master, ip, netmask, dev) + result = self.rpc.call_node_deactivate_master_ip(master, ip, netmask, dev, + family) result.Raise("Could not disable the master role") return master @@ -3327,7 +3328,8 @@ class LUClusterRename(LogicalUnit): # shutdown the master IP (master, ip, dev, netmask, family) = self.cfg.GetMasterNetworkParameters() - result = self.rpc.call_node_deactivate_master_ip(master, ip, netmask, dev) + result = self.rpc.call_node_deactivate_master_ip(master, ip, netmask, dev, + family) result.Raise("Could not disable the master role") try: @@ -3700,10 +3702,11 @@ class LUClusterSetParams(LogicalUnit): helper_os("blacklisted_os", self.op.blacklisted_os, "blacklisted") if self.op.master_netdev: - (master, ip, dev, netmask, _) = self.cfg.GetMasterNetworkParameters() + (master, ip, dev, netmask, family) = self.cfg.GetMasterNetworkParameters() feedback_fn("Shutting down master ip on the current netdev (%s)" % self.cluster.master_netdev) - result = self.rpc.call_node_deactivate_master_ip(master, ip, netmask, dev) + result = self.rpc.call_node_deactivate_master_ip(master, ip, netmask, dev, + family) result.Raise("Could not disable the master ip") feedback_fn("Changing master_netdev from %s to %s" % (dev, self.op.master_netdev)) @@ -3903,8 +3906,8 @@ class LUClusterDeactivateMasterIp(NoHooksLU): """Deactivate the master IP. """ - (master, ip, dev, netmask, _) = self.cfg.GetMasterNetworkParameters() - self.rpc.call_node_deactivate_master_ip(master, ip, netmask, dev) + (master, ip, dev, netmask, family) = self.cfg.GetMasterNetworkParameters() + self.rpc.call_node_deactivate_master_ip(master, ip, netmask, dev, family) def _WaitForSync(lu, instance, disks=None, oneshot=False): diff --git a/lib/rpc_defs.py b/lib/rpc_defs.py index c956be02a..6550b5736 100644 --- a/lib/rpc_defs.py +++ b/lib/rpc_defs.py @@ -411,6 +411,7 @@ CALLS = { ("master_ip", None, "The master IP"), ("master_netmask", None, "The master IP netmask"), ("master_netdev", None, "The master network device"), + ("ip_family", None, "The cluster IP family"), ], None, "Deactivates master IP on a node"), ("node_change_master_netmask", SINGLE, TMO_FAST, [ diff --git a/lib/server/noded.py b/lib/server/noded.py index 07672d98a..c701a2338 100644 --- a/lib/server/noded.py +++ b/lib/server/noded.py @@ -704,7 +704,8 @@ class NodeHttpServer(http.server.HttpServer): """Deactivate the master IP on this node. """ - return backend.DeactivateMasterIp(params[0], params[1], params[2]) + return backend.DeactivateMasterIp(params[0], params[1], params[2], + params[3]) @staticmethod def perspective_node_stop_master(params): -- GitLab