2017-05-03 6 views
0

jenkinsプロジェクトロールからユーザーを削除するためのgroovyスクリプト?

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(); 
 
    }

私は、スクリプトの次のプロジェクトの役割からではないジェンキンスグローバルrole.withからユーザーを除去するため、「システムgrrovyスクリプトを実行」が、次のようにエラーを取得していますとジェンキンスでジョブを作成した:

FAILURE

正しいscript.Thanで私を助けてください:

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スクリプトを実行」を完成失敗 として構築マーク事前 でKS Ashif

答えて

0

あなたは、私が追加私は「輸入hudson.model.Job」または不要を追加する必要が

import hudson.model.Job 
+0

を追加する必要がありますか、エラーの下になってチェック:?ERROR:で失敗しましたステップを構築します例外 groovy.lang.MissingMethodException:メソッドのシグネチャがありません:com.michelin.cio.hudson.plugins.rolestrategy.RoleBasedAuthorizationStrategy.getAllSIDs()は引数の型に適用されます。()values:[] 可能な解決策:getSIDs(java。 lang.String)、getClass() – Ashif

+0

インポートが最初のコンパイルエラーを解決したように見えます。この2番目のエラーはより複雑です。カスタム認証戦略プラグインを使用しています。あなたはこのコードとドキュメントを見る必要があります。あなたはこれでさらに進歩するのを助けるためにあなたの会社の同僚が必要です。 – chim

+0

ええ、ちょっとありがとう、チム、もしこれを解決できたら、私をthis.Oで助けてください、そうでなければ、この仕事のためのすばらしいスクリプトがありますか? – Ashif

関連する問題