Good, glad I could clarify things out. Let me know how that works out for you.
Richard. On Wed, Oct 10, 2012 at 11:20 PM, Jeff <predato...@gmail.com> wrote: > Thanks for the explanation. It definitely clarifies things. My usage of > Jenkins slaves is all theoretical at this point (working on a new > master+multi-slave setup soon) so my terminology is slightly off. > > On Wed, Oct 10, 2012 at 8:47 PM, Richard Lavoie > <lavoie.rich...@gmail.com>wrote: > >> Comments inlined. >> >> On Wed, Oct 10, 2012 at 7:59 PM, Jeff <predato...@gmail.com> wrote: >> >>> Your suggested file uri format works ... thanks! Though it seems non >>> standard (http://en.wikipedia.org/wiki/File_URI_scheme) which is why it >>> confused me. If it is passed directly to a java URL object, I would have >>> thought many of the formats I tried would work. >>> >>> >>> Anyway, as for the "matching" I'm still trying to digest the nuances of >>> how jenkins nodes and selenium nodes work together. >>> >>> Is a "jenkins node" the same as a Jenkins slave? >>> >> >> Yup, but the jenkins master is also a jenkins node. So you can also run >> selenium node configuration on the master. >> >> Internally of jenkins, all the slaves are what I called jenkins nodes. >> The jenkins master also runs a "computer" object internally of jenkins. >> >> >>> >>> If so, then if I use the "Match nodes from a label expression" option, I >>> can associate a specific "selenium node" configuration to a subset of >>> Jenkins slaves where the Jenkins slave name matches the given label >>> expression? >>> >>> So for example, if I have slaves called LinuxSlave-1, LinuxSlave-2, >>> WindowsSlave-1, WindowsSlave-2 and I have a "selenium node" configuration >>> with a label expression like "Windows*", then that selenium node >>> configuration would be sent to all jenkins Windows slaves? >>> >>> If that is not correct, could you outline an example? >>> >> >> In each of your slaves (http://jenkins/manage/node/NODENAME_OR_(master)/) >> , there is a field configuration for label expressions, the "Match from a >> label expression" uses that field to match against that slave. It doesn't >> take the name of the node but the label options. Although I could add >> another matcher for slave names. Might add that in the next version, thanks >> for the idea but it's just that most plugins tries to use the labels >> instead of node names because the names doesn't really describe it as good >> as label can do. I mean that you can have multiple label that would defined >> what your slave is really about while the name is only a single label to >> recognize it. >> >> >>> >>> >> >>> If I have a Jenkins Master with multiple Jenkins slaves, does the >>> SeGrid2 plugin run one "hub" on the master and zero or more seleniuim >>> "hub"s on the master and/or slaves? >>> >> >> The plugin spawns the grid hub on the master on start. All the node >> configurations spawns a selenium process with "-role node" option and >> connects to the jenkins master grid hub. It is correct that a slave can >> have 0 or more configurations running on it. >> >> >> Let's make a not so complex example: >> >> >> Master is configure with label master. >> Let's say you have 5 slaves, Windows1 (labels Windows, IE), Windows2 >> (labels Windows), Linux1 (Labels Linux), Linux2 (labels Linux), Solaris >> >> Then you create 5 selenium configurations: >> 1. This configuration matcher on All nodes and specifies 5 instances of >> firefox browsers >> 2. This configuration matches on Nodes that have label Windows and spawns >> 5 instances of chrome >> 3. This configuration matches on Nodes that have label IE and spawns 1 >> instance of IE >> 4. This configuration matches on Nodes that have label Linux and spawns 3 >> instances of chrome >> 5. This configuration matches no nodes as it was a test and you >> "disabled" it. >> >> In the end what would happen (when the slaves are started or when jenkins >> starts) >> >> Master jenkins would run the hub (always running even if there are no >> configuration in the system) and configuration 1 >> Windows1 would run configuration 1,2,3 >> Windows2 would run configuration 1,2 >> Linux1 would run configuration 1,4 >> Linux2 would run configuration 1,4 >> Solaris would run configuration 1 >> >> All the slave nodes would connect to the jenkins master selenium hub, and >> you will be able to see that from http://jenkins/selenium >> >> You also have to note that changing a configuration won't have any effect >> on the running selenium processes on the slaves. To put the changes into >> effect, you have to either restart the service from the slave >> configuration page or by clicking on the node matching that configuration, >> or restart jenkins (a bit too much, that's why the restart service option >> exists) >> >> Does that explains better the plugin ? >> >> >> >>> Thank you! >>> >>> On Wed, Oct 10, 2012 at 4:51 PM, Richard Lavoie < >>> lavoie.rich...@gmail.com> wrote: >>> >>>> Comments inlined. >>>> >>>> On Wed, Oct 10, 2012 at 4:22 PM, Jeff <predato...@gmail.com> wrote: >>>> >>>>> I'm missing something simple and the documentation for the Selenium >>>>> Grid Plugin doesn't cover these in any detail. I'm using the latest >>>>> Selenium Plugin with Jenkins v1.482. >>>>> >>>>> *First:* >>>>> >>>>> I can't get the plugin to find my JSON file that I'm trying to use to >>>>> configure the node. I've tried the following: >>>>> >>>>> C:\.jenkins\SeleniumNodeConfig\nodecfg.json >>>>> C:/.jenkins/SeleniumNodeConfig/nodecfg.json >>>>> C:\\.jenkins\\SeleniumNodeConfig\\nodecfg.json >>>>> file:///C:/.jenkins/SeleniumNodeConfig/nodecfg.json >>>>> file:////.jenkins/SeleniumNodeConfig/nodecfg.json >>>>> C:/Temp/nodecfg.json >>>>> file:///C:/Temp/nodecfg.json >>>>> >>>>> >>>> >>>> did you try file:/c:/Temp/nodecfg.json ? >>>> >>>> >>>> I'll try to look into it tonight to at least add some examples. I >>>> thought people would prefer using the HTTP scheme than local files for >>>> distributed environment. >>>> >>>> >>>>> But Jenkins throws a NullPointerException during startup in each >>>>> case: >>>>> >>>>> java.lang.NullPointerException >>>>> at >>>>> hudson.plugins.selenium.PluginImpl.getGlobalConfigurationForComputer(PluginImpl.java:598) >>>>> at >>>>> hudson.plugins.selenium.PluginImpl.startSeleniumNode(PluginImpl.java:505) >>>>> at >>>>> hudson.plugins.selenium.ComputerListenerImpl.onOnline(ComputerListenerImpl.java:26) >>>>> at jenkins.model.Jenkins.<init>(Jenkins.java:832) >>>>> at hudson.model.Hudson.<init>(Hudson.java:81) >>>>> at hudson.model.Hudson.<init>(Hudson.java:77) >>>>> at hudson.WebAppMain$2.run(WebAppMain.java:214) >>>>> >>>>> What am I missing? >>>>> >>>>> >>>>> >>>>> *Second:* >>>>> >>>>> Can anyone explain the "Matching type" setting in the node >>>>> configuration editor? I am not grasping what it is "matching" to? I >>>>> thought that the configuration is defining the node itself so how or what >>>>> is it matching to? >>>>> >>>>> >>>>> >>>> The concept of configurations in this plugin is global to all nodes. It >>>> will try to apply all the "matching" configurations to every nodes it can >>>> work on. So when a node comes online, for each configurations defined, it >>>> will ask the matcher if this configuration is allowed on this node. There >>>> are currently 3 matchers, All (will run this configuration on all the >>>> nodes), None (will run it on no nodes, hence disable a configuration) and >>>> label matching where the configuration will run on this node only if this >>>> computer label matches the specified label expression. >>>> >>>> There is a distinction to make in between a selenium node (a running >>>> java process on the machine) and the jenkins computer node (the machine >>>> slave/master that will host the selenium java process) >>>> >>>> While this plugin creates selenium node configurations, the selenium >>>> configurations are applied to jenkins computer nodes. >>>> >>>> Hope that clarifies it. >>>> >>>> >>>> Thanks! >>>>> >>>>> -- >>>>> Jeff Vincent >>>>> predato...@gmail.com >>>>> See my LinkedIn profile at: >>>>> http://www.linkedin.com/in/rjeffreyvincent >>>>> I ♥ DropBox <http://db.tt/9O6LfBX> !! >>>>> >>>>> >>>> >>>> >>>> -- >>>> Richard Lavoie >>>> IT consultant / consultant en informatique >>>> >>> >>> >>> >>> -- >>> Jeff Vincent >>> predato...@gmail.com >>> See my LinkedIn profile at: >>> http://www.linkedin.com/in/rjeffreyvincent >>> I ♥ DropBox <http://db.tt/9O6LfBX> !! >>> >>> >> >> >> -- >> Richard Lavoie >> IT consultant / consultant en informatique >> > > > > -- > Jeff Vincent > predato...@gmail.com > See my LinkedIn profile at: > http://www.linkedin.com/in/rjeffreyvincent > I ♥ DropBox <http://db.tt/9O6LfBX> !! > > -- Richard Lavoie IT consultant / consultant en informatique