Improved gerrit change verifing before tests will be started

Change-Id: Ie00f987e4f297b00709ac2673fc679c795296ac1
diff --git a/test-salt-models-pipeline.groovy b/test-salt-models-pipeline.groovy
index d43c217..feed26f 100644
--- a/test-salt-models-pipeline.groovy
+++ b/test-salt-models-pipeline.groovy
@@ -27,15 +27,21 @@
     defaultGitUrl = null
 }
 def checkouted = false
+def merged = false
 
 node("python") {
   try{
     stage("checkout") {
       if (gerritRef) {
         // job is triggered by Gerrit
-        checkouted = gerrit.gerritPatchsetCheckout ([
-          credentialsId : CREDENTIALS_ID
-        ])
+        // test if change aren't already merged
+        def gerritChange = gerrit.getGerritChange(GERRIT_NAME, GERRIT_HOST, GERRIT_CHANGE_NUMBER, CREDENTIALS_ID)
+        merged = gerritChange.status == "MERGED"
+        if(!merged){
+          checkouted = gerrit.gerritPatchsetCheckout ([
+            credentialsId : CREDENTIALS_ID
+          ])
+        }
       } else if(defaultGitRef && defaultGitUrl) {
           checkouted = gerrit.gerritPatchsetCheckout(defaultGitUrl, defaultGitRef, "HEAD", CREDENTIALS_ID)
       }
@@ -48,15 +54,19 @@
           }
           ssh.agentSh("git submodule init; git submodule sync; git submodule update --recursive")
         }
-      }else{
+      }else if(!merged){
         throw new Exception("Cannot checkout gerrit patchset, GERRIT_REFSPEC and DEFAULT_GIT_REF is null")
       }
     }
     stage("test") {
-      if(checkouted){
-        timeout(1440) {
-          wrap([$class: 'AnsiColorBuildWrapper']) {
-            sh("make test")
+      if(merged){
+        common.successMsg("Gerrit change is already merged, no need to test them")
+      }else{
+        if(checkouted){
+          timeout(1440) {
+            wrap([$class: 'AnsiColorBuildWrapper']) {
+              sh("make test")
+            }
           }
         }
       }