【问题标题】:groovy script to remove users from jenkins project role alone?groovy 脚本仅从詹金斯项目角色中删除用户?
【发布时间】:2017-05-03 05:15:29
【问题描述】:

import hudson.security.*
    import jenkins.security.*
    import jenkins.model.Jenkins

    def sids = Jenkins.instance.authorizationStrategy.getAllSIDs()
    return sids

In the Build Section;

    def removeAMP(Job jobName, user ) {
       println jobName.name.center(80,'-')
  
       def authorizationMatrixProperty = jobName.getProperty(AuthorizationMatrixProperty.class)
       Map<Permission,Set<String>> Permissions = authorizationMatrixProperty.getGrantedPermissions()
       println "Permission Map Before: " + Permissions + cr
       println "Permission Values: " + Permissions.values() + cr
  
       for (Set<String> permissionUsers:Permissions.values()) {
         permissionUsers.remove(user)  
       }
       println "Permission Map After: " + Permissions + cr
       jobName.save();
    }

我在 jenkins 中使用“执行系统 ​​grrovy 脚本”创建了一个作业,用于从项目角色而不是 jenkins 全局角色中删除用户。使用以下脚本,但出现如下错误:

ERROR: Build step failed with exception
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script1.groovy: 10: unable to resolve class Job 
 @ line 10, column 19.
       def removeAMP(Job jobName, user ) {
                     ^

1 error

at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:302)
at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:861)
at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:550)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:499)
at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:302)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:281)
at groovy.lang.GroovyShell.parseClass(GroovyShell.java:731)
at groovy.lang.GroovyShell.parse(GroovyShell.java:743)
at groovy.lang.GroovyShell.parse(GroovyShell.java:723)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:680)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:666)
at hudson.plugins.groovy.SystemGroovy.perform(SystemGroovy.java:81)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:782)
at hudson.model.Build$BuildExecution.build(Build.java:205)
at hudson.model.Build$BuildExecution.doRun(Build.java:162)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
at hudson.model.Run.execute(Run.java:1738)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:410)

构建步骤“执行系统 ​​Groovy 脚本”将构建标记为失败 完成:失败

请帮助我正确的脚本。在此先感谢 阿西夫

【问题讨论】:

    标签: jenkins groovy


    【解决方案1】:

    是否需要添加

    import hudson.model.Job
    

    【讨论】:

    • 我需要添加“import hudson.model.Job”还是不需要?我添加并检查了以下错误:错误:构建步骤失败,异常 groovy.lang.MissingMethodException:没有方法签名: com.michelin.cio.hudson.plugins.rolestrategy.RoleBasedAuthorizationStrategy.getAllSIDs() 适用于参数类型:() 值:[] 可能的解决方案:getSIDs(java.lang.String)、getClass()
    • 看起来导入解决了第一个编译错误。第二个错误更复杂。您正在使用自定义身份验证策略插件。您需要查看此代码和任何文档。您需要公司的一位同事来帮助您在这方面取得进一步进展。
    • 是的,非常感谢 Chim,如果你能解决这个问题,请帮我解决这个问题。否则你有任何 groovy 脚本来完成这个任务吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多