diff options
author | Tobias Henkel <tobias.henkel@bmw-carit.de> | 2017-06-24 21:26:57 +0200 |
---|---|---|
committer | Tobias Henkel <tobias.henkel@bmw-carit.de> | 2017-06-26 22:10:12 +0200 |
commit | 39d6dcd180b1c9fb2db82dd537ae5402747c8ad3 (patch) | |
tree | 30524df1c40b86bf69084a26945e9640d4ab4716 /tools/encrypt_secret.py | |
parent | a7cf5c518ada2fdc176eaa04ab85344beaa04daf (diff) | |
download | zuul-39d6dcd180b1c9fb2db82dd537ae5402747c8ad3.tar.gz |
Fix encrypt_secret for python3
This fixes the encrypt_secret tool for use with python3. This needs
some minor changes to imports, encodings and base64 encoding.
Change-Id: Id29ebedab2115d0d5d47049f2a0412e8c75aa8ef
Diffstat (limited to 'tools/encrypt_secret.py')
-rwxr-xr-x[-rw-r--r--] | tools/encrypt_secret.py | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/tools/encrypt_secret.py b/tools/encrypt_secret.py index e36b24e08..72429e990 100644..100755 --- a/tools/encrypt_secret.py +++ b/tools/encrypt_secret.py @@ -13,11 +13,19 @@ # under the License. import argparse +import base64 import os import subprocess import sys import tempfile -import urllib + +# we to import Request and urlopen differently for python 2 and 3 +try: + from urllib.request import Request + from urllib.request import urlopen +except ImportError: + from urllib2 import Request + from urllib2 import urlopen DESCRIPTION = """Encrypt a secret for Zuul. @@ -50,9 +58,9 @@ def main(): "to standard output.") args = parser.parse_args() - req = urllib.request.Request("%s/keys/%s/%s.pub" % ( + req = Request("%s/keys/%s/%s.pub" % ( args.url, args.source, args.project)) - pubkey = urllib.request.urlopen(req) + pubkey = urlopen(req) if args.infile: with open(args.infile) as f: @@ -70,18 +78,18 @@ def main(): pubkey_file.name], stdin=subprocess.PIPE, stdout=subprocess.PIPE) - (stdout, stderr) = p.communicate(plaintext) + (stdout, stderr) = p.communicate(plaintext.encode("utf-8")) if p.returncode != 0: raise Exception("Return code %s from openssl" % p.returncode) - ciphertext = stdout.encode('base64') + ciphertext = base64.b64encode(stdout) finally: os.unlink(pubkey_file.name) if args.outfile: - with open(args.outfile, "w") as f: + with open(args.outfile, "wb") as f: f.write(ciphertext) else: - print(ciphertext) + print(ciphertext.decode("utf-8")) if __name__ == '__main__': |