From 2e7b8369cce64b9d4ec1368becf25a8ed3c640ff Mon Sep 17 00:00:00 2001 From: Iustin Pop <iustin@google.com> Date: Thu, 5 Feb 2009 10:45:32 +0000 Subject: [PATCH] Fix some issues for lockless queries This patch converts some more jobs with only queries into cheaper luxi queries (no job created), and fixes some fallout from the lockless queries changes. Reviewed-by: ultrotter --- lib/cli.py | 5 ++--- scripts/gnt-cluster | 8 ++++---- scripts/gnt-node | 15 ++++++++------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/lib/cli.py b/lib/cli.py index edb817c38..ce1277d1e 100644 --- a/lib/cli.py +++ b/lib/cli.py @@ -944,9 +944,8 @@ def GetOnlineNodes(nodes, cl=None, nowarn=False): if cl is None: cl = GetClient() - op = opcodes.OpQueryNodes(output_fields=["name", "offline"], - names=nodes) - result = SubmitOpCode(op, cl=cl) + result = cl.QueryNodes(names=nodes, fields=["name", "offline"], + use_locking=False) offline = [row[0] for row in result if row[1]] if offline and not nowarn: ToStderr("Note: skipping offline node(s): %s" % ", ".join(offline)) diff --git a/scripts/gnt-cluster b/scripts/gnt-cluster index 5c9f2c2cd..7bc85d5ca 100755 --- a/scripts/gnt-cluster +++ b/scripts/gnt-cluster @@ -202,8 +202,8 @@ def ShowClusterVersion(opts, args): @return: the desired exit code """ - op = opcodes.OpQueryClusterInfo() - result = SubmitOpCode(op) + cl = GetClient() + result = cl.QueryClusterInfo() ToStdout("Software version: %s", result["software_version"]) ToStdout("Internode protocol: %s", result["protocol_version"]) ToStdout("Configuration format: %s", result["config_version"]) @@ -236,8 +236,8 @@ def ShowClusterConfig(opts, args): @return: the desired exit code """ - op = opcodes.OpQueryClusterInfo() - result = SubmitOpCode(op) + cl = GetClient() + result = cl.QueryClusterInfo() ToStdout("Cluster name: %s", result["name"]) diff --git a/scripts/gnt-node b/scripts/gnt-node index 8c5ad9723..606b7c874 100755 --- a/scripts/gnt-node +++ b/scripts/gnt-node @@ -182,7 +182,6 @@ def EvacuateNode(opts, args): selected_fields = ["name", "sinst_list"] src_node = args[0] - op = opcodes.OpQueryNodes(output_fields=selected_fields, names=[src_node]) result = cl.QueryNodes(names=[src_node], fields=selected_fields, use_locking=True) src_node, sinst = result[0] @@ -238,8 +237,10 @@ def FailoverNode(opts, args): force = opts.force selected_fields = ["name", "pinst_list"] - op = opcodes.OpQueryNodes(output_fields=selected_fields, names=args) - result = SubmitOpCode(op, cl=cl) + # these fields are static data anyway, so it doesn't matter, but + # locking=True should be safer + result = cl.QueryNodes(names=args, fields=selected_fields, + use_locking=True) node, pinst = result[0] if not pinst: @@ -320,10 +321,10 @@ def ShowNodeConfig(opts, args): @return: the desired exit code """ - op = opcodes.OpQueryNodes(output_fields=["name", "pip", "sip", - "pinst_list", "sinst_list"], - names=args) - result = SubmitOpCode(op) + cl = GetClient() + result = cl.QueryNodes(fields=["name", "pip", "sip", + "pinst_list", "sinst_list"], + names=args, use_locking=True) for name, primary_ip, secondary_ip, pinst, sinst in result: ToStdout("Node name: %s", name) -- GitLab