summaryrefslogtreecommitdiff
path: root/tools/encrypt_secret.py
diff options
context:
space:
mode:
authorTobias Henkel <tobias.henkel@bmw-carit.de>2017-06-24 21:26:57 +0200
committerTobias Henkel <tobias.henkel@bmw-carit.de>2017-06-26 22:10:12 +0200
commit39d6dcd180b1c9fb2db82dd537ae5402747c8ad3 (patch)
tree30524df1c40b86bf69084a26945e9640d4ab4716 /tools/encrypt_secret.py
parenta7cf5c518ada2fdc176eaa04ab85344beaa04daf (diff)
downloadzuul-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.py22
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__':