From: Ramon van Alteren Date: Thu, 5 Jan 2012 12:56:30 +0000 (+0100) Subject: Added support for user/pass auth to invoker X-Git-Tag: v0.2.23~342 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=22c68d8de11079e7d1b9b8651d6cc2c1737991e4;p=tools%2Fpython-jenkinsapi.git Added support for user/pass auth to invoker --- 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)