Reference jenkins master in workers.

The "stop:" function should be qualified by the name of the jenkins master
to make it globally unique (eg "stop:jenkins.example.com").

Supply the name of the master in the WORK_DATA that is sent to the client
when the job starts building so that the client can direct a subsequent
"stop:" request to the right worker.

Change-Id: I0112b84ae614ce4faaed880ea3d1073674dfe5fe
This commit is contained in:
James E. Blair
2013-04-29 11:20:59 -07:00
parent 5525624d6f
commit 4e560245c0
8 changed files with 65 additions and 33 deletions

View File

@@ -65,7 +65,7 @@ public class ExecutorWorkerThreadTest extends HudsonTestCase {
Project<?, ?> apple = createFreeStyleProject("apple");
apple.setAssignedLabel(new LabelAtom("oneiric-10"));
AbstractWorkerThread oneiric = new ExecutorWorkerThread("GearmanServer", 4730, "MyWorker", slave);
AbstractWorkerThread oneiric = new ExecutorWorkerThread("GearmanServer", 4730, "MyWorker", slave, "master");
oneiric.registerJobs();
Set<String> functions = oneiric.worker.getRegisteredFunctions();
@@ -85,7 +85,7 @@ public class ExecutorWorkerThreadTest extends HudsonTestCase {
Project<?, ?> lemon = createFreeStyleProject("lemon");
lemon.setAssignedLabel(new LabelAtom("linux"));
AbstractWorkerThread oneiric = new ExecutorWorkerThread("GearmanServer", 4730, "MyWorker", slave);
AbstractWorkerThread oneiric = new ExecutorWorkerThread("GearmanServer", 4730, "MyWorker", slave, "master");
oneiric.registerJobs();
Set<String> functions = oneiric.worker.getRegisteredFunctions();
@@ -105,7 +105,7 @@ public class ExecutorWorkerThreadTest extends HudsonTestCase {
Project<?, ?> lemon = createFreeStyleProject("lemon");
lemon.setAssignedLabel(new LabelAtom("bogus"));
AbstractWorkerThread oneiric = new ExecutorWorkerThread("GearmanServer", 4730, "MyWorker", slave);
AbstractWorkerThread oneiric = new ExecutorWorkerThread("GearmanServer", 4730, "MyWorker", slave, "master");
oneiric.registerJobs();
Set<String> functions = oneiric.worker.getRegisteredFunctions();
@@ -122,7 +122,7 @@ public class ExecutorWorkerThreadTest extends HudsonTestCase {
Project<?, ?> lemon = createFreeStyleProject("lemon");
AbstractWorkerThread oneiric = new ExecutorWorkerThread("GearmanServer", 4730, "MyWorker", slave);
AbstractWorkerThread oneiric = new ExecutorWorkerThread("GearmanServer", 4730, "MyWorker", slave, "master");
oneiric.registerJobs();
Set<String> functions = oneiric.worker.getRegisteredFunctions();
@@ -142,7 +142,7 @@ public class ExecutorWorkerThreadTest extends HudsonTestCase {
lemon.setAssignedLabel(new LabelAtom("linux"));
lemon.disable();
AbstractWorkerThread oneiric = new ExecutorWorkerThread("GearmanServer", 4730, "MyWorker", slave);
AbstractWorkerThread oneiric = new ExecutorWorkerThread("GearmanServer", 4730, "MyWorker", slave, "master");
oneiric.registerJobs();
Set<String> functions = oneiric.worker.getRegisteredFunctions();
@@ -163,7 +163,7 @@ public class ExecutorWorkerThreadTest extends HudsonTestCase {
Project<?, ?> lemon = createFreeStyleProject("lemon");
lemon.setAssignedLabel(new LabelAtom("linux"));
AbstractWorkerThread oneiric = new ExecutorWorkerThread("GearmanServer", 4730, "MyWorker", offlineSlave);
AbstractWorkerThread oneiric = new ExecutorWorkerThread("GearmanServer", 4730, "MyWorker", offlineSlave, "master");
oneiric.registerJobs();
Set<String> functions = oneiric.worker.getRegisteredFunctions();
@@ -181,7 +181,7 @@ public class ExecutorWorkerThreadTest extends HudsonTestCase {
MavenModuleSet lemon = createMavenProject("lemon");
lemon.setAssignedLabel(new LabelAtom("linux"));
AbstractWorkerThread oneiric = new ExecutorWorkerThread("GearmanServer", 4730, "MyWorker", slave);
AbstractWorkerThread oneiric = new ExecutorWorkerThread("GearmanServer", 4730, "MyWorker", slave, "master");
oneiric.registerJobs();
Set<String> functions = oneiric.worker.getRegisteredFunctions();
@@ -202,7 +202,7 @@ public class ExecutorWorkerThreadTest extends HudsonTestCase {
Project<?, ?> lemon = createFreeStyleProject("lemon");
lemon.setAssignedLabel(new LabelAtom("!linux"));
AbstractWorkerThread oneiric = new ExecutorWorkerThread("GearmanServer", 4730, "MyWorker", slave);
AbstractWorkerThread oneiric = new ExecutorWorkerThread("GearmanServer", 4730, "MyWorker", slave, "master");
oneiric.registerJobs();
Set<String> functions = oneiric.worker.getRegisteredFunctions();

View File

@@ -56,13 +56,14 @@ public class GearmanProxyTest extends HudsonTestCase {
assertEquals(0, gp.getNumExecutors());
gp.getGewtHandles().add(new ExecutorWorkerThread("localhost", 4730, "test-exec-0", slave));
gp.getGewtHandles().add(new ExecutorWorkerThread("localhost", 4730, "test-exec-1", slave));
gp.getGewtHandles().add(new ExecutorWorkerThread("localhost", 4730, "test-exec-2", slave));
gp.getGewtHandles().add(new ExecutorWorkerThread("localhost", 4730, "test_exec-0", slave, "master"));
gp.getGewtHandles().add(new ExecutorWorkerThread("localhost", 4730, "test_exec-1", slave, "master"));
gp.getGewtHandles().add(new ExecutorWorkerThread("localhost", 4730, "test_exec-2", slave, "master"));
assertEquals(3, gp.getNumExecutors());
gp.getGewtHandles().add(new ManagementWorkerThread("localhost", 4730, "manage-exec-2"));
gp.getGewtHandles().add(new ManagementWorkerThread("localhost", 4730,
"master_manage", "master"));
assertEquals(4, gp.getNumExecutors());
}

View File

@@ -56,16 +56,18 @@ public class ManagementWorkerThreadTest {
@Test
public void testRegisterJobs() {
AbstractWorkerThread manager = new ManagementWorkerThread("GearmanServer", 4730, "manager");
AbstractWorkerThread manager = new ManagementWorkerThread("GearmanServer", 4730,
"master_manager", "master");
manager.registerJobs();
Set<String> functions = manager.worker.getRegisteredFunctions();
assertEquals("stop:GearmanServer", functions.toArray()[0]);
assertEquals("stop:master", functions.toArray()[0]);
}
@Test
public void testManagerId() {
AbstractWorkerThread manager = new ManagementWorkerThread("GearmanServer", 4730, "manager");
assertEquals("manager", manager.getName());
AbstractWorkerThread manager = new ManagementWorkerThread("GearmanServer", 4730,
"master_manager", "master");
assertEquals("master_manager", manager.getName());
}
}