Hi Indra,
Got it working with the below changes to my groovy script . Copying the
updated script for benefit of others
import jenkins.model.*
import hudson.model.*
import hudson.slaves.*
import hudson.plugins.sshslaves.*
import com.synopsys.arc.jenkinsci.plugins.jobrestrictions.nodes.
JobRestrictionProperty;
import com.synopsys.arc.jenkinsci.plugins.jobrestrictions.restrictions.job.
StartedByUserRestriction;
import com.synopsys.arc.jenkinsci.plugins.jobrestrictions.util.UserSelector;
import java.util.List;
List<UserSelector> usersList;
UserSelector u1 = new UserSelector ("user1");
List userlist = new LinkedList();
userlist.add(u1);
StartedByUserRestriction startuserrect = new StartedByUserRestriction(
userlist, false, false,false );
JobRestrictionProperty jobrestrict = new JobRestrictionProperty(
startuserrect);
List restrictlist = new LinkedList();
restrictlist.add(jobrestrict);
Slave slave = new DumbSlave(
"agent-node",
"Agent node description",
"/home/jenkins",
"1",
Node.Mode.NORMAL,
"agent-node-label",
new SSHLauncher("172.17.1.55",22,"root","root","","","",
"",""),
new RetentionStrategy.Always(),
restrictlist)
Jenkins.instance.addNode(slave)
Thanks for all the guidance and pointing out the detailed steps.
Thanks and regards,
Amit
On Wednesday, 5 October 2016 12:04:11 UTC+5:30, Amit Ghatwal wrote:
>
> Hi Indra ,
>
> You've have hit the nail on its head , you have perfectly summarized my
> requirements and precisely what i intent to achieve via a groovy script.
>
> import jenkins.model.*
> import hudson.model.*
> import hudson.slaves.*
> import hudson.plugins.sshslaves.*
> import java.util.ArrayList;
> import hudson.slaves.EnvironmentVariablesNodeProperty.Entry;
>
>
> import com.synopsys.arc.jenkinsci.plugins.jobrestrictions.nodes.
> JobRestrictionProperty;
>
> import com.synopsys.arc.jenkinsci.plugins.jobrestrictions.Messages;
> import com.synopsys.arc.jenkinsci.plugins.jobrestrictions.restrictions.
> JobRestriction;
> import com.synopsys.arc.jenkinsci.plugins.jobrestrictions.restrictions.
> JobRestrictionBlockageCause;
> import hudson.Extension;
> import hudson.model.Node;
> import hudson.model.Queue;
> import hudson.model.queue.CauseOfBlockage;
> import hudson.slaves.NodeProperty;
> import hudson.slaves.NodePropertyDescriptor;
> import org.kohsuke.stapler.DataBoundConstructor;
>
> List<Entry> env = new ArrayList<Entry>();
> env.add(new Entry("key1","value1"))
> env.add(new Entry("key2","value2"))
> EnvironmentVariablesNodeProperty envPro = new
> EnvironmentVariablesNodeProperty(env);
> Slave slave = new DumbSlave(
> "agent-node","Agent node description",
> "/home/jenkins",
> "1",
> Node.Mode.NORMAL,
> "agent-node-label",
> new SSHLauncher("agenNode",22,"user","password","","",
> "","",""),
> new RetentionStrategy.Always(),
> new LinkedList())
> slave.getNodeProperties().add(envPro)
> Jenkins.instance.addNode(slave)
>
> I am actually kind of new to "groovy" , if u don't mind , as referred by
> you in above points : 1,2,3,4,5 is perfectly what i need , but if you could
> help in editing above groovy code to incorporate the points 1-5 as
> mentioned by you would be helpful.
>
> Appreciate your time and help.
> Thanks and regards,
> Amit
>
> On Wednesday, 5 October 2016 11:12:23 UTC+5:30, Indra Gunawan (ingunawa)
> wrote:
>>
>> Hi Amit,
>>
>> The
>> https://github.com/jenkinsci/job-restrictions-plugin/blob/master/src/main/java/com/synopsys/arc/jenkinsci/plugins/jobrestrictions/nodes/JobRestrictionProperty.java
>> class
>> clearly extends NodeProperty<Node>.
>> 1. You need to instantiate a new JobRestrictionProperty class giving to
>> it a new instance of jobRestriction class.
>>
>> 2. You are saying you want to Restrict jobs execution at node just for
>> User? Do you want to configure “Started by User”?
>> I assume you do, therefore you then browse to
>> https://github.com/jenkinsci/job-restrictions-plugin/blob/master/src/main/java/com/synopsys/arc/jenkinsci/plugins/jobrestrictions/restrictions/job/StartedByUserRestriction.java
>> This class extends AbstractUserCauseRestriction which extends
>> jobRestriction so this class is a subclass of JobRestriction.
>> You need to instantiate a new StartedByUserRestriction class giving it :
>> (list of UserSelector, false, false, false). <== I presume you just want
>> the list of users able to run job on the node, with no Upstream Job started
>> by user or AutoRun or started by Anonymous User.
>>
>> 3. You pass in “StartedByUserRestriction" class created when you
>> instantiate the new “JobRestrictionProperty" class.
>>
>> 4. Then you create a new LinkList and you add the JobRestrictionProperty
>> class instance to the List.
>>
>> 5. You pass in the LinkList as the last parameter to the creation of the
>> new DumbSlave class to create new node/Agent (see nodeProperties below):
>>
>> http://javadoc.jenkins-ci.org/hudson/slaves/DumbSlave.html
>>
>> public DumbSlave(String
>> <http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true>
>> name,
>> String
>> <http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true>
>> nodeDescription,
>> String
>> <http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true>
>> remoteFS,
>> String
>> <http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true>
>> numExecutors,
>> Node.Mode
>> <http://javadoc.jenkins-ci.org/hudson/model/Node.Mode.html> mode,
>> String
>> <http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true>
>> labelString,
>> ComputerLauncher
>> <http://javadoc.jenkins-ci.org/hudson/slaves/ComputerLauncher.html> launcher,
>> RetentionStrategy
>> <http://javadoc.jenkins-ci.org/hudson/slaves/RetentionStrategy.html>
>> retentionStrategy,
>> *List
>> <http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true><?
>> extends NodeProperty
>> <http://javadoc.jenkins-ci.org/hudson/slaves/NodeProperty.html><?>>
>> nodeProperties)*
>> throws IOException
>> <http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true>,
>> Descriptor.FormException
>> <http://javadoc.jenkins-ci.org/hudson/model/Descriptor.FormException.html>
>>
>>
>>
>>
>> From: <[email protected]> on behalf of Amit Ghatwal <
>> [email protected]>
>> Reply-To: "[email protected]" <[email protected]>
>> Date: Tuesday, October 4, 2016 at 9:25 PM
>> To: Jenkins Users <[email protected]>
>> Subject: Re: Creating groovy script to configure slave node properties
>> >> "Restrict jobs execution at node"
>>
>> Hi Victor,
>>
>> Thanks for quick comment.
>> I had already looked at the below repo of "job-restriction plugin" -
>> https://github.com/jenkinsci/job-restrictions-plugin/tree/master/src/main/java/com/synopsys/arc/jenkinsci/plugins/jobrestrictions
>>
>> However i am unable to figure how do i change the slave node >>
>> configure >> Node Properties >> Restrict jobs execution at node via a
>> groovy script ?
>> Any pointers on how can i bring out the above change might be helpful.
>>
>> Thanks and regards,
>> Amit
>>
>> On Tuesday, 4 October 2016 22:24:47 UTC+5:30, Victor Martinez wrote:
>>>
>>> You might need to look at the job resctriciton plugin to find its jobs
>>> properties and create that property:
>>>
>>>
>>> https://github.com/jenkinsci/job-restrictions-plugin/blob/master/src/main/java/com/synopsys/arc/jenkinsci/plugins/jobrestrictions/nodes/JobRestrictionProperty.java
>>>
>>> The above url might help you to understand what that plugin does
>>>
>>> Cheers
>>>
>>> --
>> You received this message because you are subscribed to the Google Groups
>> "Jenkins Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/jenkinsci-users/3d03feac-510c-4ba2-987c-76e50b7a1f38%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/jenkinsci-users/3d03feac-510c-4ba2-987c-76e50b7a1f38%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
--
You received this message because you are subscribed to the Google Groups
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jenkinsci-users/b4503607-e3fa-4de0-ba79-6da54bca2548%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.