diff --git a/daemons/ganeti-noded b/daemons/ganeti-noded index db3c7aa88648bf23528553089d51ee9b57c99b27..d34c05a551541e58e2f942466980c4c71c327eed 100755 --- a/daemons/ganeti-noded +++ b/daemons/ganeti-noded @@ -365,6 +365,14 @@ class NodeHttpServer(http.server.HttpServer): (su_name, su_args, name, fields) = params return storage.GetStorage(su_name, *su_args).List(name, fields) + @staticmethod + def perspective_storage_modify(params): + """Modify a storage unit. + + """ + (su_name, su_args, name, changes) = params + return storage.GetStorage(su_name, *su_args).Modify(name, changes) + # bridge -------------------------- @staticmethod diff --git a/lib/rpc.py b/lib/rpc.py index a46444bade5156f83903a9104e8eef8760a421f5..56230139544709dff57d25fd40285f631e50b203 100644 --- a/lib/rpc.py +++ b/lib/rpc.py @@ -433,7 +433,7 @@ 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.. + """Get list of storage units. This is a multi-node call. @@ -441,6 +441,15 @@ class RpcRunner(object): return self._MultiNodeCall(node_list, "storage_list", [su_name, su_args, name, fields]) + def call_storage_modify(self, node, su_name, su_args, name, changes): + """Modify a storage unit. + + This is a single-node call. + + """ + return self._SingleNodeCall(node, "storage_modify", + [su_name, su_args, name, changes]) + def call_bridges_exist(self, node, bridges_list): """Checks if a node has all the bridges given.