diff --git a/daemons/ganeti-noded b/daemons/ganeti-noded index 75e9f819b4fdf418828ee04b7c29226ebe63b62a..db3c7aa88648bf23528553089d51ee9b57c99b27 100755 --- a/daemons/ganeti-noded +++ b/daemons/ganeti-noded @@ -42,6 +42,7 @@ from ganeti import jstore from ganeti import daemon from ganeti import http from ganeti import utils +from ganeti import storage import ganeti.http.server @@ -354,6 +355,16 @@ class NodeHttpServer(http.server.HttpServer): """ return backend.ListVolumeGroups() + # Storage -------------------------- + + @staticmethod + def perspective_storage_list(params): + """Get list of storage units. + + """ + (su_name, su_args, name, fields) = params + return storage.GetStorage(su_name, *su_args).List(name, fields) + # bridge -------------------------- @staticmethod diff --git a/lib/rpc.py b/lib/rpc.py index 5286c2aab8a51aa0aa764460971729f8193e155a..a46444bade5156f83903a9104e8eef8760a421f5 100644 --- a/lib/rpc.py +++ b/lib/rpc.py @@ -432,6 +432,15 @@ class RpcRunner(object): """ return self._MultiNodeCall(node_list, "vg_list", []) + def call_storage_list(self, node_list, su_name, su_args, name, fields): + """Get list of storage units.. + + This is a multi-node call. + + """ + return self._MultiNodeCall(node_list, "storage_list", + [su_name, su_args, name, fields]) + def call_bridges_exist(self, node, bridges_list): """Checks if a node has all the bridges given.