+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",
+ ]
+
+
+class OpPowercycleNode(OpCode):
+ """Tries to powercycle a node."""
+ OP_ID = "OP_NODE_POWERCYCLE"
+ OP_DSC_FIELD = "node_name"
+ __slots__ = [
+ "node_name",
+ "force",
+ ]
+
+
+class OpEvacuateNode(OpCode):
+ """Relocate secondary instances from a node."""
+ OP_ID = "OP_NODE_EVACUATE"
+ OP_DSC_FIELD = "node_name"
+ __slots__ = [
+ "node_name", "remote_node", "iallocator", "early_release",
+ ]
+
+
+class OpMigrateNode(OpCode):
+ """Migrate all instances from a node."""
+ OP_ID = "OP_NODE_MIGRATE"
+ OP_DSC_FIELD = "node_name"
+ __slots__ = [
+ "node_name",
+ "live",
+ ]
+
+