From 22c68d8de11079e7d1b9b8651d6cc2c1737991e4 Mon Sep 17 00:00:00 2001 From: Ramon van Alteren Date: Thu, 5 Jan 2012 13:56:30 +0100 Subject: [PATCH] Added support for user/pass auth to invoker --- pyjenkinsci/command_line/jenkins_invoke.py | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/pyjenkinsci/command_line/jenkins_invoke.py b/pyjenkinsci/command_line/jenkins_invoke.py index e2b812c..54ad596 100644 --- a/pyjenkinsci/command_line/jenkins_invoke.py +++ b/pyjenkinsci/command_line/jenkins_invoke.py @@ -14,15 +14,15 @@ class jenkins_invoke(object): parser.help_text = "Execute a number of jenkins jobs on the server of your choice. Optionally block until the jobs are complete." parser.add_option("-J", "--jenkinsbase", dest="baseurl", help="Base URL for the Jenkins server, default is %s" % DEFAULT_BASEURL, - type="str", - default=DEFAULT_BASEURL, ) - parser.add_option("-b", "--block", dest="block", - help="Block until each of the jobs is complete." , - action="store_true", - default=False ) - parser.add_option("-t", "--token", dest="token", - help="Optional security token." , - default=None ) + type="str", default=DEFAULT_BASEURL) + parser.add_option('--username', '-u', dest='username', + help="Username for jenkins authentification", type='str', default=None) + parser.add_option('--password', '-p', dest='password', + help="password for jenkins user auth", type='str', default=None) + parser.add_option("-b", "--block", dest="block", action="store_true", default=False, + help="Block until each of the jobs is complete.") + parser.add_option("-t", "--token", dest="token",help="Optional security token.", + default=None) return parser @classmethod @@ -41,18 +41,20 @@ class jenkins_invoke(object): def __init__(self, options, jobs): self.options = options self.jobs = jobs + self.api = self._get_api(baseurl=options.baseurl, username=options.username, password=options.password) + + def _get_api(self, baseurl, username, password): + return jenkins.Jenkins(baseurl, username, password) def __call__(self): for job in self.jobs: - self.invokejob(job, block=self.options.block, baseurl=self.options.baseurl, token=self.options.token) + self.invokejob(job, block=self.options.block, token=self.options.token) - def invokejob(self, jobname, block, baseurl, token ): + def invokejob(self, jobname, block, token): assert type(block) == bool - assert type(baseurl) == str assert type(jobname) == str assert token is None or isinstance(token, str) - jenkinsserver = jenkins.Jenkins( baseurl ) - job = jenkinsserver[jobname] + job = self.api.get_job(jobname) job.invoke(securitytoken=token, block=block) -- 2.7.4