Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1069)

Unified Diff: rietveld.py

Issue 236093002: Added POST capability to oauth Rietveld (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« presubmit_support.py ('K') | « presubmit_support.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: rietveld.py
diff --git a/rietveld.py b/rietveld.py
index 88a1b29aea875690e20159c0613fbfe04c1cdb82..b02fc394072d8ade484f8850851e7d873be6cefe 100644
--- a/rietveld.py
+++ b/rietveld.py
@@ -447,7 +447,7 @@ class Rietveld(object):
class OAuthRpcServer(object):
def __init__(self,
host,
- client_id,
+ client_email,
client_private_key,
private_key_password='notasecret',
user_agent=None,
@@ -455,7 +455,7 @@ class OAuthRpcServer(object):
extra_headers=None):
"""Wrapper around httplib2.Http() that handles authentication.
- client_id: client id for service account
+ client_email: email associated with the service account
client_private_key: encrypted private key, as a string
private_key_password: password used to decrypt the private key
"""
@@ -478,12 +478,12 @@ class OAuthRpcServer(object):
self.extra_headers = extra_headers or {}
if not oa2client.HAS_OPENSSL:
- logging.error("Support for OpenSSL hasn't been found, "
+ logging.error("No support for OpenSSL has been found, "
"OAuth2 support requires it.")
logging.error("Installing pyopenssl will probably solve this issue.")
raise RuntimeError('No OpenSSL support')
creds = oa2client.SignedJwtAssertionCredentials(
- client_id,
+ client_email,
client_private_key,
'https://www.googleapis.com/auth/userinfo.email',
private_key_password=private_key_password,
@@ -516,7 +516,7 @@ class OAuthRpcServer(object):
if payload is not None:
method = 'POST'
headers['Content-Type'] = content_type
- raise NotImplementedError('POST requests are not yet supported.')
+# raise NotImplementedError('POST requests are not yet supported.')
Sergey Berezin 2014/04/14 20:59:42 Let's remove this comment.
pgervais 2014/04/14 21:28:05 Done.
prev_timeout = self._http.timeout
try:
@@ -527,11 +527,14 @@ class OAuthRpcServer(object):
if kwargs:
url += "?" + urllib.urlencode(kwargs)
+ logging.info(url)
Sergey Berezin 2014/04/14 20:59:42 Please add a meaningful message to the log.
pgervais 2014/04/14 21:28:05 Removed it (was for testing, and forgotten)
ret = self._http.request(url,
method=method,
body=payload,
headers=headers)
- if not ret[0]['content-location'].startswith(self.host):
+
+ if (method == 'GET'
+ and not ret[0]['content-location'].startswith(self.host)):
upload.logging.warning('Redirection to host %s detected: '
'login may have failed/expired.'
% urlparse.urlparse(
@@ -552,18 +555,28 @@ class JwtOAuth2Rietveld(Rietveld):
# pylint: disable=W0231
def __init__(self,
url,
- client_id,
+ client_email,
client_private_key_file,
private_key_password=None,
extra_headers=None):
+
+ # These attributes are accessed by commit queue. Keep them.
+ self.email = client_email
+ self.private_key_file = client_private_key_file
+
if private_key_password is None: # '' means 'empty password'
private_key_password = 'notasecret'
self.url = url.rstrip('/')
+ bot_url = self.url
+ if not bot_url.endswith('/bots'):
+ bot_url += '/bots'
+
with open(client_private_key_file, 'rb') as f:
client_private_key = f.read()
- self.rpc_server = OAuthRpcServer(url,
- client_id,
+ logging.info('Using login: %s' % client_email)
Sergey Berezin 2014/04/14 20:59:42 Would it make sense to say 'Using OAuth login: %s'
Sergey Berezin 2014/04/14 22:49:46 What about this comment?
pgervais 2014/04/14 23:10:43 Sorry, I've overlooked it completely. I definitely
+ self.rpc_server = OAuthRpcServer(bot_url,
+ client_email,
client_private_key,
private_key_password=private_key_password,
extra_headers=extra_headers or {})
« presubmit_support.py ('K') | « presubmit_support.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698