)]}'
{"keystone/auth/plugins/mapped.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"be1020533680bfc1c3be18dad1018937ce17c46c","unresolved":false,"context_lines":[{"line_number":207,"context_line":"    # ``mapping_id`` was used as well as idenity_api and resource_api"},{"line_number":208,"context_line":"    # objects."},{"line_number":209,"context_line":"    group_ids \u003d mapped_properties[\u0027group_ids\u0027]"},{"line_number":210,"context_line":"    utils.validate_mapped_group_ids(group_ids, mapping_id, identity_api)"},{"line_number":211,"context_line":"    group_ids.extend("},{"line_number":212,"context_line":"        utils.transform_to_group_ids("},{"line_number":213,"context_line":"            mapped_properties[\u0027group_names\u0027], mapping_id,"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa7ab95a_85c40460","line":210,"updated":"2016-08-30 23:31:40.000000000","message":"++ This reads much better now.","commit_id":"9fd5ec17b5113d067cb58d8f0fec95300f67e9aa"}],"keystone/federation/utils.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"be1020533680bfc1c3be18dad1018937ce17c46c","unresolved":false,"context_lines":[{"line_number":384,"context_line":"            yield group_dict[\u0027id\u0027]"},{"line_number":385,"context_line":"        except exception.GroupNotFound:"},{"line_number":386,"context_line":"            raise exception.MappedGroupNotFound(group_id\u003dgroup[\u0027name\u0027],"},{"line_number":387,"context_line":"                                                mapping_id\u003dmapping_id)"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"def get_assertion_params_from_env(request):"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa7ab95a_45783c2c","line":387,"updated":"2016-08-30 23:31:40.000000000","message":"I don\u0027t really see how this is required for the rest of the patch - other than that one line in the test that currently expects an exception for this. I hope people don\u0027t expect the mapping engine to skip over issues like this, though.","commit_id":"9fd5ec17b5113d067cb58d8f0fec95300f67e9aa"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1a3e34394fd42f67f9235ca75309eb251092b2c0","unresolved":false,"context_lines":[{"line_number":384,"context_line":"            yield group_dict[\u0027id\u0027]"},{"line_number":385,"context_line":"        except exception.GroupNotFound:"},{"line_number":386,"context_line":"            raise exception.MappedGroupNotFound(group_id\u003dgroup[\u0027name\u0027],"},{"line_number":387,"context_line":"                                                mapping_id\u003dmapping_id)"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"def get_assertion_params_from_env(request):"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa7ab95a_59672025","line":387,"in_reply_to":"fa7ab95a_45783c2c","updated":"2016-08-31 14:18:54.000000000","message":"isn\u0027t the skip used by the \"blacklist\" and \"whitelist\" options? \n\nlike... given a list of groups coming from a backend, try to add the user to each of those groups, and if it doesn\u0027t exist, then skip it.","commit_id":"9fd5ec17b5113d067cb58d8f0fec95300f67e9aa"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"fe9428d3aa45956c87f845e133c7e17acd51b06a","unresolved":false,"context_lines":[{"line_number":384,"context_line":"            yield group_dict[\u0027id\u0027]"},{"line_number":385,"context_line":"        except exception.GroupNotFound:"},{"line_number":386,"context_line":"            raise exception.MappedGroupNotFound(group_id\u003dgroup[\u0027name\u0027],"},{"line_number":387,"context_line":"                                                mapping_id\u003dmapping_id)"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"def get_assertion_params_from_env(request):"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa7ab95a_efb49fd2","line":387,"in_reply_to":"fa7ab95a_59672025","updated":"2016-08-31 15:09:43.000000000","message":"If so, there\u0027s no test coverage whatsoever.","commit_id":"9fd5ec17b5113d067cb58d8f0fec95300f67e9aa"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"d2fb9ee0d1c75e5737bd307401b642a257985d39","unresolved":false,"context_lines":[{"line_number":384,"context_line":"            yield group_dict[\u0027id\u0027]"},{"line_number":385,"context_line":"        except exception.GroupNotFound:"},{"line_number":386,"context_line":"            raise exception.MappedGroupNotFound(group_id\u003dgroup[\u0027name\u0027],"},{"line_number":387,"context_line":"                                                mapping_id\u003dmapping_id)"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"def get_assertion_params_from_env(request):"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa7ab95a_16ad5731","line":387,"in_reply_to":"fa7ab95a_efb49fd2","updated":"2016-08-31 17:06:25.000000000","message":"there is a test, the test was changed in this patch: https://github.com/openstack/keystone/commit/f4708ec55b7ffe252a21414346c1930da19af8b5","commit_id":"9fd5ec17b5113d067cb58d8f0fec95300f67e9aa"}],"keystone/tests/unit/test_v3_federation.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"be1020533680bfc1c3be18dad1018937ce17c46c","unresolved":false,"context_lines":[{"line_number":692,"context_line":"                        }"},{"line_number":693,"context_line":"                    ]"},{"line_number":694,"context_line":"                },"},{"line_number":695,"context_line":"                # rules for users with no groups"},{"line_number":696,"context_line":"                {"},{"line_number":697,"context_line":"                    \"local\": ["},{"line_number":698,"context_line":"                        {"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa7ab95a_85a9647e","line":695,"updated":"2016-08-30 23:31:40.000000000","message":"I\u0027m not sure you need a new mapping for this case - you just need an assertion + mapping pair that won\u0027t result in any group memberships. I\u0027d suggest creating a new assertion like you did, and just ensure it doesn\u0027t match any group rule. If nothing else, this patch would be smaller and illustrate the change better.","commit_id":"9fd5ec17b5113d067cb58d8f0fec95300f67e9aa"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"be1020533680bfc1c3be18dad1018937ce17c46c","unresolved":false,"context_lines":[{"line_number":1693,"context_line":"        self.assertEqual(ref_groups, token_groups)"},{"line_number":1694,"context_line":""},{"line_number":1695,"context_line":"    def test_issue_unscoped_tokens_nonexisting_group(self):"},{"line_number":1696,"context_line":"        self.assertRaises(exception.MappedGroupNotFound,"},{"line_number":1697,"context_line":"                          self._issue_unscoped_token,"},{"line_number":1698,"context_line":"                          assertion\u003d\u0027ANOTHER_TESTER_ASSERTION\u0027)"},{"line_number":1699,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa7ab95a_8516c4ef","line":1696,"updated":"2016-08-30 23:31:40.000000000","message":"++","commit_id":"9fd5ec17b5113d067cb58d8f0fec95300f67e9aa"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"be1020533680bfc1c3be18dad1018937ce17c46c","unresolved":false,"context_lines":[{"line_number":1774,"context_line":"        self.assertIsNotNone(r.headers.get(\u0027X-Subject-Token\u0027))"},{"line_number":1775,"context_line":"        token_resp \u003d r.json_body"},{"line_number":1776,"context_line":"        token_groups \u003d token_resp[\u0027token\u0027][\u0027user\u0027][\u0027OS-FEDERATION\u0027][\u0027groups\u0027]"},{"line_number":1777,"context_line":"        self.assertEqual(0, len(token_groups))"},{"line_number":1778,"context_line":""},{"line_number":1779,"context_line":"    def test_issue_unscoped_token_malformed_environment(self):"},{"line_number":1780,"context_line":"        \"\"\"Test whether non string objects are filtered out."}],"source_content_type":"text/x-python","patch_set":7,"id":"fa7ab95a_c5d60c27","line":1777,"updated":"2016-08-30 23:31:40.000000000","message":"++","commit_id":"9fd5ec17b5113d067cb58d8f0fec95300f67e9aa"}]}
