LUInstanceRename: Compare name with name
[ganeti-local] / lib / opcodes.py
index 4e4734a..bd8964d 100644 (file)
@@ -31,7 +31,7 @@ opcodes.
 
 # this are practically structures, so disable the message about too
 # few public methods:
-# pylint: disable-msg=R0903
+# pylint: disable=R0903
 
 import logging
 import re
@@ -153,6 +153,15 @@ _TestClusterOsList = ht.TOr(ht.TNone,
 _TestNicDef = ht.TDictOf(ht.TElemOf(constants.INIC_PARAMS),
                          ht.TOr(ht.TNone, ht.TNonEmptyString))
 
+_TSetParamsResultItemItems = [
+  ht.Comment("name of changed parameter")(ht.TNonEmptyString),
+  ht.TAny,
+  ]
+
+_TSetParamsResult = \
+  ht.TListOf(ht.TAnd(ht.TIsLength(len(_TSetParamsResultItemItems)),
+                     ht.TItems(_TSetParamsResultItemItems)))
+
 _SUMMARY_PREFIX = {
   "CLUSTER_": "C_",
   "GROUP_": "G_",
@@ -290,7 +299,7 @@ class BaseOpCode(object):
   field handling.
 
   """
-  # pylint: disable-msg=E1101
+  # pylint: disable=E1101
   # as OP_ID is dynamically defined
   __metaclass__ = _AutoOpParamSlots
 
@@ -429,11 +438,17 @@ def _BuildJobDepCheck(relative):
 TNoRelativeJobDependencies = _BuildJobDepCheck(False)
 
 #: List of submission status and job ID as returned by C{SubmitManyJobs}
-TJobIdList = ht.TListOf(ht.TItems([ht.TBool, ht.TOr(ht.TString, ht.TJobId)]))
+_TJobIdListItem = \
+  ht.TAnd(ht.TIsLength(2),
+          ht.TItems([ht.Comment("success")(ht.TBool),
+                     ht.Comment("Job ID if successful, error message"
+                                " otherwise")(ht.TOr(ht.TString,
+                                                     ht.TJobId))]))
+TJobIdList = ht.TListOf(_TJobIdListItem)
 
 #: Result containing only list of submitted jobs
 TJobIdListOnly = ht.TStrictDict(True, True, {
-  constants.JOB_IDS_KEY: TJobIdList,
+  constants.JOB_IDS_KEY: ht.Comment("List of submitted jobs")(TJobIdList),
   })
 
 
@@ -458,7 +473,7 @@ class OpCode(BaseOpCode):
   @ivar priority: Opcode priority for queue
 
   """
-  # pylint: disable-msg=E1101
+  # pylint: disable=E1101
   # as OP_ID is dynamically defined
   WITH_LU = True
   OP_PARAMS = [
@@ -658,7 +673,8 @@ class OpGroupVerifyDisks(OpCode):
     ht.TAnd(ht.TIsLength(3),
             ht.TItems([ht.TDictOf(ht.TString, ht.TString),
                        ht.TListOf(ht.TString),
-                       ht.TDictOf(ht.TString, ht.TListOf(ht.TString))]))
+                       ht.TDictOf(ht.TString,
+                                  ht.TListOf(ht.TListOf(ht.TString)))]))
 
 
 class OpClusterRepairDiskSizes(OpCode):
@@ -780,6 +796,7 @@ class OpQuery(OpCode):
   OP_DSC_FIELD = "what"
   OP_PARAMS = [
     _PQueryWhat,
+    _PUseLocking,
     ("fields", ht.NoDefault, ht.TListOf(ht.TNonEmptyString),
      "Requested fields"),
     ("filter", None, ht.TOr(ht.TNone, ht.TListOf),
@@ -951,6 +968,7 @@ class OpNodeSetParams(OpCode):
     ("powered", None, ht.TMaybeBool,
      "Whether the node should be marked as powered"),
     ]
+  OP_RESULT = _TSetParamsResult
 
 
 class OpNodePowercycle(OpCode):
@@ -986,6 +1004,7 @@ class OpNodeEvacuate(OpCode):
     ("mode", ht.NoDefault, ht.TElemOf(constants.IALLOCATOR_NEVAC_MODES),
      "Node evacuation mode"),
     ]
+  OP_RESULT = TJobIdListOnly
 
 
 # instance opcodes
@@ -1061,6 +1080,7 @@ class OpInstanceCreate(OpCode):
     ("start", True, ht.TBool, "Whether to start instance after creation"),
     ("tags", ht.EmptyList, ht.TListOf(ht.TNonEmptyString), "Instance tags"),
     ]
+  OP_RESULT = ht.Comment("instance nodes")(ht.TListOf(ht.TNonEmptyString))
 
 
 class OpInstanceReinstall(OpCode):
@@ -1093,6 +1113,7 @@ class OpInstanceRename(OpCode):
     ("new_name", ht.NoDefault, ht.TNonEmptyString, "New instance name"),
     ("ip_check", False, ht.TBool, _PIpCheckDoc),
     ]
+  OP_RESULT = ht.Comment("New instance name")(ht.TNonEmptyString)
 
 
 class OpInstanceStartup(OpCode):
@@ -1296,6 +1317,7 @@ class OpInstanceSetParams(OpCode):
     ("wait_for_sync", True, ht.TBool,
      "Whether to wait for the disk to synchronize, when changing template"),
     ]
+  OP_RESULT = _TSetParamsResult
 
 
 class OpInstanceGrowDisk(OpCode):
@@ -1320,6 +1342,7 @@ class OpInstanceChangeGroup(OpCode):
     ("target_groups", None, ht.TOr(ht.TNone, ht.TListOf(ht.TNonEmptyString)),
      "Destination group names or UUIDs (defaults to \"all but current group\""),
     ]
+  OP_RESULT = TJobIdListOnly
 
 
 # Node group opcodes
@@ -1362,6 +1385,7 @@ class OpGroupSetParams(OpCode):
     _PNodeGroupAllocPolicy,
     _PGroupNodeParams,
     ]
+  OP_RESULT = _TSetParamsResult
 
 
 class OpGroupRemove(OpCode):
@@ -1378,6 +1402,7 @@ class OpGroupRename(OpCode):
     _PGroupName,
     ("new_name", ht.NoDefault, ht.TNonEmptyString, "New group name"),
     ]
+  OP_RESULT = ht.Comment("New group name")(ht.TNonEmptyString)
 
 
 class OpGroupEvacuate(OpCode):
@@ -1390,6 +1415,7 @@ class OpGroupEvacuate(OpCode):
     ("target_groups", None, ht.TOr(ht.TNone, ht.TListOf(ht.TNonEmptyString)),
      "Destination group names or UUIDs"),
     ]
+  OP_RESULT = TJobIdListOnly
 
 
 # OS opcodes
@@ -1511,6 +1537,7 @@ class OpTagsDel(OpCode):
     ("name", ht.NoDefault, ht.TMaybeString, None),
     ]
 
+
 # Test opcodes
 class OpTestDelay(OpCode):
   """Sleeps for a configured amount of time.