From c46b978282757ea313e3d517e4f5e54a62f65f26 Mon Sep 17 00:00:00 2001 From: Luca Bigliardi Date: Mon, 28 Jun 2010 16:47:40 +0100 Subject: [PATCH] Add drbd_helper rpc call Signed-off-by: Luca Bigliardi Reviewed-by: Iustin Pop --- daemons/ganeti-noded | 7 +++++++ lib/backend.py | 10 ++++++++++ lib/rpc.py | 9 +++++++++ 3 files changed, 26 insertions(+) diff --git a/daemons/ganeti-noded b/daemons/ganeti-noded index 21227fa..881e4dd 100755 --- a/daemons/ganeti-noded +++ b/daemons/ganeti-noded @@ -361,6 +361,13 @@ class NodeHttpServer(http.server.HttpServer): disks = [objects.Disk.FromDict(cf) for cf in disks] return backend.DrbdWaitSync(nodes_ip, disks) + @staticmethod + def perspective_drbd_helper(params): + """Query drbd helper. + + """ + return backend.GetDrbdUsermodeHelper() + # export/import -------------------------- @staticmethod diff --git a/lib/backend.py b/lib/backend.py index c6e5c30..9584ef9 100644 --- a/lib/backend.py +++ b/lib/backend.py @@ -3055,6 +3055,16 @@ def DrbdWaitSync(nodes_ip, disks): return (alldone, min_resync) +def GetDrbdUsermodeHelper(): + """Returns DRBD usermode helper currently configured. + + """ + try: + return bdev.BaseDRBD.GetUsermodeHelper() + except errors.BlockDeviceError, err: + _Fail(str(err)) + + def PowercycleNode(hypervisor_type): """Hard-powercycle the node. diff --git a/lib/rpc.py b/lib/rpc.py index 57dd960..83a88cd 100644 --- a/lib/rpc.py +++ b/lib/rpc.py @@ -993,6 +993,15 @@ class RpcRunner(object): return self._MultiNodeCall(node_list, "drbd_wait_sync", [nodes_ip, [cf.ToDict() for cf in disks]]) + @_RpcTimeout(_TMO_URGENT) + def call_drbd_helper(self, node_list): + """Gets drbd helper. + + This is a multi-node call. + + """ + return self._MultiNodeCall(node_list, "drbd_helper", []) + @classmethod @_RpcTimeout(_TMO_NORMAL) def call_upload_file(cls, node_list, file_name, address_list=None): -- 1.7.10.4