diff options
author | Paul Sokolovsky <paul.sokolovsky@linaro.org> | 2015-07-15 18:39:03 +0300 |
---|---|---|
committer | Paul Sokolovsky <paul.sokolovsky@linaro.org> | 2015-07-15 21:26:19 +0300 |
commit | 1d59da7d85e96e7ed93cc6eaa7bc573c5189ce2f (patch) | |
tree | baa489c6dec131c42ab4261ba02160cfee5c917a /gitolite-tools | |
parent | 81b3ea2122d8be2417df61b6de8d3644a78ade5f (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-x | gitolite-tools/gitolite-groups | 19 |
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 |