From 600eeb319f30463e7feea89306dabe794c0d4a03 Mon Sep 17 00:00:00 2001 From: Apollon Oikonomopoulos <apollon@noc.grnet.gr> Date: Mon, 18 Apr 2011 18:01:41 +0300 Subject: [PATCH] Add network query LUXI method Signed-off-by: Apollon Oikonomopoulos <apollon@noc.grnet.gr> --- lib/luxi.py | 4 ++++ lib/server/masterd.py | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/lib/luxi.py b/lib/luxi.py index 2f434f636..9e2930e9f 100644 --- a/lib/luxi.py +++ b/lib/luxi.py @@ -61,6 +61,7 @@ REQ_QUERY_JOBS = "QueryJobs" REQ_QUERY_INSTANCES = "QueryInstances" REQ_QUERY_NODES = "QueryNodes" REQ_QUERY_GROUPS = "QueryGroups" +REQ_QUERY_NETWORKS = "QueryNetworks" REQ_QUERY_EXPORTS = "QueryExports" REQ_QUERY_CONFIG_VALUES = "QueryConfigValues" REQ_QUERY_CLUSTER_INFO = "QueryClusterInfo" @@ -539,6 +540,9 @@ class Client(object): def QueryGroups(self, names, fields, use_locking): return self.CallMethod(REQ_QUERY_GROUPS, (names, fields, use_locking)) + def QueryNetworks(self, names, fields, use_locking): + return self.CallMethod(REQ_QUERY_NETWORKS, (names, fields, use_locking)) + def QueryExports(self, nodes, use_locking): return self.CallMethod(REQ_QUERY_EXPORTS, (nodes, use_locking)) diff --git a/lib/server/masterd.py b/lib/server/masterd.py index aa56df8aa..9efbf71d8 100644 --- a/lib/server/masterd.py +++ b/lib/server/masterd.py @@ -301,6 +301,15 @@ class ClientOps: op = opcodes.OpGroupQuery(names=names, output_fields=fields) return self._Query(op) + elif method == luxi.REQ_QUERY_NETWORKS: + (names, fields, use_locking) = args + logging.info("Received network query request for %s", names) + if use_locking: + raise errors.OpPrereqError("Sync queries are not allowed", + errors.ECODE_INVAL) + op = opcodes.OpNetworkQuery(names=names, output_fields=fields) + return self._Query(op) + elif method == luxi.REQ_QUERY_EXPORTS: nodes, use_locking = args if use_locking: -- GitLab