aboutsummaryrefslogtreecommitdiff
path: root/gitolite-tools
diff options
context:
space:
mode:
authorPaul Sokolovsky <paul.sokolovsky@linaro.org>2015-07-15 18:39:03 +0300
committerPaul Sokolovsky <paul.sokolovsky@linaro.org>2015-07-15 21:26:19 +0300
commit1d59da7d85e96e7ed93cc6eaa7bc573c5189ce2f (patch)
treebaa489c6dec131c42ab4261ba02160cfee5c917a /gitolite-tools
parent81b3ea2122d8be2417df61b6de8d3644a78ade5f (diff)
gitolite-groups: Further elaborate Crowd access error reporting.
Crowd access error should not be fatal, as even if Crowd is down, it makes no sense to deny users e.g. globally configured read access. However, make error message even more visible, and add warning letting know that Crowd access controls are inactive. Change-Id: Ie5beff6055a03d96bf8a751079b54ff985db6aaf
Diffstat (limited to 'gitolite-tools')
-rwxr-xr-xgitolite-tools/gitolite-groups19
1 files changed, 15 insertions, 4 deletions
diff --git a/gitolite-tools/gitolite-groups b/gitolite-tools/gitolite-groups
index 5c519ed..c11535b 100755
--- a/gitolite-tools/gitolite-groups
+++ b/gitolite-tools/gitolite-groups
@@ -48,6 +48,7 @@ def get_groups(user):
attrlist=['mail', 'cn'])
user_teams = ""
+ crowd_error = False
if result:
try:
user = result[0][1]['cn'][0]
@@ -69,18 +70,28 @@ def get_groups(user):
resp = c.getresponse()
if resp.status != 200:
- sys.stderr.write("gitolite-groups: Non-successful response from Crowd: %s\n" % resp.status)
+ sys.stderr.write("gitolite-groups: ERROR: Non-successful "
+ "response from Crowd: %s\n" % resp.status)
+ crowd_error = True
else:
data = json.load(resp)
names = [x["name"] for x in data["groups"]]
user_teams = " ".join(names)
except IOError, e:
- sys.stderr.write("gitolite-groups: Error connecting to Crowd server.\n")
+ sys.stderr.write("gitolite-groups: ERROR: No connection to "
+ "Crowd server.\n")
sys.stderr.write(e)
+ crowd_error = True
except KeyError:
- sys.stderr.write("gitolite-groups: User {0} does not have an "
- "email address.".format(user))
+ sys.stderr.write("gitolite-groups: ERROR: User {0} does not have "
+ "an email address.".format(user))
+ crowd_error = True
+
+ if crowd_error:
+ sys.stderr.write("gitolite-groups: Warning: Group memberships "
+ "unavailble, access to some repositories may "
+ "be blocked.")
return user_teams