)]}'
{"troveclient/utils.py":[{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"5a736505198e8d45421669ca7ff761728c8c9ebe","unresolved":false,"context_lines":[{"line_number":251,"context_line":"    try:"},{"line_number":252,"context_line":"        is_admin \u003d \u0027admin\u0027 in cs.client.auth.auth_ref.role_names"},{"line_number":253,"context_line":"    except Exception:"},{"line_number":254,"context_line":"        pass"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"    return is_admin"},{"line_number":257,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_530889d9","line":254,"range":{"start_line":254,"start_character":8,"end_line":254,"end_character":12},"updated":"2016-12-21 00:11:50.000000000","message":"I don\u0027t think this is appropriate as if there is an exception for an admin they will never know why they are being denied.","commit_id":"7a6a465c7ca7e2914c09d968824dfc9f80447235"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"6be6d0953f38388742e873ff978fc9f5931ee2b3","unresolved":false,"context_lines":[{"line_number":251,"context_line":"    try:"},{"line_number":252,"context_line":"        is_admin \u003d \u0027admin\u0027 in cs.client.auth.auth_ref.role_names"},{"line_number":253,"context_line":"    except Exception:"},{"line_number":254,"context_line":"        pass"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"    return is_admin"},{"line_number":257,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_a9a16996","line":254,"range":{"start_line":254,"start_character":8,"end_line":254,"end_character":12},"in_reply_to":"1a6eadb0_530889d9","updated":"2016-12-21 04:26:41.000000000","message":"No-one is being denied anything.  This is just used to display more info for an admin (typically hiding redundant info for non-admin).  This is just for the CLI, not the python interface, and is a convenience method.  Plus the only \u0027reason\u0027 they\u0027d be \u0027denied\u0027 is if the code changes and is no longer valid.  Instead of just getting an exception, they would at least get the non-admin version.  But if you think the code is fine as it, I\u0027ll abandon the changereq.  Spoiler alert, here\u0027s the result of running the command now for both admin and non-admin:\n\n  \u003e trove module-list\n  ERROR: \u0027access\u0027","commit_id":"7a6a465c7ca7e2914c09d968824dfc9f80447235"}],"troveclient/v1/shell.py":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"3731f1e5e3ef021a446ae6344de40b757806f750","unresolved":false,"context_lines":[{"line_number":1684,"context_line":"    is_admin \u003d False"},{"line_number":1685,"context_line":"    try:"},{"line_number":1686,"context_line":"        try:"},{"line_number":1687,"context_line":"            if \u0027roles\u0027 in cs.client.auth.auth_ref[\u0027user\u0027]:"},{"line_number":1688,"context_line":"                # Keystone V2"},{"line_number":1689,"context_line":"                roles \u003d cs.client.auth.auth_ref[\u0027user\u0027][\u0027roles\u0027]"},{"line_number":1690,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a89bdaa_f3f00fcc","line":1687,"updated":"2016-09-09 13:56:48.000000000","message":"out of curiosity, why v2 first, then v3? I\u0027d have thought you\u0027d do v3, v2, fallback.","commit_id":"bbe517639760674c264dd9106ee1c7d28bce7f13"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"7e62ff0475b821c2f3501dca1032039c62b2cdfd","unresolved":false,"context_lines":[{"line_number":1684,"context_line":"    is_admin \u003d False"},{"line_number":1685,"context_line":"    try:"},{"line_number":1686,"context_line":"        try:"},{"line_number":1687,"context_line":"            if \u0027roles\u0027 in cs.client.auth.auth_ref[\u0027user\u0027]:"},{"line_number":1688,"context_line":"                # Keystone V2"},{"line_number":1689,"context_line":"                roles \u003d cs.client.auth.auth_ref[\u0027user\u0027][\u0027roles\u0027]"},{"line_number":1690,"context_line":"            else:"},{"line_number":1691,"context_line":"                # Keystone V3"},{"line_number":1692,"context_line":"                roles \u003d cs.client.auth.auth_ref[\u0027roles\u0027]"},{"line_number":1693,"context_line":"        except TypeError:"},{"line_number":1694,"context_line":"            # Try one more place"},{"line_number":1695,"context_line":"            roles \u003d cs.client.auth.auth_ref._data[\u0027access\u0027][\u0027user\u0027][\u0027roles\u0027]"},{"line_number":1696,"context_line":"        role_names \u003d [role[\u0027name\u0027] for role in roles]"},{"line_number":1697,"context_line":"        is_admin \u003d \u0027admin\u0027 in role_names"},{"line_number":1698,"context_line":"    except TypeError:"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a8bc5a2_bb7d67b3","line":1695,"range":{"start_line":1687,"start_character":12,"end_line":1695,"end_character":76},"updated":"2016-09-23 04:20:43.000000000","message":"the immediate issue\n-----\nroles are available as properties of auth_ref, call role_ids or role_names: https://github.com/openstack/keystoneauth/blob/master/keystoneauth1/access/access.py#L169-L183\n\nkeystoneauth will handle the v2 or v3 shenanigans for you\n\n\n\n\nthe larger/scarier issue\n----\nahhhhh why are you hard-coding a check for \"admin\" in the client!!! does this call not go to a public API that can use oslo policy?","commit_id":"5021d037e5c6d2c4e86eaa9ab16fc763a9127c19"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"4ae9a933f45ab518fa77fc5f8d3956d3c368a53c","unresolved":false,"context_lines":[{"line_number":1684,"context_line":"    is_admin \u003d False"},{"line_number":1685,"context_line":"    try:"},{"line_number":1686,"context_line":"        try:"},{"line_number":1687,"context_line":"            if \u0027roles\u0027 in cs.client.auth.auth_ref[\u0027user\u0027]:"},{"line_number":1688,"context_line":"                # Keystone V2"},{"line_number":1689,"context_line":"                roles \u003d cs.client.auth.auth_ref[\u0027user\u0027][\u0027roles\u0027]"},{"line_number":1690,"context_line":"            else:"},{"line_number":1691,"context_line":"                # Keystone V3"},{"line_number":1692,"context_line":"                roles \u003d cs.client.auth.auth_ref[\u0027roles\u0027]"},{"line_number":1693,"context_line":"        except TypeError:"},{"line_number":1694,"context_line":"            # Try one more place"},{"line_number":1695,"context_line":"            roles \u003d cs.client.auth.auth_ref._data[\u0027access\u0027][\u0027user\u0027][\u0027roles\u0027]"},{"line_number":1696,"context_line":"        role_names \u003d [role[\u0027name\u0027] for role in roles]"},{"line_number":1697,"context_line":"        is_admin \u003d \u0027admin\u0027 in role_names"},{"line_number":1698,"context_line":"    except TypeError:"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a8bc5a2_d63f41d4","line":1695,"range":{"start_line":1687,"start_character":12,"end_line":1695,"end_character":76},"in_reply_to":"5a8bc5a2_bb7d67b3","updated":"2016-09-23 18:14:13.000000000","message":"I\u0027ll try and rework it with the properties you mention.\n\nAs for why, it\u0027s just a convenience.  If you\u0027re not admin, you probably don\u0027t need to see a column of \u0027visible\u0027 set to \u00271\u0027 and a column of \u0027tenant_id\u0027 set to the tenant you\u0027re in.  But an admin user might want to see that (since the values can be different for an admin).  (The data being returned is, of course, controlled by the server.)","commit_id":"5021d037e5c6d2c4e86eaa9ab16fc763a9127c19"}]}
