def test_redis_heartbeat_build(self):
        heartbeat = RedisHeartBeat(build=1)
        self.assertEqual(heartbeat.redis_key, RedisHeartBeat.KEY_BUILD.format(1))
        self.assertEqual(heartbeat.is_alive(), False)
        self.assertEqual(RedisHeartBeat.build_is_alive(1), False)

        heartbeat.ping()
        self.assertEqual(heartbeat.is_alive(), True)
        self.assertEqual(RedisHeartBeat.build_is_alive(1), True)

        heartbeat.clear()
        self.assertEqual(heartbeat.is_alive(), False)
        self.assertEqual(RedisHeartBeat.build_is_alive(1), False)

        RedisHeartBeat.build_ping(1)
        self.assertEqual(heartbeat.is_alive(), True)
        self.assertEqual(RedisHeartBeat.build_is_alive(1), True)
Exemple #2
0
def build_jobs_check_heartbeat(build_job_id):
    if RedisHeartBeat.build_is_alive(build_id=build_job_id):
        return

    build_job = get_valid_build_job(build_job_id=build_job_id)
    if not build_job:
        return

    # BuildJob is zombie status
    build_job.set_status(JobLifeCycle.FAILED,
                         message='BuildJob is in zombie state (no heartbeat was reported).')
Exemple #3
0
 def test_post_internal_build_heartbeat(self):
     self.assertEqual(RedisHeartBeat.build_is_alive(self.build.id), False)
     resp = self.internal_client.post(self.url)
     assert resp.status_code == status.HTTP_200_OK
     self.assertEqual(RedisHeartBeat.build_is_alive(self.build.id), True)