Refactor jenkins poll
This commit is contained in:
59
jenkins.py
59
jenkins.py
@@ -132,6 +132,35 @@ class JobUpdates():
|
|||||||
def get_in_state(self, state):
|
def get_in_state(self, state):
|
||||||
return self.states[state]
|
return self.states[state]
|
||||||
|
|
||||||
|
def _process_build(name, build, new_job_list, new_changes_list):
|
||||||
|
if build.get_status() == STATE_FAILURE:
|
||||||
|
new_job_list.add_job(name, build.get_number(), STATE_FAILURE)
|
||||||
|
changed = _set_state(name, STATE_FAILURE)
|
||||||
|
if changed:
|
||||||
|
new_changes_list.add_update(STATE_FAILURE, name, build.get_number())
|
||||||
|
elif build.get_status() == STATE_SUCCESS:
|
||||||
|
new_job_list.add_job(name, build.get_number(), STATE_SUCCESS)
|
||||||
|
changed = _set_state(name, STATE_SUCCESS)
|
||||||
|
if changed:
|
||||||
|
new_changes_list.add_update(STATE_SUCCESS, name, build.get_number())
|
||||||
|
elif build.get_status() == STATE_UNSTABLE:
|
||||||
|
new_job_list.add_job(name, build.get_number(), STATE_UNSTABLE)
|
||||||
|
changed = _set_state(name, STATE_UNSTABLE)
|
||||||
|
if changed:
|
||||||
|
new_changes_list.add_update(STATE_UNSTABLE, name, build.get_number())
|
||||||
|
|
||||||
|
def _process_queued_or_running(name, job, new_job_list, new_changes_list):
|
||||||
|
if job.is_queued():
|
||||||
|
new_job_list.add_job(name, None, STATE_QUEUED)
|
||||||
|
changed = _set_state(name, STATE_QUEUED)
|
||||||
|
if changed:
|
||||||
|
new_changes_list.add_update(STATE_QUEUED, name)
|
||||||
|
elif job.is_running():
|
||||||
|
new_job_list.add_job(name, None, STATE_RUNNING)
|
||||||
|
changed = _set_state(name, STATE_RUNNING)
|
||||||
|
if changed:
|
||||||
|
new_changes_list.add_update(STATE_RUNNING, name)
|
||||||
|
|
||||||
def _jenkins_poll():
|
def _jenkins_poll():
|
||||||
global poll_fail
|
global poll_fail
|
||||||
global poll_fail_message
|
global poll_fail_message
|
||||||
@@ -140,7 +169,6 @@ def _jenkins_poll():
|
|||||||
|
|
||||||
while True:
|
while True:
|
||||||
time.sleep(jenkins_poll_interval)
|
time.sleep(jenkins_poll_interval)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
j = Jenkins(jenkins_url, username, password)
|
j = Jenkins(jenkins_url, username, password)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
@@ -149,42 +177,17 @@ def _jenkins_poll():
|
|||||||
else:
|
else:
|
||||||
poll_fail = False
|
poll_fail = False
|
||||||
poll_fail_message = None
|
poll_fail_message = None
|
||||||
|
|
||||||
new_job_list = JobList()
|
new_job_list = JobList()
|
||||||
new_changes_list = JobUpdates()
|
new_changes_list = JobUpdates()
|
||||||
|
|
||||||
for name, job in j.get_jobs():
|
for name, job in j.get_jobs():
|
||||||
if not job.is_queued_or_running():
|
if not job.is_queued_or_running():
|
||||||
build = job.get_last_build_or_none()
|
build = job.get_last_build_or_none()
|
||||||
if build:
|
if build:
|
||||||
if build.get_status() == STATE_FAILURE:
|
_process_build(name, build, new_job_list, new_changes_list)
|
||||||
new_job_list.add_job(name, build.get_number(), STATE_FAILURE)
|
|
||||||
changed = _set_state(name, STATE_FAILURE)
|
|
||||||
if changed:
|
|
||||||
new_changes_list.add_update(STATE_FAILURE, name, build.get_number())
|
|
||||||
elif build.get_status() == STATE_SUCCESS:
|
|
||||||
new_job_list.add_job(name, build.get_number(), STATE_SUCCESS)
|
|
||||||
changed = _set_state(name, STATE_SUCCESS)
|
|
||||||
if changed:
|
|
||||||
new_changes_list.add_update(STATE_SUCCESS, name, build.get_number())
|
|
||||||
elif build.get_status() == STATE_UNSTABLE:
|
|
||||||
new_job_list.add_job(name, build.get_number(), STATE_UNSTABLE)
|
|
||||||
changed = _set_state(name, STATE_UNSTABLE)
|
|
||||||
if changed:
|
|
||||||
new_changes_list.add_update(STATE_UNSTABLE, name, build.get_number())
|
|
||||||
else:
|
else:
|
||||||
new_job_list.add_job(name, None, STATE_NOBUILDS)
|
new_job_list.add_job(name, None, STATE_NOBUILDS)
|
||||||
else:
|
else:
|
||||||
if job.is_queued():
|
_process_queued_or_running(name, job, new_job_list, new_changes_list)
|
||||||
new_job_list.add_job(name, None, STATE_QUEUED)
|
|
||||||
changed = _set_state(name, STATE_QUEUED)
|
|
||||||
if changed:
|
|
||||||
new_changes_list.add_update(STATE_QUEUED, name)
|
|
||||||
elif job.is_running():
|
|
||||||
new_job_list.add_job(name, None, STATE_RUNNING)
|
|
||||||
changed = _set_state(name, STATE_RUNNING)
|
|
||||||
if changed:
|
|
||||||
new_changes_list.add_update(STATE_RUNNING, name)
|
|
||||||
job_list = new_job_list
|
job_list = new_job_list
|
||||||
changes_list = new_changes_list
|
changes_list = new_changes_list
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user