jenkins.py refactor command handling

This commit is contained in:
James Booth
2014-06-10 01:03:44 +01:00
parent 2ef090ab7b
commit b61652f2c1

View File

@@ -222,16 +222,7 @@ def _prof_callback():
def _handle_input(win, line): def _handle_input(win, line):
prof.win_show(win_tag, "Handled input.") prof.win_show(win_tag, "Handled input.")
def _cmd_jenkins(cmd=None, arg=None): def _list_jobs():
global enable_remind
global enable_notify
if not prof.win_exists(win_tag):
prof.win_create(win_tag, _handle_input)
prof.win_focus(win_tag)
if cmd == "list":
if job_list and job_list.get_jobs(): if job_list and job_list.get_jobs():
prof.win_show(win_tag, "Jobs:") prof.win_show(win_tag, "Jobs:")
for name, build_number, state in job_list.get_jobs(): for name, build_number, state in job_list.get_jobs():
@@ -247,17 +238,51 @@ def _cmd_jenkins(cmd=None, arg=None):
prof.win_show_cyan(win_tag, " " + name + " " + state) prof.win_show_cyan(win_tag, " " + name + " " + state)
else: else:
prof.win_show(win_tag, "No job data yet.") prof.win_show(win_tag, "No job data yet.")
def _build_job(job):
try:
urllib2.urlopen(jenkins_url + "/job/" + job + "/build")
except Exception, e:
prof.win_show(win_tag, "Failed to build " + job + ", see the logs.")
prof.log_warning("Failed to build " + job + ": " + str(e))
else:
prof.win_show(win_tag, "Build request sent for " + job)
def _help():
prof.win_show(win_tag, "Commands:")
prof.win_show(win_tag, " /jenkins help - Show this help")
prof.win_show(win_tag, " /jenkins list - List all jobs")
prof.win_show(win_tag, " /jenkins build [job] - Trigger build for job")
prof.win_show(win_tag, " /jenkins open [job] - Open job in browser")
prof.win_show(win_tag, " /jenkins remind on|off - Enable/disable reminder notifications")
prof.win_show(win_tag, " /jenkins notify on|off - Enable/disable build notifications")
prof.win_show(win_tag, " /jenkins settings - Show current settings")
def _settings():
prof.win_show(win_tag, "Jenkins settings:")
prof.win_show(win_tag, " Jenkins URL : " + jenkins_url)
prof.win_show(win_tag, " Jenkins poll interval : " + str(jenkins_poll_interval) + " seconds")
prof.win_show(win_tag, " Profanity update interval : " + str(prof_cb_interval) + " seconds")
prof.win_show(win_tag, " Reminder interval : " + str(prof_remind_interval) + " seconds")
prof.win_show(win_tag, " Notifications enabled : " + str(enable_notify))
prof.win_show(win_tag, " Reminders enabled : " + str(enable_remind))
def _cmd_jenkins(cmd=None, arg=None):
global enable_remind
global enable_notify
if not prof.win_exists(win_tag):
prof.win_create(win_tag, _handle_input)
prof.win_focus(win_tag)
if cmd == "list":
_list_jobs()
elif cmd == "build": elif cmd == "build":
if not arg: if not arg:
prof.win_show(win_tag, "You must supply a job argument.") prof.win_show(win_tag, "You must supply a job argument.")
elif job_list and job_list.contains_job(arg): elif job_list and job_list.contains_job(arg):
try: _build_job(arg)
urllib2.urlopen(jenkins_url + "/job/" + arg + "/build")
except Exception, e:
prof.win_show(win_tag, "Failed to build " + arg + ", see the logs.")
prof.log_warning("Failed to build " + arg + ": " + str(e))
else:
prof.win_show(win_tag, "Build request sent for " + arg)
else: else:
prof.win_show(win_tag, "No such job: " + arg) prof.win_show(win_tag, "No such job: " + arg)
elif cmd == "open": elif cmd == "open":
@@ -290,22 +315,9 @@ def _cmd_jenkins(cmd=None, arg=None):
else: else:
prof.win_show(win_tag, "You must specify either 'on' or 'off'.") prof.win_show(win_tag, "You must specify either 'on' or 'off'.")
elif cmd == "settings": elif cmd == "settings":
prof.win_show(win_tag, "Jenkins settings:") _settings()
prof.win_show(win_tag, " Jenkins URL : " + jenkins_url)
prof.win_show(win_tag, " Jenkins poll interval : " + str(jenkins_poll_interval) + " seconds")
prof.win_show(win_tag, " Profanity update interval : " + str(prof_cb_interval) + " seconds")
prof.win_show(win_tag, " Reminder interval : " + str(prof_remind_interval) + " seconds")
prof.win_show(win_tag, " Notifications enabled : " + str(enable_notify))
prof.win_show(win_tag, " Reminders enabled : " + str(enable_remind))
elif cmd == "help": elif cmd == "help":
prof.win_show(win_tag, "Commands:") _help()
prof.win_show(win_tag, " /jenkins help - Show this help")
prof.win_show(win_tag, " /jenkins list - List all jobs")
prof.win_show(win_tag, " /jenkins build [job] - Trigger build for job")
prof.win_show(win_tag, " /jenkins open [job] - Open job in browser")
prof.win_show(win_tag, " /jenkins remind on|off - Enable/disable reminder notifications")
prof.win_show(win_tag, " /jenkins notify on|off - Enable/disable build notifications")
prof.win_show(win_tag, " /jenkins settings - Show current settings")
else: else:
prof.win_show(win_tag, "Unknown command.") prof.win_show(win_tag, "Unknown command.")