Added kill old test runs to test models pipeline

Change-Id: I892d00ad0605cda7ea0f64d0e3e0f4f6d9693287
diff --git a/test-groovy-pipeline.groovy b/test-groovy-pipeline.groovy
index 918fc98..61dfae7 100644
--- a/test-groovy-pipeline.groovy
+++ b/test-groovy-pipeline.groovy
@@ -28,6 +28,15 @@
 
 node("docker"){
     try {
+        stage("stop old tests"){
+          if (gerritRef) {
+            def runningTestBuildNums = _getRunningTriggeredTestsBuildNumbers(env["JOB_NAME"], GERRIT_CHANGE_NUMBER, GERRIT_PATCHSET_NUMBER)
+            for(int i=0; i<runningTestBuildNums.size(); i++){
+              common.infoMsg("Old test with run number ${runningTestBuildNums[i]} found, stopping")
+              Jenkins.instance.getItemByFullName(env["JOB_NAME"]).getBuildByNumber(runningTestBuildNums[i]).finish(hudson.model.Result.ABORTED, new java.io.IOException("Aborting build"));
+            }
+          }
+        }
         stage ('Checkout source code'){
           if (gerritRef) {
             // job is triggered by Gerrit
@@ -72,3 +81,14 @@
         common.sendNotification(currentBuild.result, "" ,["slack"])
     }
 }
+@NonCPS
+def _getRunningTriggeredTestsBuildNumbers(jobName, gerritChangeNumber, excludePatchsetNumber){
+  def gerrit = new com.mirantis.mk.Gerrit()
+  def jenkinsUtils = new com.mirantis.mk.JenkinsUtils()
+  def triggeredBuilds= gerrit.getGerritTriggeredBuilds(jenkinsUtils.getJobRunningBuilds(jobName), gerritChangeNumber, excludePatchsetNumber)
+  def buildNums =[]
+  for(int i=0;i<triggeredBuilds.size();i++){
+      buildNums.add(triggeredBuilds[i].number)
+  }
+  return buildNums
+}