+class OpQueryNodeStorage(OpCode):
+ """Get information on storage for node(s)."""
+ OP_ID = "OP_NODE_QUERY_STORAGE"
+ __slots__ = [
+ "nodes",
+ "storage_type",
+ "name",
+ "output_fields",
+ ]
+
+
+class OpModifyNodeStorage(OpCode):
+ """Modifies the properies of a storage unit"""
+ OP_ID = "OP_NODE_MODIFY_STORAGE"
+ __slots__ = [
+ "node_name",
+ "storage_type",
+ "name",
+ "changes",
+ ]
+
+
+class OpRepairNodeStorage(OpCode):
+ """Repairs the volume group on a node."""
+ OP_ID = "OP_REPAIR_NODE_STORAGE"
+ OP_DSC_FIELD = "node_name"
+ __slots__ = [
+ "node_name",
+ "storage_type",
+ "name",
+ "ignore_consistency",
+ ]
+
+
+class OpSetNodeParams(OpCode):
+ """Change the parameters of a node."""
+ OP_ID = "OP_NODE_SET_PARAMS"
+ OP_DSC_FIELD = "node_name"
+ __slots__ = [
+ "node_name",
+ "force",
+ "master_candidate",
+ "offline",
+ "drained",
+ "auto_promote",
+ "master_capable",
+ "vm_capable",
+ "secondary_ip",
+ ]
+
+
+class OpPowercycleNode(OpCode):
+ """Tries to powercycle a node."""
+ OP_ID = "OP_NODE_POWERCYCLE"
+ OP_DSC_FIELD = "node_name"
+ __slots__ = [
+ "node_name",
+ "force",
+ ]
+
+
+class OpMigrateNode(OpCode):
+ """Migrate all instances from a node."""
+ OP_ID = "OP_NODE_MIGRATE"
+ OP_DSC_FIELD = "node_name"
+ __slots__ = [
+ "node_name",
+ "mode",
+ "live",
+ ]
+
+
+class OpNodeEvacuationStrategy(OpCode):
+ """Compute the evacuation strategy for a list of nodes."""
+ OP_ID = "OP_NODE_EVAC_STRATEGY"
+ OP_DSC_FIELD = "nodes"
+ __slots__ = ["nodes", "iallocator", "remote_node"]
+
+