From 637b8d7ec2a2267d99ac213812ed529a2fd1fb30 Mon Sep 17 00:00:00 2001
From: Michael Hanselmann <hansmi@google.com>
Date: Fri, 14 Aug 2009 17:37:45 +0200
Subject: [PATCH] Add RPC call for storage operations

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
---
 daemons/ganeti-noded | 8 ++++++++
 lib/rpc.py           | 9 +++++++++
 2 files changed, 17 insertions(+)

diff --git a/daemons/ganeti-noded b/daemons/ganeti-noded
index e37c78985..58d755e10 100755
--- a/daemons/ganeti-noded
+++ b/daemons/ganeti-noded
@@ -385,6 +385,14 @@ class NodeHttpServer(http.server.HttpServer):
     (su_name, su_args, name, changes) = params
     return storage.GetStorage(su_name, *su_args).Modify(name, changes)
 
+  @staticmethod
+  def perspective_storage_execute(params):
+    """Execute an operation on a storage unit.
+
+    """
+    (su_name, su_args, name, op) = params
+    return storage.GetStorage(su_name, *su_args).Execute(name, op)
+
   # bridge  --------------------------
 
   @staticmethod
diff --git a/lib/rpc.py b/lib/rpc.py
index c2e088014..235754e21 100644
--- a/lib/rpc.py
+++ b/lib/rpc.py
@@ -450,6 +450,15 @@ class RpcRunner(object):
     return self._SingleNodeCall(node, "storage_modify",
                                 [su_name, su_args, name, changes])
 
+  def call_storage_execute(self, node, su_name, su_args, name, op):
+    """Executes an operation on a storage unit.
+
+    This is a single-node call.
+
+    """
+    return self._SingleNodeCall(node, "storage_execute",
+                                [su_name, su_args, name, op])
+
   def call_bridges_exist(self, node, bridges_list):
     """Checks if a node has all the bridges given.
 
-- 
GitLab