Add method to update a disk object size
[ganeti-local] / lib / opcodes.py
index 4fcc088..094d085 100644 (file)
@@ -74,15 +74,31 @@ class BaseJO(object):
 
 
 class Job(BaseJO):
-  """Job definition structure"""
+  """Job definition structure
+
+  The Job definitions has two sets of parameters:
+    - the parameters of the job itself (all filled by server):
+      - job_id,
+      - status: pending, running, successfull, failed, aborted
+    - opcode parameters:
+      - op_list, list of opcodes, clients creates this
+      - op_status, status for each opcode, server fills in
+      - op_result, result for each opcode, server fills in
+
+  """
   STATUS_PENDING = 1
   STATUS_RUNNING = 2
-  STATUS_FINISHED = 3
-  RESULT_OK = 1
-  RESULT_FAIL = 2
-  RESULT_ABORT = 3
+  STATUS_SUCCESS = 3
+  STATUS_FAIL = 4
+  STATUS_ABORT = 5
 
-  __slots__ = ["job_id", "op_list", "status", "result"]
+  __slots__ = [
+    "job_id",
+    "status",
+    "op_list",
+    "op_status",
+    "op_result",
+    ]
 
   def __getstate__(self):
     """Specialized getstate for jobs
@@ -143,14 +159,6 @@ class OpCode(BaseJO):
     return op
 
 
-class OpInitCluster(OpCode):
-  """Initialise the cluster."""
-  OP_ID = "OP_CLUSTER_INIT"
-  __slots__ = ["cluster_name", "secondary_ip", "hypervisor_type",
-               "vg_name", "mac_prefix", "def_bridge", "master_netdev",
-               "file_storage_dir"]
-
-
 class OpDestroyCluster(OpCode):
   """Destroy the cluster."""
   OP_ID = "OP_CLUSTER_DESTROY"
@@ -178,7 +186,7 @@ class OpRunClusterCommand(OpCode):
 class OpVerifyCluster(OpCode):
   """Verify the cluster state."""
   OP_ID = "OP_CLUSTER_VERIFY"
-  __slots__ = []
+  __slots__ = ["skip_checks"]
 
 
 class OpVerifyDisks(OpCode):
@@ -241,7 +249,7 @@ class OpRemoveNode(OpCode):
 class OpAddNode(OpCode):
   """Add a node."""
   OP_ID = "OP_NODE_ADD"
-  __slots__ = ["node_name", "primary_ip", "secondary_ip"]
+  __slots__ = ["node_name", "primary_ip", "secondary_ip", "readd"]
 
 
 class OpQueryNodes(OpCode):
@@ -266,7 +274,10 @@ class OpCreateInstance(OpCode):
     "disk_template", "snode", "swap_size", "mode",
     "vcpus", "ip", "bridge", "src_node", "src_path", "start",
     "wait_for_sync", "ip_check", "mac",
-    "kernel_path", "initrd_path", "hvm_boot_order",
+    "kernel_path", "initrd_path", "hvm_boot_order", "hvm_acpi",
+    "hvm_pae", "hvm_cdrom_image_path", "vnc_bind_address",
+    "file_storage_dir", "file_driver",
+    "iallocator",
     ]
 
 
@@ -310,7 +321,7 @@ class OpRebootInstance(OpCode):
 class OpReplaceDisks(OpCode):
   """Replace the disks of an instance."""
   OP_ID = "OP_INSTANCE_REPLACE_DISKS"
-  __slots__ = ["instance_name", "remote_node", "mode", "disks"]
+  __slots__ = ["instance_name", "remote_node", "mode", "disks", "iallocator"]
 
 
 class OpFailoverInstance(OpCode):
@@ -354,7 +365,8 @@ class OpSetInstanceParams(OpCode):
   OP_ID = "OP_INSTANCE_SET_PARAMS"
   __slots__ = [
     "instance_name", "mem", "vcpus", "ip", "bridge", "mac",
-    "kernel_path", "initrd_path", "hvm_boot_order",
+    "kernel_path", "initrd_path", "hvm_boot_order", "hvm_acpi",
+    "hvm_pae", "hvm_cdrom_image_path", "vnc_bind_address"
     ]
 
 
@@ -362,7 +374,7 @@ class OpSetInstanceParams(OpCode):
 class OpDiagnoseOS(OpCode):
   """Compute the list of guest operating systems."""
   OP_ID = "OP_OS_DIAGNOSE"
-  __slots__ = []
+  __slots__ = ["output_fields", "names"]
 
 
 # Exports opcodes
@@ -377,6 +389,10 @@ class OpExportInstance(OpCode):
   OP_ID = "OP_BACKUP_EXPORT"
   __slots__ = ["instance_name", "target_node", "shutdown"]
 
+class OpRemoveExport(OpCode):
+  """Remove an instance's export."""
+  OP_ID = "OP_BACKUP_REMOVE"
+  __slots__ = ["instance_name"]
 
 # Tags opcodes
 class OpGetTags(OpCode):
@@ -427,3 +443,22 @@ class OpTestDelay(OpCode):
   """
   OP_ID = "OP_TEST_DELAY"
   __slots__ = ["duration", "on_master", "on_nodes"]
+
+
+class OpTestAllocator(OpCode):
+  """Allocator framework testing.
+
+  This opcode has two modes:
+    - gather and return allocator input for a given mode (allocate new
+      or replace secondary) and a given instance definition (direction
+      'in')
+    - run a selected allocator for a given operation (as above) and
+      return the allocator output (direction 'out')
+
+  """
+  OP_ID = "OP_TEST_ALLOCATOR"
+  __slots__ = [
+    "direction", "mode", "allocator", "name",
+    "mem_size", "disks", "disk_template",
+    "os", "tags", "nics", "vcpus",
+    ]