)]}'
{"keystone/identity/core.py":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"965c9571842c749c6490aead9fd3175192a727d6","unresolved":false,"context_lines":[{"line_number":537,"context_line":"            # clear the project ID from the user reference. This is the case"},{"line_number":538,"context_line":"            # when the LDAP driver is used because LDAP is read-only and throws"},{"line_number":539,"context_line":"            # a HTTP 403 Forbidden when attempting to write to it."},{"line_number":540,"context_line":"            pass"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"    # Domain ID normalization methods"},{"line_number":543,"context_line":"    def _set_domain_id_and_mapping(self, ref, domain_id, driver,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f436f4f_984b5486","line":540,"updated":"2017-08-08 09:09:24.000000000","message":"I don\u0027t object to doing it this way but I wonder why not just change http://git.openstack.org/cgit/openstack/keystone/tree/keystone/identity/backends/ldap/core.py?id\u003d86b4b4a74717ed0e89f65cbca8683ea117bd9f19#n92 to stop raising the 401 in the first place? I don\u0027t think there\u0027s ever going to be a possibility that common_ldap.WRITABLE is true so I wonder why bother going the extra mile to check it.","commit_id":"40b964faa571a4df2a4ff5eb3ad2fb7367f940db"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a5dac42e253c9ebb3a541a8f7cca8552c8c3e211","unresolved":false,"context_lines":[{"line_number":537,"context_line":"            # clear the project ID from the user reference. This is the case"},{"line_number":538,"context_line":"            # when the LDAP driver is used because LDAP is read-only and throws"},{"line_number":539,"context_line":"            # a HTTP 403 Forbidden when attempting to write to it."},{"line_number":540,"context_line":"            pass"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"    # Domain ID normalization methods"},{"line_number":543,"context_line":"    def _set_domain_id_and_mapping(self, ref, domain_id, driver,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f436f4f_810d1c92","line":540,"in_reply_to":"9f436f4f_984b5486","updated":"2017-08-08 13:45:36.000000000","message":"That\u0027s a fair point. The only thing this by us, given the point you just made, is a consistent 204 in the event a out-of-tree driver raises a 403 in this case. So, I guess the question is, how important is that case to us?","commit_id":"40b964faa571a4df2a4ff5eb3ad2fb7367f940db"}],"keystone/tests/unit/test_backend_ldap.py":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"965c9571842c749c6490aead9fd3175192a727d6","unresolved":false,"context_lines":[{"line_number":1729,"context_line":"        # and attempts to clear any users who have `default_project_id`"},{"line_number":1730,"context_line":"        # attributes associated to that project. Since the LDAP backend is"},{"line_number":1731,"context_line":"        # read-only, clearing the `default_project_id` raises a 403 Forbidden."},{"line_number":1732,"context_line":"        # Let\u0027s test that the exception is raised, caught, and handled properly"},{"line_number":1733,"context_line":"        # by the identity API manager. A read-only LDAP shouldn\u0027t cause a 403"},{"line_number":1734,"context_line":"        # Forbidden when the project has already been removed."},{"line_number":1735,"context_line":"        common_ldap.WRITABLE \u003d False"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f436f4f_989474ea","line":1732,"range":{"start_line":1732,"start_character":8,"end_line":1732,"end_character":79},"updated":"2017-08-08 09:09:24.000000000","message":"Technically this is only testing that we don\u0027t see an exception, not that it was raised, caught, and handled.","commit_id":"40b964faa571a4df2a4ff5eb3ad2fb7367f940db"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a5dac42e253c9ebb3a541a8f7cca8552c8c3e211","unresolved":false,"context_lines":[{"line_number":1729,"context_line":"        # and attempts to clear any users who have `default_project_id`"},{"line_number":1730,"context_line":"        # attributes associated to that project. Since the LDAP backend is"},{"line_number":1731,"context_line":"        # read-only, clearing the `default_project_id` raises a 403 Forbidden."},{"line_number":1732,"context_line":"        # Let\u0027s test that the exception is raised, caught, and handled properly"},{"line_number":1733,"context_line":"        # by the identity API manager. A read-only LDAP shouldn\u0027t cause a 403"},{"line_number":1734,"context_line":"        # Forbidden when the project has already been removed."},{"line_number":1735,"context_line":"        common_ldap.WRITABLE \u003d False"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f436f4f_24cc3e88","line":1732,"in_reply_to":"9f436f4f_989474ea","updated":"2017-08-08 13:45:36.000000000","message":"Took a shot at mocking this - let me know if that covers your concerns.","commit_id":"40b964faa571a4df2a4ff5eb3ad2fb7367f940db"},{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"582d2c857246d1303287f9493b9e051ddcd75f33","unresolved":false,"context_lines":[{"line_number":1737,"context_line":"        )"},{"line_number":1738,"context_line":"        project \u003d self.resource_api.create_project(project[\u0027id\u0027], project)"},{"line_number":1739,"context_line":"        with mock.patch.object("},{"line_number":1740,"context_line":"            ldap_identity.Identity, \u0027_disallow_write\u0027"},{"line_number":1741,"context_line":"        ) as mocked:"},{"line_number":1742,"context_line":"            self.resource_api.delete_project(project[\u0027id\u0027])"},{"line_number":1743,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9f436f4f_aaa595b7","line":1740,"range":{"start_line":1740,"start_character":12,"end_line":1740,"end_character":53},"updated":"2017-08-08 14:48:48.000000000","message":"The mocked object wouldn\u0027t raise the exception.","commit_id":"69b43e1d547b67aaa377b8e1cd9607c668856124"}]}
