+ """
+ return cls._StaticSingleNodeCall(node, "node_leave_cluster", [])
+
+ def call_node_volumes(self, node_list):
+ """Gets all volumes on node(s).
+
+ This is a multi-node call.
+
+ """
+ return self._MultiNodeCall(node_list, "node_volumes", [])
+
+ def call_node_demote_from_mc(self, node):
+ """Demote a node from the master candidate role.
+
+ This is a single-node call.
+
+ """
+ return self._SingleNodeCall(node, "node_demote_from_mc", [])
+
+ def call_test_delay(self, node_list, duration):
+ """Sleep for a fixed time on given node(s).
+
+ This is a multi-node call.
+
+ """
+ return self._MultiNodeCall(node_list, "test_delay", [duration])
+
+ def call_file_storage_dir_create(self, node, file_storage_dir):
+ """Create the given file storage directory.
+
+ This is a single-node call.
+
+ """
+ return self._SingleNodeCall(node, "file_storage_dir_create",
+ [file_storage_dir])
+
+ def call_file_storage_dir_remove(self, node, file_storage_dir):
+ """Remove the given file storage directory.
+
+ This is a single-node call.
+
+ """
+ return self._SingleNodeCall(node, "file_storage_dir_remove",
+ [file_storage_dir])
+
+ def call_file_storage_dir_rename(self, node, old_file_storage_dir,
+ new_file_storage_dir):
+ """Rename file storage directory.
+
+ This is a single-node call.
+
+ """
+ return self._SingleNodeCall(node, "file_storage_dir_rename",
+ [old_file_storage_dir, new_file_storage_dir])
+
+ @classmethod
+ def call_jobqueue_update(cls, node_list, address_list, file_name, content):
+ """Update job queue.
+
+ This is a multi-node call.
+
+ """
+ return cls._StaticMultiNodeCall(node_list, "jobqueue_update",
+ [file_name, cls._Compress(content)],
+ address_list=address_list)
+
+ @classmethod
+ def call_jobqueue_purge(cls, node):
+ """Purge job queue.
+
+ This is a single-node call.
+
+ """
+ return cls._StaticSingleNodeCall(node, "jobqueue_purge", [])