diff --git a/lib/backend.py b/lib/backend.py index 77addb2e9583107336ee57427b7dd85b37218f00..47a83e3cfefbace27974626553d95038065da4e4 100644 --- a/lib/backend.py +++ b/lib/backend.py @@ -412,11 +412,15 @@ def StopMasterDaemons(): result.cmd, result.exit_code, result.output) -def ChangeMasterNetmask(netmask): +def ChangeMasterNetmask(old_netmask, netmask, master_ip, master_netdev): """Change the netmask of the master IP. + @param old_netmask: the old value of the netmask + @param netmask: the new value of the netmask + @param master_ip: the master IP + @param master_netdev: the master network device + """ - master_netdev, master_ip, _, _, old_netmask = GetMasterInfo() if old_netmask == netmask: return diff --git a/lib/cmdlib.py b/lib/cmdlib.py index d60552be742b38e918e932cd9de15859aa07616b..53eb657402384bd4d0177c6ddaab62a18e2d852d 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -3710,10 +3710,11 @@ class LUClusterSetParams(LogicalUnit): self.cluster.master_netdev = self.op.master_netdev if self.op.master_netmask: - master = self.cfg.GetMasterNode() + (master, ip, dev, old_netmask, _) = self.cfg.GetMasterNetworkParameters() feedback_fn("Changing master IP netmask to %s" % self.op.master_netmask) - result = self.rpc.call_node_change_master_netmask(master, - self.op.master_netmask) + result = self.rpc.call_node_change_master_netmask(master, old_netmask, + self.op.master_netmask, + ip, dev) if result.fail_msg: msg = "Could not change the master IP netmask: %s" % result.fail_msg self.LogWarning(msg) diff --git a/lib/rpc_defs.py b/lib/rpc_defs.py index b4f799e60bbe8f93aa305c8eec5ccf89f496c160..c956be02aaffa63f7a3a6f840994792eeb1fb1a8 100644 --- a/lib/rpc_defs.py +++ b/lib/rpc_defs.py @@ -414,7 +414,10 @@ CALLS = { ], None, "Deactivates master IP on a node"), ("node_change_master_netmask", SINGLE, TMO_FAST, [ - ("netmask", None, None), + ("old_netmask", None, "The old value of the netmask"), + ("netmask", None, "The new value of the netmask"), + ("master_ip", None, "The master IP"), + ("master_netdev", None, "The master network device"), ], None, "Change master IP netmask"), ("node_leave_cluster", SINGLE, TMO_NORMAL, [ ("modify_ssh_setup", None, None), diff --git a/lib/server/noded.py b/lib/server/noded.py index 7e1619ead26db1555805385211aa96e3b49ffadf..07672d98ab9b98bfe3395ce7a8d84426b8c5eca0 100644 --- a/lib/server/noded.py +++ b/lib/server/noded.py @@ -718,7 +718,8 @@ class NodeHttpServer(http.server.HttpServer): """Change the master IP netmask. """ - return backend.ChangeMasterNetmask(params[0]) + return backend.ChangeMasterNetmask(params[0], params[1], params[2], + params[3]) @staticmethod def perspective_node_leave_cluster(params):