Implemented ask for error possibility
Change-Id: Ifb4d61d430d5abd12688fea8a34cf26a97e04655
diff --git a/src/com/mirantis/mk/Salt.groovy b/src/com/mirantis/mk/Salt.groovy
index af90a08..1a62bab 100644
--- a/src/com/mirantis/mk/Salt.groovy
+++ b/src/com/mirantis/mk/Salt.groovy
@@ -138,13 +138,10 @@
def out = runSaltCommand(master, 'local', ['expression': target, 'type': 'compound'], 'state.sls', null, [run_states])
- try {
- checkResult(out, failOnError)
- } finally {
- if (output == true) {
- printSaltStateResult(out)
- }
+ if (output == true) {
+ printSaltStateResult(out)
}
+ checkResult(out, failOnError)
return out
}
@@ -183,13 +180,10 @@
*/
def enforceHighstate(master, target, output = false, failOnError = true) {
def out = runSaltCommand(master, 'local', ['expression': target, 'type': 'compound'], 'state.highstate')
- try {
- checkResult(out, failOnError)
- } finally {
- if (output == true) {
- printSaltStateResult(out)
- }
+ if (output == true) {
+ printSaltStateResult(out)
}
+ checkResult(out, failOnError)
return out
}
@@ -276,6 +270,12 @@
*/
def checkResult(result, failOnError = true) {
def common = new com.mirantis.mk.Common()
+ def askOnError = false
+ try {
+ askOnError = env.ASK_ON_ERROR
+ } catch (MissingPropertyException e) {
+ askOnError = false
+ }
if(result != null){
if(result['return']){
for (int i=0;i<result['return'].size();i++) {
@@ -301,10 +301,16 @@
resource = node[resKey]
common.debugMsg("checkResult: checking resource: ${resource}")
if(resource instanceof String || !resource["result"] || (resource["result"] instanceof String && resource["result"] != "true")){
- if (failOnError) {
- throw new Exception("Salt state on node ${nodeKey} failed: ${resource}. State output: ${node}")
- } else {
- common.errorMsg("Salt state on node ${nodeKey} failed: ${resource}. State output: ${node}")
+ if(askOnError){
+ timeout(time:1, unit:'HOURS') {
+ input message: "False result found, do you want to continue?"
+ }
+ }else{
+ if (failOnError) {
+ throw new Exception("Salt state on node ${nodeKey} failed: ${resource}. State output: ${node}")
+ } else {
+ common.errorMsg("Salt state on node ${nodeKey} failed: ${resource}. State output: ${node}")
+ }
}
}
}