Cleanup and parallelize the Jenkins code.

master
Simon Quigley 5 years ago
parent 935867aa7e
commit d075f45568

@ -48,6 +48,8 @@ class jenkins(object):
self.logger = logging.getLogger('lugito.connector.jenkins') self.logger = logging.getLogger('lugito.connector.jenkins')
self.jenkins = self.auth_jenkins()
# Add log level # Add log level
ch = logging.StreamHandler() ch = logging.StreamHandler()
@ -110,18 +112,11 @@ class jenkins(object):
status = None status = None
# Authenticate with the server print("Getting project")
jenkins = self.auth_jenkins()
# Check if the project name matches a valid one on the server
# If it does, grab the job info, if it doesn't, stop
proj = None
for job in jenkins.get_jobs():
if job[0] == proj_name:
proj = job
if not proj: # If the server has the job, use it
return status if self.jenkins.has_job(proj_name):
proj = (proj_name, self.jenkins.get_job(proj_name))
# Get the status of the last completed build if there isone # Get the status of the last completed build if there isone
try: try:
@ -137,7 +132,9 @@ class jenkins(object):
# If it has been consistently stable, don't cause extra noise # If it has been consistently stable, don't cause extra noise
if status == "SUCCESS" and last_status == status: if status == "SUCCESS" and last_status == status:
return None return proj[0], None, url
print("Customizing build status")
# Customize the message depending on the previous build status # Customize the message depending on the previous build status
if status == "SUCCESS": if status == "SUCCESS":

@ -189,16 +189,26 @@ def jenkinstrigger():
return 'Ok' return 'Ok'
@app.route("/jenkinsnag", methods=["POST"]) def processjenkinsircnotify(request):
def jenkinsircnotify(): """Process the request given so it can be daemonized"""
"""Jenkins IRC notifications"""
# Get the status of the most recent build to the given project # Get the status of the most recent build to the given project
proj, status, link = jenkins_con.receive(request.data) proj, status, link = jenkins_con.receive(request)
if status: if status:
irc_con.send("Lubuntu CI", proj, status, link) irc_con.send("Lubuntu CI", proj, status, link)
@app.route("/jenkinsnag", methods=["POST"])
def jenkinsircnotify():
"""Jenkins IRC notifications"""
print("Processing request")
send_notification = threading.Thread(
target=processjenkinsircnotify, args=[request.data])
send_notification.setDaemon(True)
send_notification.start()
return 'Ok' return 'Ok'

Loading…
Cancel
Save