Add 'retries_wait' parameter for enforceState method
Related: PROD-26997 (PROD:26997)
Change-Id: I20d17bfbc9502279ee2e1c162b9db5c1016e21b5
diff --git a/src/com/mirantis/mk/Salt.groovy b/src/com/mirantis/mk/Salt.groovy
index 12195f4..982a9c4 100644
--- a/src/com/mirantis/mk/Salt.groovy
+++ b/src/com/mirantis/mk/Salt.groovy
@@ -162,7 +162,7 @@
def enforceStateWithExclude(Map params) {
//Set defaults
defaults = ["excludedStates": "", "output": true, "failOnError": true, "batch": null, "optional": false,
- "read_timeout": -1, "retries": -1, "queue": true, "saltArgs": []]
+ "read_timeout": -1, "retries": -1, "retries_wait": 5, "queue": true, "saltArgs": []]
params = defaults + params
params.saltArgs << "exclude=${params.excludedStates}"
params.remove('excludedStates')
@@ -170,14 +170,14 @@
}
-def enforceStateWithExclude(saltId, target, state, excludedStates = "", output = true, failOnError = true, batch = null, optional = false, read_timeout=-1, retries=-1, queue=true, saltArgs=[]) {
+def enforceStateWithExclude(saltId, target, state, excludedStates = "", output = true, failOnError = true, batch = null, optional = false, read_timeout=-1, retries=-1, queue=true, saltArgs=[], retries_wait=5) {
// Deprecated, convert state to use Map as input parameter
def common = new com.mirantis.mk.Common()
common.infoMsg("This method will be deprecated. Convert you method call to use Map as input parameter")
// Convert to Map
params = ['saltId': saltId, 'target': target, 'state': state, 'excludedStates': excludedStates, 'output': output,
'failOnError': failOnError, 'batch': batch, 'optional': optional, 'read_timeout': read_timeout,
- 'retries': retries, 'queue': queue, 'saltArgs': saltArgs]
+ 'retries': retries, 'retries_wait': retries_wait, 'queue': queue, 'saltArgs': saltArgs]
// Call new method with Map as parameter
return enforceStateWithExclude(params)
}
@@ -202,7 +202,7 @@
def common = new com.mirantis.mk.Common()
//Set defaults
defaults = ["testTargetMatcher": "", "output": true, "failOnError": true, "batch": null, "optional": false,
- "read_timeout": -1, "retries": -1, "queue": true, "saltArgs":[]]
+ "read_timeout": -1, "retries": -1, "retries_wait": 5, "queue": true, "saltArgs":[]]
params = defaults + params
if (!params.testTargetMatcher) {
params.testTargetMatcher = params.target
@@ -220,14 +220,14 @@
}
-def enforceStateWithTest(saltId, target, state, testTargetMatcher = "", output = true, failOnError = true, batch = null, optional = false, read_timeout=-1, retries=-1, queue=true, saltArgs=[]) {
+def enforceStateWithTest(saltId, target, state, testTargetMatcher = "", output = true, failOnError = true, batch = null, optional = false, read_timeout=-1, retries=-1, queue=true, saltArgs=[], retries_wait=5) {
// Deprecated, convert state to use Map as input parameter
def common = new com.mirantis.mk.Common()
common.infoMsg("This method will be deprecated. Convert you method call to use Map as input parameter")
// Convert to Map
params = ['saltId': saltId, 'target': target, 'state': state, 'testTargetMatcher': testTargetMatcher, 'output': output,
'failOnError': failOnError, 'batch': batch, 'optional': optional, 'read_timeout': read_timeout,
- 'retries': retries, 'queue': queue, 'saltArgs': saltArgs]
+ 'retries': retries, 'retries_wait': retries_wait, 'queue': queue, 'saltArgs': saltArgs]
// Call new method with Map as parameter
return enforceStateWithTest(params)
}
@@ -250,8 +250,8 @@
def enforceState(Map params) {
def common = new com.mirantis.mk.Common()
//Set defaults
- defaults = ["output": true, "failOnError": true, "batch": null, "optional": false,
- "read_timeout": -1, "retries": -1, "queue": true, "saltArgs": [], "minionRestartWaitTimeout": 10]
+ defaults = ["output": true, "failOnError": true, "batch": null, "optional": false, "read_timeout": -1,
+ "retries": -1, "retries_wait": 5, "queue": true, "saltArgs": [], "minionRestartWaitTimeout": 10]
params = defaults + params
// add state to salt args
if (params.state instanceof String) {
@@ -277,6 +277,7 @@
out = runSaltCommand(params.saltId, 'local', ['expression': params.target, 'type': 'compound'], 'state.sls', params.batch, params.saltArgs.reverse(), kwargs, -1, params.read_timeout)
// failOnError should be passed as true because we need to throw exception for retry block handler
checkResult(out, true, params.output, true, retriesCounter < params.retries) //disable ask on error for every interation except last one
+ sleep(retries_wait)
}
} else {
// we have to reverse order in saltArgs because salt state have to be first
@@ -290,14 +291,14 @@
}
}
-def enforceState(saltId, target, state, output = true, failOnError = true, batch = null, optional = false, read_timeout=-1, retries=-1, queue=true, saltArgs = [], minionRestartWaitTimeout=10) {
+def enforceState(saltId, target, state, output = true, failOnError = true, batch = null, optional = false, read_timeout=-1, retries=-1, queue=true, saltArgs = [], minionRestartWaitTimeout=10, retries_wait=5) {
// Deprecated, convert state to use Map as input parameter
def common = new com.mirantis.mk.Common()
common.infoMsg("This method will be deprecated. Convert you method call to use Map as input parameter")
// Convert to Map
- params = ['saltId': saltId, 'target': target, 'state': state, 'output': output,
- 'failOnError': failOnError, 'batch': batch, 'optional': optional, 'read_timeout': read_timeout,
- 'retries': retries, 'queue': queue, 'saltArgs': saltArgs, 'minionRestartWaitTimeout': minionRestartWaitTimeout]
+ params = ['saltId': saltId, 'target': target, 'state': state, 'output': output, 'failOnError': failOnError,
+ 'batch': batch, 'optional': optional, 'read_timeout': read_timeout, 'retries': retries,
+ 'retries_wait': retries_wait, 'queue': queue, 'saltArgs': saltArgs, 'minionRestartWaitTimeout': minionRestartWaitTimeout]
// Call new method with Map as parameter
return enforceState(params)
}