X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/8913ab404f63437922d2dd28a6fefb5b90572ff5..bc5d0215:/lib/opcodes.py diff --git a/lib/opcodes.py b/lib/opcodes.py index 14a132b..73c9564 100644 --- a/lib/opcodes.py +++ b/lib/opcodes.py @@ -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 @@ -137,6 +137,16 @@ _PErrorCodes = ("error_codes", False, ht.TBool, "Error codes") _PSkipChecks = ("skip_checks", ht.EmptyList, ht.TListOf(ht.TElemOf(constants.VERIFY_OPTIONAL_CHECKS)), "Which checks to skip") +_PIgnoreErrors = ("ignore_errors", ht.EmptyList, + ht.TListOf(ht.TElemOf(constants.CV_ALL_ECODES_STRINGS)), + "List of error codes that should be treated as warnings") + +# Disk parameters +_PDiskParams = ("diskparams", None, + ht.TOr( + ht.TDictOf(ht.TElemOf(constants.DISK_TEMPLATES), ht.TDict), + ht.TNone), + "Disk templates' parameter defaults") #: OP_ID conversion regular expression _OPID_RE = re.compile("([a-z])([A-Z])") @@ -155,7 +165,7 @@ _TestNicDef = ht.TDictOf(ht.TElemOf(constants.INIC_PARAMS), _TSetParamsResultItemItems = [ ht.Comment("name of changed parameter")(ht.TNonEmptyString), - ht.TAny, + ht.Comment("new value")(ht.TAny), ] _TSetParamsResult = \ @@ -311,7 +321,7 @@ class BaseOpCode(object): field handling. """ - # pylint: disable-msg=E1101 + # pylint: disable=E1101 # as OP_ID is dynamically defined __metaclass__ = _AutoOpParamSlots @@ -485,7 +495,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 = [ @@ -613,6 +623,7 @@ class OpClusterVerify(OpCode): _PDebugSimulateErrors, _PErrorCodes, _PSkipChecks, + _PIgnoreErrors, _PVerbose, ("group_name", None, ht.TMaybeString, "Group to verify") ] @@ -626,6 +637,7 @@ class OpClusterVerifyConfig(OpCode): OP_PARAMS = [ _PDebugSimulateErrors, _PErrorCodes, + _PIgnoreErrors, _PVerbose, ] OP_RESULT = ht.TBool @@ -647,6 +659,7 @@ class OpClusterVerifyGroup(OpCode): _PDebugSimulateErrors, _PErrorCodes, _PSkipChecks, + _PIgnoreErrors, _PVerbose, ] OP_RESULT = ht.TBool @@ -685,7 +698,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): @@ -755,6 +769,7 @@ class OpClusterSetParams(OpCode): ("osparams", None, ht.TOr(ht.TDictOf(ht.TNonEmptyString, ht.TDict), ht.TNone), "Cluster-wide OS parameter defaults"), + _PDiskParams, ("candidate_pool_size", None, ht.TOr(ht.TStrictPositiveInt, ht.TNone), "Master candidate pool size"), ("uid_pool", None, ht.NoType, @@ -777,6 +792,8 @@ class OpClusterSetParams(OpCode): "Default iallocator for cluster"), ("master_netdev", None, ht.TOr(ht.TString, ht.TNone), "Master network device"), + ("master_netmask", None, ht.TOr(ht.TInt, ht.TNone), + "Netmask of the master IP"), ("reserved_lvs", None, ht.TOr(ht.TListOf(ht.TNonEmptyString), ht.TNone), "List of reserved LVs"), ("hidden_os", None, _TestClusterOsList, @@ -787,6 +804,8 @@ class OpClusterSetParams(OpCode): "Modify list of blacklisted operating systems. Each modification must have" " two items, the operation and the OS name. The operation can be" " ``%s`` or ``%s``." % (constants.DDM_ADD, constants.DDM_REMOVE)), + ("use_external_mip_script", None, ht.TMaybeBool, + "Whether to use an external master IP address setup script"), ] @@ -796,12 +815,24 @@ class OpClusterRedistConf(OpCode): """ +class OpClusterActivateMasterIp(OpCode): + """Activate the master IP on the master node. + + """ + + +class OpClusterDeactivateMasterIp(OpCode): + """Deactivate the master IP on the master node. + + """ + + class OpQuery(OpCode): """Query for resources/items. @ivar what: Resources to query for, must be one of L{constants.QR_VIA_OP} @ivar fields: List of fields to retrieve - @ivar filter: Query filter + @ivar qfilter: Query filter """ OP_DSC_FIELD = "what" @@ -810,7 +841,7 @@ class OpQuery(OpCode): _PUseLocking, ("fields", ht.NoDefault, ht.TListOf(ht.TNonEmptyString), "Requested fields"), - ("filter", None, ht.TOr(ht.TNone, ht.TListOf), + ("qfilter", None, ht.TOr(ht.TNone, ht.TListOf), "Query filter"), ] @@ -1002,6 +1033,7 @@ class OpNodeMigrate(OpCode): ("iallocator", None, ht.TMaybeString, "Iallocator for deciding the target node for shared-storage instances"), ] + OP_RESULT = TJobIdListOnly class OpNodeEvacuate(OpCode): @@ -1012,7 +1044,7 @@ class OpNodeEvacuate(OpCode): _PNodeName, ("remote_node", None, ht.TMaybeString, "New secondary node"), ("iallocator", None, ht.TMaybeString, "Iallocator for computing solution"), - ("mode", ht.NoDefault, ht.TElemOf(constants.IALLOCATOR_NEVAC_MODES), + ("mode", ht.NoDefault, ht.TElemOf(constants.NODE_EVAC_MODES), "Node evacuation mode"), ] OP_RESULT = TJobIdListOnly @@ -1268,7 +1300,7 @@ class OpInstanceDeactivateDisks(OpCode): class OpInstanceRecreateDisks(OpCode): - """Deactivate an instance's disks.""" + """Recreate an instance's disks.""" OP_DSC_FIELD = "instance_name" OP_PARAMS = [ _PInstanceName, @@ -1328,6 +1360,10 @@ class OpInstanceSetParams(OpCode): ("osparams", None, ht.TMaybeDict, "Per-instance OS parameters"), ("wait_for_sync", True, ht.TBool, "Whether to wait for the disk to synchronize, when changing template"), + ("offline_inst", False, ht.TBool, + "Whether to turn off the down instance completely"), + ("online_inst", False, ht.TBool, + "Whether to enable the offline instance"), ] OP_RESULT = _TSetParamsResult @@ -1366,6 +1402,7 @@ class OpGroupAdd(OpCode): _PGroupName, _PNodeGroupAllocPolicy, _PGroupNodeParams, + _PDiskParams, ] @@ -1396,6 +1433,7 @@ class OpGroupSetParams(OpCode): _PGroupName, _PNodeGroupAllocPolicy, _PGroupNodeParams, + _PDiskParams, ] OP_RESULT = _TSetParamsResult