aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRiku Voipio <riku.voipio@linaro.org>2021-08-31 13:55:08 +0300
committerRiku Voipio <riku.voipio@linaro.org>2021-08-31 13:55:08 +0300
commit7526306abb4a9f9c729eafba9626f740b24422b3 (patch)
tree3322301fd5ecfdca57d7de4e581eb6775a9ba459
parent7d1bb3bcab5a5cd6a00d888cdd228a67341ebdc0 (diff)
python3 fixups
Some actual testing reveals more python3 chagnes needed, mainly due to the utf-8 changes. Change-Id: I18836508049e315a7be574a844fcae7f1a1f9c86
-rwxr-xr-xcheck-git-repos.py2
-rwxr-xr-xgerrit/check_external_ids_oauth.py4
-rwxr-xr-xgitolite-tools/gitolite-groups19
-rwxr-xr-xgitolite-tools/gitolite-keys10
-rwxr-xr-xgrok-slave-keys2
-rwxr-xr-xlinaro_gerrit.py10
-rw-r--r--linaro_ldap.py6
7 files changed, 26 insertions, 27 deletions
diff --git a/check-git-repos.py b/check-git-repos.py
index 22babc5..d4e090c 100755
--- a/check-git-repos.py
+++ b/check-git-repos.py
@@ -21,7 +21,7 @@ def run_command(cmd, dir):
log.debug("executing %s in %s", cmd, dir)
try:
out = check_output(cmd, stderr=STDOUT,
- cwd=dir)
+ cwd=dir, encoding="utf-8")
except CalledProcessError as e:
return e.returncode, e.output
return 0, out
diff --git a/gerrit/check_external_ids_oauth.py b/gerrit/check_external_ids_oauth.py
index 3a7d47d..2a165eb 100755
--- a/gerrit/check_external_ids_oauth.py
+++ b/gerrit/check_external_ids_oauth.py
@@ -2,14 +2,14 @@
import os
import re
-from configparser import ConfigParser
+import configparser
accounts = {}
for dentry in os.walk('.'):
if not re.search('\.git', dentry[0]) and not re.match('^\.$', dentry[0]):
for f in dentry[2]:
- conf = ConfigParser()
+ conf = configparser.ConfigParser()
conf.read('{}/{}'.format(dentry[0],f))
ei = conf.sections()[0]
diff --git a/gitolite-tools/gitolite-groups b/gitolite-tools/gitolite-groups
index c50f86a..824f139 100755
--- a/gitolite-tools/gitolite-groups
+++ b/gitolite-tools/gitolite-groups
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (C) 2013, 2014 Linaro Ltd.
#
# This program is free software: you can redistribute it and/or modify
@@ -15,21 +15,20 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import base64
-import httplib
+import http.client
import json
import ldap
import os
import sys
import urllib
-
-from ConfigParser import ConfigParser
+import configparser
sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
import linaro_ldap
DEFAULT_CONFIG_FILE = "gitolite-tools.conf"
-CONFIG = ConfigParser()
+CONFIG = configparser.ConfigParser()
CONFIG.read(os.path.join(os.path.dirname(sys.argv[0]), DEFAULT_CONFIG_FILE))
@@ -59,15 +58,15 @@ def get_groups(user):
crowd_error = False
if user:
params = {"username": user}
- auth = base64.b64encode('{0}:{1}'.format(crowd_usr, crowd_pwd))
+ auth = base64.b64encode('{0}:{1}'.format(crowd_usr, crowd_pwd).encode("ascii"))
headers = {
- "Authorization": "Basic {0}".format(auth),
+ "Authorization": "Basic {0}".format(auth.decode("ascii")),
"Accept": "application/json"
}
url = "/user/group/nested?{0}".format(
- urllib.urlencode(params))
+ urllib.parse.urlencode(params))
- c = httplib.HTTPSConnection("login.linaro.org", 8443)
+ c = http.client.HTTPSConnection("login.linaro.org", 8443)
c.request("GET", "/crowd/rest/usermanagement/1{0}".format(url),
headers=headers)
@@ -82,7 +81,7 @@ def get_groups(user):
data = json.load(resp)
names = [x["name"] for x in data["groups"]]
user_teams = " ".join(names)
- except IOError, e:
+ except IOError as e:
sys.stderr.write("gitolite-groups: ERROR: No connection to "
"Crowd server.\n")
sys.stderr.write(e)
diff --git a/gitolite-tools/gitolite-keys b/gitolite-tools/gitolite-keys
index ad52ee8..2b43423 100755
--- a/gitolite-tools/gitolite-keys
+++ b/gitolite-tools/gitolite-keys
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (C) 2013, 2014 Linaro Ltd.
#
# This program is free software: you can redistribute it and/or modify
@@ -48,7 +48,7 @@ def run_cmd(cmd_args, shell=False, cwd=None):
log.error("Error executing the following command: "
"{0}".format(" ".join(cmd_args)))
log.error("Command stderr:\n{0}".format(err))
- except OSError, e:
+ except OSError as e:
log.error(str(e))
@@ -81,7 +81,7 @@ def gitolite_remove_key(key_name):
log.info("Removing public key {0}...".format(key_name))
try:
os.unlink(pubkey_file)
- except OSError, e:
+ except OSError as e:
log.error(str(e))
else:
log.info("Public key {0} does not exists.".format(key_name))
@@ -90,7 +90,7 @@ def gitolite_remove_key(key_name):
def gitolite_add_key(key_name, ssh_key):
"""Adds the provided key_name and their SSH key to the gitolite keydir."""
if not os.path.exists(KEYDIR):
- os.makedirs(KEYDIR, 0700)
+ os.makedirs(KEYDIR, mode=0o700)
pubkey_file = os.path.join(KEYDIR, key_name)
@@ -106,7 +106,7 @@ def gitolite_add_key(key_name, ssh_key):
except OSError:
log.error("Error writing file {0}.".format(pubkey_file))
else:
- os.chmod(pubkey_file, 0600)
+ os.chmod(pubkey_file, 0o600)
def gitolite_trigger_auth_keys():
diff --git a/grok-slave-keys b/grok-slave-keys
index 460a2ab..35fc143 100755
--- a/grok-slave-keys
+++ b/grok-slave-keys
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (C) 2013, 2014 Linaro Ltd.
#
# This program is free software: you can redistribute it and/or modify
diff --git a/linaro_gerrit.py b/linaro_gerrit.py
index 2d4ac34..ec0439c 100755
--- a/linaro_gerrit.py
+++ b/linaro_gerrit.py
@@ -39,7 +39,7 @@ class LinaroGerrit:
r = requests.get(url, params=payload, **self.reqargs)
log.info("Finding user: %s with url %s", username, r.url)
try:
- a = json.loads(self.strip_gerrit_junk(r.content))
+ a = json.loads(self.strip_gerrit_junk(r.text))
if a:
for data in a:
log.info("Found user: %s", data["_account_id"])
@@ -57,7 +57,7 @@ class LinaroGerrit:
keydict = {}
if r.status_code == 200:
try:
- a = json.loads(self.strip_gerrit_junk(r.content))
+ a = json.loads(self.strip_gerrit_junk(r.text))
for data in a:
keydict[data["seq"]] = data["ssh_public_key"].strip()
return keydict
@@ -103,7 +103,7 @@ class LinaroGerrit:
members = []
if r.status_code == 200:
try:
- a = json.loads(self.strip_gerrit_junk(r.content))
+ a = json.loads(self.strip_gerrit_junk(r.text))
for data in a:
try:
members.append(data["username"])
@@ -155,7 +155,7 @@ class LinaroGerrit:
groups = []
if r.status_code == 200:
try:
- a = json.loads(self.strip_gerrit_junk(r.content))
+ a = json.loads(self.strip_gerrit_junk(r.text))
for data in a:
groups.append(data["name"])
return groups
@@ -189,7 +189,7 @@ class LinaroGerrit:
params["t"] = ""
r = requests.get(url, params=params, **self.reqargs)
if r.status_code == 200:
- return json.loads(self.strip_gerrit_junk(r.content))
+ return json.loads(self.strip_gerrit_junk(r.text))
else:
log.error("Failed to list projects %s", r.status_code)
return {}
diff --git a/linaro_ldap.py b/linaro_ldap.py
index d32e724..d91ccc9 100644
--- a/linaro_ldap.py
+++ b/linaro_ldap.py
@@ -39,7 +39,7 @@ def build_config():
def validate_key(pubkey):
with tempfile.NamedTemporaryFile(delete=True) as f:
- f.write(pubkey)
+ f.write(pubkey.encode('utf-8'))
f.flush()
try:
args = ['ssh-keygen', '-l', '-f', f.name]
@@ -130,11 +130,11 @@ def get_groups_and_users(ignore_list=[]):
for row in result:
try:
uid = row[1]['uid'][0].decode('utf-8')
- groups = row[1]['memberOf'].decode('utf-8')
+ groups = row[1]['memberOf']
if (type(ignore_list) is list) and (uid in ignore_list):
continue
for group in groups:
- group = group.split(",")[0].split("=")[1]
+ group = group.decode('utf-8').split(",")[0].split("=")[1]
all_groups.setdefault(group, []).append((uid))
except KeyError:
# This user is not in any groups