diff --git a/lib/cmdlib.py b/lib/cmdlib.py index 8b2374c2c871000a25de6d0d0204938072968dde..c95cdfd482a1ff7815ad88847a0bd16371caa702 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -5191,7 +5191,8 @@ class LUInstanceStartup(LogicalUnit): instance = self.instance force = self.op.force - self.cfg.MarkInstanceUp(instance.name) + if not self.op.no_remember: + self.cfg.MarkInstanceUp(instance.name) if self.primary_offline: assert self.op.ignore_offline_nodes @@ -5332,7 +5333,8 @@ class LUInstanceShutdown(LogicalUnit): node_current = instance.primary_node timeout = self.op.timeout - self.cfg.MarkInstanceDown(instance.name) + if not self.op.no_remember: + self.cfg.MarkInstanceDown(instance.name) if self.primary_offline: assert self.op.ignore_offline_nodes diff --git a/lib/opcodes.py b/lib/opcodes.py index d04c969e7409fac93d1b260ebe4e7c451848c031..b89444d3ead3c162c22eea4b43cd66f8cf3d9744 100644 --- a/lib/opcodes.py +++ b/lib/opcodes.py @@ -81,6 +81,9 @@ _PTags = ("tags", ht.NoDefault, ht.TListOf(ht.TNonEmptyString)) #: Ignore consistency _PIgnoreConsistency = ("ignore_consistency", False, ht.TBool) +#: Do not remember instance state changes +_PNoRemember = ("no_remember", False, ht.TBool) + #: OP_ID conversion regular expression _OPID_RE = re.compile("([a-z])([A-Z])") @@ -837,6 +840,7 @@ class OpInstanceStartup(OpCode): _PInstanceName, _PForce, _PIgnoreOfflineNodes, + _PNoRemember, ("hvparams", ht.EmptyDict, ht.TDict), ("beparams", ht.EmptyDict, ht.TDict), ] @@ -848,6 +852,7 @@ class OpInstanceShutdown(OpCode): OP_PARAMS = [ _PInstanceName, _PIgnoreOfflineNodes, + _PNoRemember, ("timeout", constants.DEFAULT_SHUTDOWN_TIMEOUT, ht.TPositiveInt), ]