From 41e079ce36d9b91ce9c0ee18688f35f188801901 Mon Sep 17 00:00:00 2001 From: Andrea Spadaccini <spadaccio@google.com> Date: Thu, 27 Oct 2011 19:34:57 +0100 Subject: [PATCH] Explicitly pass params to change_master_netmask Make the master explicitly pass the parameters to the change_master_netmask RPC, and change all the call flow to use the new interface. Signed-off-by: Andrea Spadaccini <spadaccio@google.com> Reviewed-by: Michael Hanselmann <hansmi@google.com> --- lib/backend.py | 8 ++++++-- lib/cmdlib.py | 7 ++++--- lib/rpc_defs.py | 5 ++++- lib/server/noded.py | 3 ++- 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/lib/backend.py b/lib/backend.py index 77addb2e9..47a83e3cf 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 d60552be7..53eb65740 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 b4f799e60..c956be02a 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 7e1619ead..07672d98a 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): -- GitLab