)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"b6b2fdaac242d549803c2338f8c2795f934314de","unresolved":false,"context_lines":[{"line_number":9,"context_line":"It\u0027s not clear why user, group generate entity id in manager"},{"line_number":10,"context_line":"layer while others in controller layer."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Move the logic into controller, and also did the small change"},{"line_number":13,"context_line":"for trust so that we hold one style in one project."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: If418d5f713d081334145ac139414f235568e2cb7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7a8ec9b2_93399ddb","line":12,"updated":"2016-09-19 18:14:07.000000000","message":"Is there any reason you chose the controller layer? To me it makes more sense to have it in the manager because the controller should really be all about web interactions. The logic will need to happen in any place that uses the manager (controller, cli, ??) so it makes sense for the manager to own it.","commit_id":"eb5c2cc97ee51250733decbd2e12ffa56bdb60e2"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"f12173cb084e81a50ebdbb53bfc428f26f32f529","unresolved":false,"context_lines":[{"line_number":9,"context_line":"It\u0027s not clear why user, group generate entity id in manager"},{"line_number":10,"context_line":"layer while others in controller layer."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Move the logic into controller, and also did the small change"},{"line_number":13,"context_line":"for trust so that we hold one style in one project."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: If418d5f713d081334145ac139414f235568e2cb7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7a8ec9b2_dc0b292a","line":12,"in_reply_to":"7a8ec9b2_93399ddb","updated":"2016-09-20 02:35:50.000000000","message":"The reason for me to make the refactor is that we are not generating ID in the same place, and many testcases did some *workaround* for the inconsistency. I think the debt will with us in the future.\n\nOnly user and group did it in the manager while all other entities in the controller layer.\n\nI cannot see why we handle it in a *different* way, maybe the legacy from the ancient version or maybe used to related with ldap... But now, I think this can be managed it consistently.","commit_id":"eb5c2cc97ee51250733decbd2e12ffa56bdb60e2"}],"keystone/identity/controllers.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"b6b2fdaac242d549803c2338f8c2795f934314de","unresolved":false,"context_lines":[{"line_number":211,"context_line":"    def create_user(self, request, user):"},{"line_number":212,"context_line":"        validation.lazy_validate(schema.user_create, user)"},{"line_number":213,"context_line":"        # The manager layer will generate the unique ID for users"},{"line_number":214,"context_line":"        ref \u003d self._normalize_dict(user)"},{"line_number":215,"context_line":"        ref \u003d self._normalize_domain_id(request, ref)"},{"line_number":216,"context_line":"        initiator \u003d notifications._get_request_audit_info(request.context_dict)"},{"line_number":217,"context_line":"        ref \u003d self.identity_api.create_user(ref, initiator)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a8ec9b2_b33699e5","side":"PARENT","line":214,"updated":"2016-09-19 18:14:07.000000000","message":"We don\u0027t need the excaping behavior of _normalize_dict anymore?","commit_id":"32af31f509b7e96078a34616e6c3befadccc5248"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"f12173cb084e81a50ebdbb53bfc428f26f32f529","unresolved":false,"context_lines":[{"line_number":211,"context_line":"    def create_user(self, request, user):"},{"line_number":212,"context_line":"        validation.lazy_validate(schema.user_create, user)"},{"line_number":213,"context_line":"        # The manager layer will generate the unique ID for users"},{"line_number":214,"context_line":"        ref \u003d self._normalize_dict(user)"},{"line_number":215,"context_line":"        ref \u003d self._normalize_domain_id(request, ref)"},{"line_number":216,"context_line":"        initiator \u003d notifications._get_request_audit_info(request.context_dict)"},{"line_number":217,"context_line":"        ref \u003d self.identity_api.create_user(ref, initiator)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a8ec9b2_7cc055e1","side":"PARENT","line":214,"in_reply_to":"7a8ec9b2_b33699e5","updated":"2016-09-20 02:35:50.000000000","message":"_normalize_dict is still here, I don\u0027t what\u0027s should be escaped here.","commit_id":"32af31f509b7e96078a34616e6c3befadccc5248"}],"keystone/identity/core.py":[{"author":{"_account_id":22604,"name":"Samuel Pilla","email":"sp516w@att.com","username":"samuel.pilla"},"change_message_id":"dd89e93ced98b377fbadfd6932c1e097f9bccf8a","unresolved":false,"context_lines":[{"line_number":870,"context_line":"        domain_id \u003d user_ref[\u0027domain_id\u0027]"},{"line_number":871,"context_line":"        driver \u003d self._select_identity_driver(domain_id)"},{"line_number":872,"context_line":"        user \u003d self._clear_domain_id_if_domain_unaware(driver, user)"},{"line_number":873,"context_line":"        ref \u003d driver.create_user(user[\u0027id\u0027], user)"},{"line_number":874,"context_line":"        notifications.Audit.created(self._USER, user[\u0027id\u0027], initiator)"},{"line_number":875,"context_line":"        return self._set_domain_id_and_mapping("},{"line_number":876,"context_line":"            ref, domain_id, driver, mapping.EntityType.USER)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a89bdaa_bb84350b","line":873,"range":{"start_line":873,"start_character":8,"end_line":873,"end_character":50},"updated":"2016-09-12 21:26:59.000000000","message":"user[\u0027id\u0027] does not exist here since you took out the local generator.\nI think you could use \"user \u003d _assign_user_id(self._normalize_dict(user))\" to generate the entity id on the line above.","commit_id":"55f83a09b293ba2b7d3758df91292655a238269f"}],"keystone/tests/unit/identity/test_backend_sql.py":[{"author":{"_account_id":22604,"name":"Samuel Pilla","email":"sp516w@att.com","username":"samuel.pilla"},"change_message_id":"c14b56850a219c670cd36bdb3954e8a1ca0e462d","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        self.assertTrue(user_ref.enabled)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    def _get_user_dict(self, password):"},{"line_number":129,"context_line":"        user \u003d {"},{"line_number":130,"context_line":"            \u0027id\u0027: uuid.uuid4().hex,"},{"line_number":131,"context_line":"            \u0027name\u0027: uuid.uuid4().hex,"},{"line_number":132,"context_line":"            \u0027domain_id\u0027: CONF.identity.default_domain_id,"},{"line_number":133,"context_line":"            \u0027enabled\u0027: True,"},{"line_number":134,"context_line":"            \u0027password\u0027: password"},{"line_number":135,"context_line":"        }"},{"line_number":136,"context_line":"        return user"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def _get_user_ref(self, user_id):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a8ec9b2_0ff2ca06","line":135,"range":{"start_line":129,"start_character":8,"end_line":135,"end_character":9},"updated":"2016-09-19 15:29:07.000000000","message":"While refactoring, would it be valuable to make this a function call for the times the dict is made?","commit_id":"eb5c2cc97ee51250733decbd2e12ffa56bdb60e2"}]}
