Пример #1
0
 def makeWorker(self, **kwargs):
     kwargs.setdefault('image', 'debian:wheezy')
     worker = MarathonLatentWorker('bot', 'tcp://marathon.local', **kwargs)
     self.worker = worker
     master = fakemaster.make_master(self, wantData=True)
     self._http = yield fakehttpclientservice.HTTPClientService.getFakeService(
         master, self, 'tcp://marathon.local', auth=kwargs.get('auth'))
     yield worker.setServiceParent(master)
     worker.reactor = self.reactor
     yield master.startService()
     worker.masterhash = "masterhash"
     return worker
Пример #2
0
 def makeWorker(self, **kwargs):
     kwargs.setdefault('image', 'debian:wheezy')
     worker = MarathonLatentWorker('bot', 'tcp://marathon.local', **kwargs)
     self.worker = worker
     master = fakemaster.make_master(testcase=self, wantData=True)
     self._http = self.successResultOf(
         fakehttpclientservice.HTTPClientService.getFakeService(
             master, self, 'tcp://marathon.local', auth=kwargs.get(
                 'auth')))
     worker.setServiceParent(master)
     worker.reactor = self.reactor
     self.successResultOf(master.startService())
     worker.masterhash = "masterhash"
     return worker
def masterConfig(num_concurrent, extra_steps=None):
    if extra_steps is None:
        extra_steps = []
    c = {}

    c['schedulers'] = [
        schedulers.ForceScheduler(
            name="force",
            builderNames=["testy"])]
    triggereables = []
    for i in range(num_concurrent):
        c['schedulers'].append(
            schedulers.Triggerable(
                name="trigsched" + str(i),
                builderNames=["build"]))
        triggereables.append("trigsched" + str(i))

    f = BuildFactory()
    f.addStep(steps.ShellCommand(command='echo hello'))
    f.addStep(steps.Trigger(schedulerNames=triggereables,
                            waitForFinish=True,
                            updateSourceStamp=True))
    f.addStep(steps.ShellCommand(command='echo world'))
    f2 = BuildFactory()
    f2.addStep(steps.ShellCommand(command='echo ola'))
    for step in extra_steps:
        f2.addStep(step)
    c['builders'] = [
        BuilderConfig(name="testy",
                      workernames=["marathon0"],
                      factory=f),
        BuilderConfig(name="build",
                      workernames=["marathon" + str(i)
                                   for i in range(num_concurrent)],
                      factory=f2)]
    url = os.environ.get('BBTEST_MARATHON_URL')
    creds = os.environ.get('BBTEST_MARATHON_CREDS')
    if creds is not None:
        user, password = creds.split(":")
    else:
        user = password = None
    masterFQDN = os.environ.get('masterFQDN')
    marathon_extra_config = {
    }
    c['workers'] = [
        MarathonLatentWorker('marathon' + str(i), url, user, password, 'buildbot/buildbot-worker:master',
                             marathon_extra_config=marathon_extra_config,
                             masterFQDN=masterFQDN)
        for i in range(num_concurrent)
    ]
    # un comment for debugging what happens if things looks locked.
    # c['www'] = {'port': 8080}
    # if the masterFQDN is forced (proxy case), then we use 9989 default port
    # else, we try to find a free port
    if masterFQDN is not None:
        c['protocols'] = {"pb": {"port": "tcp:9989"}}
    else:
        c['protocols'] = {"pb": {"port": "tcp:0"}}

    return c
Пример #4
0
 def test_constructor_normal(self):
     worker = MarathonLatentWorker('bot', 'tcp://marathon.local', 'foo',
                                   'bar', 'debian:wheezy')
     # class instantiation configures nothing
     self.assertEqual(worker._http, None)