def test_start_worker_but_error(self): worker = self.makeWorker(image="buggy") d = worker.substantiate(None, fakebuild.FakeBuildForRendering()) self.reactor.advance(.1) self.failureResultOf(d) self.assertIsNotNone(worker.client) self.assertEqual(worker.instance, None)
def test_start_worker(self): # http://mesosphere.github.io/marathon/docs/rest-api.html#post-v2-apps worker = self.makeWorker() worker.password = "******" worker.masterFQDN = "master" self._http.expect( method='delete', ep='/v2/apps/buildbot-worker/buildbot-bot-masterhash') self._http.expect(method='post', ep='/v2/apps', json={ 'instances': 1, 'container': { 'docker': { 'image': 'rendered:debian:wheezy', 'network': 'BRIDGE' }, 'type': 'DOCKER' }, 'id': 'buildbot-worker/buildbot-bot-masterhash', 'env': { 'BUILDMASTER': "master", 'BUILDMASTER_PORT': '1234', 'WORKERNAME': 'bot', 'WORKERPASS': "******" } }, code=201, content_json={'Id': 'id'}) d = worker.substantiate(None, fakebuild.FakeBuildForRendering()) # we simulate a connection worker.attached(FakeBot()) self.successResultOf(d) self.assertEqual(worker.instance, {'Id': 'id'})
def test_start_worker_but_error(self): worker = self.makeWorker() self._http.expect( method='delete', ep='/v2/apps/buildbot-worker/buildbot-bot-masterhash') self._http.expect(method='post', ep='/v2/apps', json={ 'instances': 1, 'container': { 'docker': { 'image': 'rendered:debian:wheezy', 'network': 'BRIDGE' }, 'type': 'DOCKER' }, 'id': 'buildbot-worker/buildbot-bot-masterhash', 'env': { 'BUILDMASTER': "master", 'BUILDMASTER_PORT': '1234', 'WORKERNAME': 'bot', 'WORKERPASS': "******" } }, code=404, content_json={'message': 'image not found'}) self._http.expect( method='delete', ep='/v2/apps/buildbot-worker/buildbot-bot-masterhash') d = worker.substantiate(None, fakebuild.FakeBuildForRendering()) self.reactor.advance(.1) self.failureResultOf(d) self.assertEqual(worker.instance, None)
def test_start_worker_but_no_connection_and_shutdown(self): worker = self.makeWorker() worker.password = "******" worker.masterFQDN = "master" self._http.expect( method='delete', ep='/v2/apps/buildbot-worker/buildbot-bot-masterhash') self._http.expect(method='post', ep='/v2/apps', json={ 'instances': 1, 'container': { 'docker': { 'image': 'rendered:debian:wheezy', 'network': 'BRIDGE' }, 'type': 'DOCKER' }, 'id': 'buildbot-worker/buildbot-bot-masterhash', 'env': { 'BUILDMASTER': "master", 'BUILDMASTER_PORT': '1234', 'WORKERNAME': 'bot', 'WORKERPASS': "******" } }, code=201, content_json={'Id': 'id'}) worker.substantiate(None, fakebuild.FakeBuildForRendering()) self.assertEqual(worker.instance, {'Id': 'id'})
def test_start_worker_but_already_created_with_same_name(self): worker = self.makeWorker(image="cool") worker.client.create_container(image="foo", name=worker.getContainerName()) d = worker.substantiate(None, fakebuild.FakeBuildForRendering()) self.reactor.advance(.1) worker.attached(FakeBot()) self.successResultOf(d) self.assertIsNotNone(worker.client)
def test_start_worker_but_no_connection_and_shutdown(self): worker = self.makeWorker() worker.substantiate(None, fakebuild.FakeBuildForRendering()) self.assertIsNotNone(worker.client) self.assertEqual( worker.instance, { 'Id': '8a61192da2b3bb2d922875585e29b74ec0dc4e0117fcbf84c962204e97564cd7', 'Warnings': None, 'image': 'rendered:debian:wheezy' })
def test_start_worker(self): worker = self.makeWorker() d = worker.substantiate(None, fakebuild.FakeBuildForRendering()) # we simulate a connection worker.attached(FakeBot()) self.successResultOf(d) self.assertIsNotNone(worker.client) self.assertEqual( worker.instance, { 'Id': '8a61192da2b3bb2d922875585e29b74ec0dc4e0117fcbf84c962204e97564cd7', 'Warnings': None, 'image': 'rendered:debian:wheezy' })