Terminate dangled jenkins nodes and imager vms 34/162534/1
authorhyokeun <hyokeun.jeon@samsung.com>
Mon, 4 Dec 2017 06:00:46 +0000 (15:00 +0900)
committerhyokeun <hyokeun.jeon@samsung.com>
Mon, 4 Dec 2017 06:00:46 +0000 (15:00 +0900)
Change-Id: I541be14cff44d6472416d892dbdb5f4a644c5e5b

job_control_ondemand_slaves.groovy

index b0e36f2..7d00649 100644 (file)
@@ -615,12 +615,22 @@ def worker_ondemand_revoke_request(worker_conf) {
     dangled_jenkins_nodes = existing_slave_ids.toSet() - existing_instance_ids.toSet()
     if (dangled_jenkins_nodes) {
         println "\nDangled jenkins nodes:\n${dangled_jenkins_nodes}"
+        for (djn in dangled_jenkins_nodes) {
+            slave_stat.get_slave_info().each { k, v ->
+                def matcher = v["name"] =~ /^${worker_conf.name_prefix()} \(${djn}\)$/
+                if (matcher?.matches()) {
+                    println 'Delete dangled node:' + v["name"]
+                    slave_stat.delete_node(v["name"])
+                }
+            }
+        }
     }
 
     dangled_ec2_instances = existing_instance_ids.toSet() - existing_slave_ids.toSet()
     if (dangled_ec2_instances) {
         println "\nDangled EC2 instances:\n${dangled_ec2_instances}"
-        //assert false
+        println "\nFORCE TERMINATE!"
+        terminate_aws_ec2_instances(dangled_ec2_instances)
     }
 }