Jenkins init.groovy.d脚本用于设置构建描述

时间:2017-11-01 20:41:38

标签: jenkins groovy

我在init.groovy.d /目录中有一个脚本,该目录在Jenkins启动时运行。我想寻找一些工作并阻止它们。

除非我启用矩阵安全性(我们需要在生产系统上使用),所有似乎都工作正常。

相关的groovy代码是:

def busyExecutors = Jenkins.instance.computers.collect { 
    c -> c.executors.findAll { it.isBusy() } }.flatten() 

def jobsFound = []
busyExecutors.each { e -> 

    job = e.getCurrentExecutable()

    if ( e.getElapsedTime() > max_run_time_usec ) {
        logger.info("${job.getUrl()} timed out - killing it")
        job.setDescription("Timed out") // <----- trouble!
        e.doStop()
    }
} 

但我收到此错误

hudson.security.AccessDeniedException2: anonymous is missing the Run/Update permission

真的不想授予匿名此权限以使其发挥作用。

关于如何让init.groovy.d中的脚本以管理员权限运行或者作为另一个用户然后授予我所需权限的任何想法?

1 个答案:

答案 0 :(得分:0)

您可以通过添加以下内容来提升脚本中的权限:

hudson.security.ACL.impersonate(hudson.security.ACL.SYSTEM)

这将允许您设置构建描述。