Thank you, I will try this out and reach out if I have any questions.

Thanks,
Antonio

On Thursday, March 17, 2016 at 9:35:38 AM UTC-5, Robert Sandell wrote:
>
> You could use a QueueTaskDispatcher [1] to block any builds (except the 
> vetting jobs) from running on the node until it has cleared the vetting 
> process. And using the NodeLabel parameter plugin [2] you could schedule a 
> job to run on a specific Node (the one that just connected).
> You could also use an OptionalJobPropery [3] to mark specific jobs as 
> being specially for this purpose or maybe pick all jobs in a special Folder 
> [4].
>
>
> [1] 
> http://javadoc.jenkins-ci.org/hudson/model/queue/QueueTaskDispatcher.html
> [2] https://wiki.jenkins-ci.org/display/JENKINS/NodeLabel+Parameter+Plugin
> [3] http://javadoc.jenkins-ci.org/jenkins/model/OptionalJobProperty.html
> [4] https://wiki.jenkins-ci.org/display/JENKINS/CloudBees+Folders+Plugin
>
> /B
>
> On Thu, Mar 17, 2016 at 2:33 AM, Antonio Beyah <[email protected] 
> <javascript:>> wrote:
>
>> I have recently started using the Jenkins Swarm plugin which grants us 
>> the ability to allow dynamic agents to join the cluster, I am thinking 
>> about writing a plugin that would perform a set of actions before the agent 
>> is allowed to take jobs, irrespective of the 'mode' or 'label' assignments.
>>
>> When a new agent joins, I would like to be able to run a set of tests, or 
>> jobs that would signify whether or not the agent is capable of taking on 
>> real jobs.  Things such as: checkout code from scm, run a gradle build, etc
>>
>> My thinking for implementation:
>> - When an agent joins the cluster, don't allow it to take any jobs until 
>> it is vetted
>> - To vet the agent, a set of jobs would all be required to pass (run and 
>> return a success)
>>
>> More implementation details:
>> 1) When an agent joins, immediately set its mode to 'exclusive' and 
>> change all labels to <label>_candidate
>> 2) Do a search for any job with the <label>_candidate restriction and run 
>> those jobs
>> 3) If those jobs are all successful, remove the <label>_candidate label 
>> and set the mode back to its original setting
>>
>> My questions:
>> 1) Is there a better way to do this?
>> 2) What extension points should I look at to do this?  So far I have 
>> started looking at hudson.slaves.ComputerListener but am unsure if I can 
>> hook in early enough to prevent any jobs from running on the newly added 
>> agent before changing it
>> 3) Does a plugin already exist that does this or have similar behavior?
>>
>> Any guidance would be appreciated.
>>
>> Thanks!
>> Antonio
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Jenkins Developers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/jenkinsci-dev/98cf67d2-58c1-4634-9579-07116751db57%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/jenkinsci-dev/98cf67d2-58c1-4634-9579-07116751db57%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> -- 
> Robert Sandell
> *Software Engineer*
> *CloudBees Inc.*
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" 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-dev/f319ac0d-a0bc-4027-a890-4de826bb59b6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to