From 4e071d3b89793af09f2f84304b182257221cb6b5 Mon Sep 17 00:00:00 2001
From: Iustin Pop <iustin@google.com>
Date: Tue, 9 Sep 2008 12:24:50 +0000
Subject: [PATCH] Export backend.GetMasterInfo over the rpc layer

We create a multi-node call so that querying all nodes for agreement
will be fast.

Reviewed-by: imsnah
---
 daemons/ganeti-noded | 10 ++++++++++
 lib/rpc.py           | 12 ++++++++++++
 2 files changed, 22 insertions(+)

diff --git a/daemons/ganeti-noded b/daemons/ganeti-noded
index 59b3c3400..3de30d368 100755
--- a/daemons/ganeti-noded
+++ b/daemons/ganeti-noded
@@ -472,6 +472,12 @@ class NodeDaemonRequestHandler(http.HTTPRequestHandler):
     """
     return backend.UploadFile(*params)
 
+  @staticmethod
+  def perspective_master_info(params):
+    """Query master information.
+
+    """
+    return backend.GetMasterInfo()
 
   # os -----------------------
 
@@ -526,6 +532,8 @@ class NodeDaemonRequestHandler(http.HTTPRequestHandler):
     duration = params[0]
     return utils.TestDelay(duration)
 
+  # file storage ---------------
+
   @staticmethod
   def perspective_file_storage_dir_create(params):
     """Create the file storage directory.
@@ -552,6 +560,8 @@ class NodeDaemonRequestHandler(http.HTTPRequestHandler):
     return backend.RenameFileStorageDir(old_file_storage_dir,
                                         new_file_storage_dir)
 
+  # jobs ------------------------
+
   @staticmethod
   @_RequireJobQueueLock
   def perspective_jobqueue_update(params):
diff --git a/lib/rpc.py b/lib/rpc.py
index 9fd542ccb..f3e85e889 100644
--- a/lib/rpc.py
+++ b/lib/rpc.py
@@ -384,6 +384,18 @@ def call_node_stop_master(node, stop_daemons):
   return c.getresult().get(node, False)
 
 
+def call_master_info(node_list):
+  """Query master info.
+
+  This is a multi-node call.
+
+  """
+  c = Client("master_info", [])
+  c.connect_list(node_list)
+  c.run()
+  return c.getresult()
+
+
 def call_version(node_list):
   """Query node version.
 
-- 
GitLab