2017-12-20 5 views
0

Ich benutze groovy Skript, um alle Hudson Jobs älter als 30 Tage zu holen. unter Skript verwenden. Ich möchte auch alle alten Jobs als Teil dieses Skripts deaktivieren, kann jemand vorschlagen, wie dies zu tun ist.Wie mehrere Hudson/Jenkins Job auf einmal zu deaktivieren

unten ist das Skript für Hudson.

// Set how old the jobs to list should be (in days) 
def numDaysBack = 30 
def cutOfDate = System.currentTimeMillis() - 1000L * 60 * 60 * 24 * numDaysBack 

//Initiallize it to zero 
def oldJobsNumber = 0 
def size = hudson.model.Hudson.instance.getItems().size() 
println "Total Number of Jobs on hudson :" + size 


for (i=0;i<size;i++){ 
def allJob= hudson.model.Hudson.getInstance().getItems().get(i).getAllJobs() 

def job =new ArrayList(allJob).get(0) 
if (job != null && job .getLastBuild() != null && job.getLastBuild().getTimeInMillis() < cutOfDate) { 
    println job.getFullName() 
    oldJobsNumber++ 
    } 
} 
println oldJobsNumber 

Antwort

0
import com.cloudbees.hudson.plugins.folder.Folder 

def allJob= hudson.model.Hudson.getInstance().getItems() 

for(int i=0; i<allJob.size(); i++){ 
    def job = allJob[i] 
    if(job instanceof hudson.model.Project && job .getLastBuild() != null){ 
     processJob(job) 
    }else if(job instanceof Folder){ 
     processFolder(job) 
    } 
} 

void processFolder(Item folder){ 
println "Processing Folder -"+folder.getFullName() 
folder.getItems().each{ 
    if(it instanceof com.cloudbees.hudson.plugins.folder.AbstractFolder){ 
     processFolder(it) 
    }else{ 
     processJob(it) 
    } 
} 
} 

void processJob(Item job){ 
    if(job instanceof hudson.model.Project && job .getLastBuild() != null){ 
    println job.getFullName() +" -- "+job.getLastBuild().getTimeInMillis() 
// Now you can chek time here And if the condition is met then 
    // job.disable() 
    } 
} 

Der Grund, warum ich den vollständigen Code hier geschrieben haben, weil es schon lange auf meiner Liste anhängiger war. Ich bin sicher, du hättest es herausfinden können, wenn du etwas mehr Zeit dafür investiert hättest.