diff --git a/lib/backend.py b/lib/backend.py index c1c205daf2a70fae6301bea2c3afaa426d393ef2..29f0723af44dbfb5f41de96b86367333d37f68d1 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 a7c865312b6a24212351cb47cef957cefbb12165..db5cd4bd84f1368e2308f64a1191b1dc612b4971 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 53eb657402384bd4d0177c6ddaab62a18e2d852d..f0bb09b83197429ff4049520471fdb80ba2fa783 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 c956be02aaffa63f7a3a6f840994792eeb1fb1a8..6550b57369b799f3add209e64df6dc06ffbe4f0c 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 07672d98ab9b98bfe3395ce7a8d84426b8c5eca0..c701a23380ac262b6e4c66913a8fe159902e7a3f 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):