)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"5991fa87ede4201ce69fb90efa1fe63890b25f44","unresolved":false,"context_lines":[{"line_number":11,"context_line":"1) If the backend for identity is LDAP, keystone depends on"},{"line_number":12,"context_line":"`admin token` to create role assignment, but keystone has a"},{"line_number":13,"context_line":"plan to remove the support of admin token since it\u0027s exposing"},{"line_number":14,"context_line":"a security risk."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"2) Keystone will remove the support of write operation for"},{"line_number":17,"context_line":"LDAP backend, the original code won\u0027t work well since it will"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7a77a97e_db1ef25d","line":14,"updated":"2016-11-20 20:23:04.000000000","message":"An alternative to using the admin token for role bootstrapping is using domain-specific backends and keeping the admin user in sql","commit_id":"6d309141343e1b7690639b6f43c205b47727fff8"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"d40dc31bac7abaf5fe8ebae58698165d7c84a16a","unresolved":false,"context_lines":[{"line_number":11,"context_line":"1) If the backend for identity is LDAP, keystone depends on"},{"line_number":12,"context_line":"`admin token` to create role assignment, but keystone has a"},{"line_number":13,"context_line":"plan to remove the support of admin token since it\u0027s exposing"},{"line_number":14,"context_line":"a security risk."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"2) Keystone will remove the support of write operation for"},{"line_number":17,"context_line":"LDAP backend, the original code won\u0027t work well since it will"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7a77a97e_ac2bba80","line":14,"in_reply_to":"7a77a97e_db1ef25d","updated":"2016-11-21 02:10:06.000000000","message":"Good to know, thanks!","commit_id":"6d309141343e1b7690639b6f43c205b47727fff8"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"5991fa87ede4201ce69fb90efa1fe63890b25f44","unresolved":false,"context_lines":[{"line_number":21,"context_line":"server since it is generated by `user_enabled_attribute`,"},{"line_number":22,"context_line":"`user_enabled_invert` etc. when it\u0027s integrated with keystone."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Also, this patch take the chance to fix some nits from the comments."},{"line_number":25,"context_line":"Closes-Bug: #1643301"},{"line_number":26,"context_line":"Change-Id: I88fbfd3cf7ddb49de549d33dd61d1eb1655e4a4a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7a77a97e_1b3dcac3","line":24,"updated":"2016-11-20 20:23:04.000000000","message":"I think these probably belong in a separate patch?","commit_id":"6d309141343e1b7690639b6f43c205b47727fff8"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"d40dc31bac7abaf5fe8ebae58698165d7c84a16a","unresolved":false,"context_lines":[{"line_number":21,"context_line":"server since it is generated by `user_enabled_attribute`,"},{"line_number":22,"context_line":"`user_enabled_invert` etc. when it\u0027s integrated with keystone."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Also, this patch take the chance to fix some nits from the comments."},{"line_number":25,"context_line":"Closes-Bug: #1643301"},{"line_number":26,"context_line":"Change-Id: I88fbfd3cf7ddb49de549d33dd61d1eb1655e4a4a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7a77a97e_cc1e365e","line":24,"in_reply_to":"7a77a97e_1b3dcac3","updated":"2016-11-21 02:10:06.000000000","message":"Done","commit_id":"6d309141343e1b7690639b6f43c205b47727fff8"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"33c9d45c34522413106fd89ab66661b601f084fe","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch is wrote for the below reasons:"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"1) If the backend for identity is LDAP, keystone depends on"},{"line_number":12,"context_line":"`admin token` to create role assignment, but keystone has a"},{"line_number":13,"context_line":"plan to remove the support of admin token since it\u0027s exposing"},{"line_number":14,"context_line":"a security risk."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7a77a97e_0d62d7ad","line":11,"updated":"2016-11-21 14:05:22.000000000","message":"This is misleading because the password is being required for the user. It just happens that LDAP doesn\u0027t need this.","commit_id":"f52655b5d205c5948f4ff570cc4083de37ef5acd"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"1adc2e6178106ffe9ee1e1749284a9b29873e9db","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch is wrote for the below reasons:"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"1) If the backend for identity is LDAP, keystone depends on"},{"line_number":12,"context_line":"`admin token` to create role assignment, but keystone has a"},{"line_number":13,"context_line":"plan to remove the support of admin token since it\u0027s exposing"},{"line_number":14,"context_line":"a security risk."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"5a74a57a_d14a0cac","line":11,"in_reply_to":"7a77a97e_0d62d7ad","updated":"2016-11-24 05:44:19.000000000","message":"I assume this comment is for the releasenote instead. Done.","commit_id":"f52655b5d205c5948f4ff570cc4083de37ef5acd"}],"keystone/cmd/cli.py":[{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"f974c1faa4f857095a7cf8fea524d3a9104da1f8","unresolved":false,"context_lines":[{"line_number":253,"context_line":"                )"},{"line_number":254,"context_line":"                LOG.info(_LI(\u0027Created user %s\u0027), self.username)"},{"line_number":255,"context_line":"            else:"},{"line_number":256,"context_line":"                msg \u003d _LE(\"Keystone doesn\u0027t support create a LDAP user, \""},{"line_number":257,"context_line":"                          \"please make sure the user exists.\")"},{"line_number":258,"context_line":"                LOG.error(msg)"},{"line_number":259,"context_line":"                raise exception.UserNotFound(user_id\u003dself.username)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a629dbe_e350a734","line":256,"updated":"2016-11-10 18:29:30.000000000","message":"nit: /create/creating","commit_id":"173cc5906e6ef2169038a54e7636326bfc1d06b0"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"33c9d45c34522413106fd89ab66661b601f084fe","unresolved":false,"context_lines":[{"line_number":171,"context_line":"        deployment."},{"line_number":172,"context_line":"        \"\"\""},{"line_number":173,"context_line":"        self._get_config()"},{"line_number":174,"context_line":"        backend \u003d CONF.identity.driver"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        # NOTE(morganfainberg): Ensure the default domain is in-fact created"},{"line_number":177,"context_line":"        default_domain \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a77a97e_ed803b4c","line":174,"updated":"2016-11-21 14:05:22.000000000","message":"A bad side effect of this is that it\u0027s no longer possible to bootstrap other backends.","commit_id":"f52655b5d205c5948f4ff570cc4083de37ef5acd"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"1adc2e6178106ffe9ee1e1749284a9b29873e9db","unresolved":false,"context_lines":[{"line_number":171,"context_line":"        deployment."},{"line_number":172,"context_line":"        \"\"\""},{"line_number":173,"context_line":"        self._get_config()"},{"line_number":174,"context_line":"        backend \u003d CONF.identity.driver"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        # NOTE(morganfainberg): Ensure the default domain is in-fact created"},{"line_number":177,"context_line":"        default_domain \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_71977890","line":174,"in_reply_to":"7a77a97e_219f97b5","updated":"2016-11-24 05:44:19.000000000","message":"Good idea, let\u0027s document this for other customized driver after the removal of admin token, and I think the code could be updated to make it more flexible.","commit_id":"f52655b5d205c5948f4ff570cc4083de37ef5acd"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"42cf5ddea4707cc6bbab783e2b07b5e6c12c3f13","unresolved":false,"context_lines":[{"line_number":171,"context_line":"        deployment."},{"line_number":172,"context_line":"        \"\"\""},{"line_number":173,"context_line":"        self._get_config()"},{"line_number":174,"context_line":"        backend \u003d CONF.identity.driver"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        # NOTE(morganfainberg): Ensure the default domain is in-fact created"},{"line_number":177,"context_line":"        default_domain \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a77a97e_219f97b5","line":174,"in_reply_to":"7a77a97e_3ecedbb4","updated":"2016-11-21 16:24:43.000000000","message":"What this means is that once we remove the admin token we are effectively removing bootstrap support for any identity backend that isn\u0027t sql or ldap. If as a group we decide that\u0027s fine, then that should be documented.","commit_id":"f52655b5d205c5948f4ff570cc4083de37ef5acd"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"aea594f073aa190e4f5f1141b21cf59f3cb947ee","unresolved":false,"context_lines":[{"line_number":171,"context_line":"        deployment."},{"line_number":172,"context_line":"        \"\"\""},{"line_number":173,"context_line":"        self._get_config()"},{"line_number":174,"context_line":"        backend \u003d CONF.identity.driver"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        # NOTE(morganfainberg): Ensure the default domain is in-fact created"},{"line_number":177,"context_line":"        default_domain \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a77a97e_3ecedbb4","line":174,"in_reply_to":"7a77a97e_ed803b4c","updated":"2016-11-21 16:19:37.000000000","message":"i think it\u0027s fine. Bootstraping is done for a single super-user who should be able to set up other domains.","commit_id":"f52655b5d205c5948f4ff570cc4083de37ef5acd"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"38dd05c37e13b5c5669067513e36d8e9e4b28387","unresolved":false,"context_lines":[{"line_number":222,"context_line":"            # To keep bootstrap idempotent, try to reset the user\u0027s password"},{"line_number":223,"context_line":"            # and ensure that they are enabled. This allows bootstrap to act as"},{"line_number":224,"context_line":"            # a recovery tool, without having to create a new user."},{"line_number":225,"context_line":"            # for the user that is maintained in LDAP server, please make sure"},{"line_number":226,"context_line":"            # the user is enabled and the password is correct since keystone"},{"line_number":227,"context_line":"            # doesn\u0027t support update the user\u0027s properties that is from LDAP"},{"line_number":228,"context_line":"            # server, this also means the password is not a mandatory argument"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_6cd23b02","line":225,"range":{"start_line":225,"start_character":14,"end_line":225,"end_character":17},"updated":"2016-11-24 06:31:29.000000000","message":"For","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"38dd05c37e13b5c5669067513e36d8e9e4b28387","unresolved":false,"context_lines":[{"line_number":222,"context_line":"            # To keep bootstrap idempotent, try to reset the user\u0027s password"},{"line_number":223,"context_line":"            # and ensure that they are enabled. This allows bootstrap to act as"},{"line_number":224,"context_line":"            # a recovery tool, without having to create a new user."},{"line_number":225,"context_line":"            # for the user that is maintained in LDAP server, please make sure"},{"line_number":226,"context_line":"            # the user is enabled and the password is correct since keystone"},{"line_number":227,"context_line":"            # doesn\u0027t support update the user\u0027s properties that is from LDAP"},{"line_number":228,"context_line":"            # server, this also means the password is not a mandatory argument"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_acdc5313","line":225,"range":{"start_line":225,"start_character":46,"end_line":225,"end_character":48},"updated":"2016-11-24 06:31:29.000000000","message":"on the","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"38dd05c37e13b5c5669067513e36d8e9e4b28387","unresolved":false,"context_lines":[{"line_number":224,"context_line":"            # a recovery tool, without having to create a new user."},{"line_number":225,"context_line":"            # for the user that is maintained in LDAP server, please make sure"},{"line_number":226,"context_line":"            # the user is enabled and the password is correct since keystone"},{"line_number":227,"context_line":"            # doesn\u0027t support update the user\u0027s properties that is from LDAP"},{"line_number":228,"context_line":"            # server, this also means the password is not a mandatory argument"},{"line_number":229,"context_line":"            # if LDAP backend is in use."},{"line_number":230,"context_line":"            if backend !\u003d \u0027ldap\u0027:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_2cff6368","line":227,"range":{"start_line":227,"start_character":59,"end_line":227,"end_character":66},"updated":"2016-11-24 06:31:29.000000000","message":"remove these words","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"38dd05c37e13b5c5669067513e36d8e9e4b28387","unresolved":false,"context_lines":[{"line_number":224,"context_line":"            # a recovery tool, without having to create a new user."},{"line_number":225,"context_line":"            # for the user that is maintained in LDAP server, please make sure"},{"line_number":226,"context_line":"            # the user is enabled and the password is correct since keystone"},{"line_number":227,"context_line":"            # doesn\u0027t support update the user\u0027s properties that is from LDAP"},{"line_number":228,"context_line":"            # server, this also means the password is not a mandatory argument"},{"line_number":229,"context_line":"            # if LDAP backend is in use."},{"line_number":230,"context_line":"            if backend !\u003d \u0027ldap\u0027:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_ec048b7f","line":227,"range":{"start_line":227,"start_character":30,"end_line":227,"end_character":36},"updated":"2016-11-24 06:31:29.000000000","message":"updating","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"abf791c3f76d9d58d9ce79533a106d562db14046","unresolved":false,"context_lines":[{"line_number":224,"context_line":"            # a recovery tool, without having to create a new user."},{"line_number":225,"context_line":"            # for the user that is maintained in LDAP server, please make sure"},{"line_number":226,"context_line":"            # the user is enabled and the password is correct since keystone"},{"line_number":227,"context_line":"            # doesn\u0027t support update the user\u0027s properties that is from LDAP"},{"line_number":228,"context_line":"            # server, this also means the password is not a mandatory argument"},{"line_number":229,"context_line":"            # if LDAP backend is in use."},{"line_number":230,"context_line":"            if backend !\u003d \u0027ldap\u0027:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_375b3089","line":227,"range":{"start_line":227,"start_character":59,"end_line":227,"end_character":66},"in_reply_to":"5a74a57a_2cff6368","updated":"2016-11-24 07:25:48.000000000","message":"Done","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"abf791c3f76d9d58d9ce79533a106d562db14046","unresolved":false,"context_lines":[{"line_number":224,"context_line":"            # a recovery tool, without having to create a new user."},{"line_number":225,"context_line":"            # for the user that is maintained in LDAP server, please make sure"},{"line_number":226,"context_line":"            # the user is enabled and the password is correct since keystone"},{"line_number":227,"context_line":"            # doesn\u0027t support update the user\u0027s properties that is from LDAP"},{"line_number":228,"context_line":"            # server, this also means the password is not a mandatory argument"},{"line_number":229,"context_line":"            # if LDAP backend is in use."},{"line_number":230,"context_line":"            if backend !\u003d \u0027ldap\u0027:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_575eec76","line":227,"range":{"start_line":227,"start_character":30,"end_line":227,"end_character":36},"in_reply_to":"5a74a57a_ec048b7f","updated":"2016-11-24 07:25:48.000000000","message":"Done","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"38dd05c37e13b5c5669067513e36d8e9e4b28387","unresolved":false,"context_lines":[{"line_number":225,"context_line":"            # for the user that is maintained in LDAP server, please make sure"},{"line_number":226,"context_line":"            # the user is enabled and the password is correct since keystone"},{"line_number":227,"context_line":"            # doesn\u0027t support update the user\u0027s properties that is from LDAP"},{"line_number":228,"context_line":"            # server, this also means the password is not a mandatory argument"},{"line_number":229,"context_line":"            # if LDAP backend is in use."},{"line_number":230,"context_line":"            if backend !\u003d \u0027ldap\u0027:"},{"line_number":231,"context_line":"                if self.password is None:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_6cf95b80","line":228,"range":{"start_line":228,"start_character":20,"end_line":228,"end_character":26},"updated":"2016-11-24 06:31:29.000000000","message":". This","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"abf791c3f76d9d58d9ce79533a106d562db14046","unresolved":false,"context_lines":[{"line_number":225,"context_line":"            # for the user that is maintained in LDAP server, please make sure"},{"line_number":226,"context_line":"            # the user is enabled and the password is correct since keystone"},{"line_number":227,"context_line":"            # doesn\u0027t support update the user\u0027s properties that is from LDAP"},{"line_number":228,"context_line":"            # server, this also means the password is not a mandatory argument"},{"line_number":229,"context_line":"            # if LDAP backend is in use."},{"line_number":230,"context_line":"            if backend !\u003d \u0027ldap\u0027:"},{"line_number":231,"context_line":"                if self.password is None:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_97508460","line":228,"range":{"start_line":228,"start_character":20,"end_line":228,"end_character":26},"in_reply_to":"5a74a57a_6cf95b80","updated":"2016-11-24 07:25:48.000000000","message":"Done","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"38dd05c37e13b5c5669067513e36d8e9e4b28387","unresolved":false,"context_lines":[{"line_number":226,"context_line":"            # the user is enabled and the password is correct since keystone"},{"line_number":227,"context_line":"            # doesn\u0027t support update the user\u0027s properties that is from LDAP"},{"line_number":228,"context_line":"            # server, this also means the password is not a mandatory argument"},{"line_number":229,"context_line":"            # if LDAP backend is in use."},{"line_number":230,"context_line":"            if backend !\u003d \u0027ldap\u0027:"},{"line_number":231,"context_line":"                if self.password is None:"},{"line_number":232,"context_line":"                    print(_(\u0027Either --bootstrap-password argument or \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_cceeefb3","line":229,"range":{"start_line":229,"start_character":17,"end_line":229,"end_character":21},"updated":"2016-11-24 06:31:29.000000000","message":"the LDAP","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"abf791c3f76d9d58d9ce79533a106d562db14046","unresolved":false,"context_lines":[{"line_number":226,"context_line":"            # the user is enabled and the password is correct since keystone"},{"line_number":227,"context_line":"            # doesn\u0027t support update the user\u0027s properties that is from LDAP"},{"line_number":228,"context_line":"            # server, this also means the password is not a mandatory argument"},{"line_number":229,"context_line":"            # if LDAP backend is in use."},{"line_number":230,"context_line":"            if backend !\u003d \u0027ldap\u0027:"},{"line_number":231,"context_line":"                if self.password is None:"},{"line_number":232,"context_line":"                    print(_(\u0027Either --bootstrap-password argument or \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_b74f40bc","line":229,"range":{"start_line":229,"start_character":17,"end_line":229,"end_character":21},"in_reply_to":"5a74a57a_cceeefb3","updated":"2016-11-24 07:25:48.000000000","message":"Done","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"38dd05c37e13b5c5669067513e36d8e9e4b28387","unresolved":false,"context_lines":[{"line_number":244,"context_line":"                    LOG.info(_LI(\u0027Enabled user %s.\u0027), self.username)"},{"line_number":245,"context_line":"            elif self.password:"},{"line_number":246,"context_line":"                    LOG.warning("},{"line_number":247,"context_line":"                        _LW(\"Keystone doesn\u0027t support updating LDAP user\u0027s \""},{"line_number":248,"context_line":"                            \"password, the password will be ignored, please \""},{"line_number":249,"context_line":"                            \"make sure it\u0027s correctly configured in LDAP \""},{"line_number":250,"context_line":"                            \"server side.\"))"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_6c407ba6","line":247,"range":{"start_line":247,"start_character":63,"end_line":247,"end_character":67},"updated":"2016-11-24 06:31:29.000000000","message":"an LDAP","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"abf791c3f76d9d58d9ce79533a106d562db14046","unresolved":false,"context_lines":[{"line_number":244,"context_line":"                    LOG.info(_LI(\u0027Enabled user %s.\u0027), self.username)"},{"line_number":245,"context_line":"            elif self.password:"},{"line_number":246,"context_line":"                    LOG.warning("},{"line_number":247,"context_line":"                        _LW(\"Keystone doesn\u0027t support updating LDAP user\u0027s \""},{"line_number":248,"context_line":"                            \"password, the password will be ignored, please \""},{"line_number":249,"context_line":"                            \"make sure it\u0027s correctly configured in LDAP \""},{"line_number":250,"context_line":"                            \"server side.\"))"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_57d50cb7","line":247,"range":{"start_line":247,"start_character":63,"end_line":247,"end_character":67},"in_reply_to":"5a74a57a_6c407ba6","updated":"2016-11-24 07:25:48.000000000","message":"Done","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"38dd05c37e13b5c5669067513e36d8e9e4b28387","unresolved":false,"context_lines":[{"line_number":245,"context_line":"            elif self.password:"},{"line_number":246,"context_line":"                    LOG.warning("},{"line_number":247,"context_line":"                        _LW(\"Keystone doesn\u0027t support updating LDAP user\u0027s \""},{"line_number":248,"context_line":"                            \"password, the password will be ignored, please \""},{"line_number":249,"context_line":"                            \"make sure it\u0027s correctly configured in LDAP \""},{"line_number":250,"context_line":"                            \"server side.\"))"},{"line_number":251,"context_line":"                    print (_(\"password is ignored.\"))"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_ec12cbb3","line":248,"range":{"start_line":248,"start_character":67,"end_line":248,"end_character":75},"updated":"2016-11-24 06:31:29.000000000","message":". Please","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"38dd05c37e13b5c5669067513e36d8e9e4b28387","unresolved":false,"context_lines":[{"line_number":245,"context_line":"            elif self.password:"},{"line_number":246,"context_line":"                    LOG.warning("},{"line_number":247,"context_line":"                        _LW(\"Keystone doesn\u0027t support updating LDAP user\u0027s \""},{"line_number":248,"context_line":"                            \"password, the password will be ignored, please \""},{"line_number":249,"context_line":"                            \"make sure it\u0027s correctly configured in LDAP \""},{"line_number":250,"context_line":"                            \"server side.\"))"},{"line_number":251,"context_line":"                    print (_(\"password is ignored.\"))"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_ac4a93c3","line":248,"range":{"start_line":248,"start_character":37,"end_line":248,"end_character":42},"updated":"2016-11-24 06:31:29.000000000","message":". The","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"abf791c3f76d9d58d9ce79533a106d562db14046","unresolved":false,"context_lines":[{"line_number":245,"context_line":"            elif self.password:"},{"line_number":246,"context_line":"                    LOG.warning("},{"line_number":247,"context_line":"                        _LW(\"Keystone doesn\u0027t support updating LDAP user\u0027s \""},{"line_number":248,"context_line":"                            \"password, the password will be ignored, please \""},{"line_number":249,"context_line":"                            \"make sure it\u0027s correctly configured in LDAP \""},{"line_number":250,"context_line":"                            \"server side.\"))"},{"line_number":251,"context_line":"                    print (_(\"password is ignored.\"))"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_d7f83c4c","line":248,"range":{"start_line":248,"start_character":67,"end_line":248,"end_character":75},"in_reply_to":"5a74a57a_ec12cbb3","updated":"2016-11-24 07:25:48.000000000","message":"I think it\u0027s okay to use lower case that is not a leading word of sentence.","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"38dd05c37e13b5c5669067513e36d8e9e4b28387","unresolved":false,"context_lines":[{"line_number":246,"context_line":"                    LOG.warning("},{"line_number":247,"context_line":"                        _LW(\"Keystone doesn\u0027t support updating LDAP user\u0027s \""},{"line_number":248,"context_line":"                            \"password, the password will be ignored, please \""},{"line_number":249,"context_line":"                            \"make sure it\u0027s correctly configured in LDAP \""},{"line_number":250,"context_line":"                            \"server side.\"))"},{"line_number":251,"context_line":"                    print (_(\"password is ignored.\"))"},{"line_number":252,"context_line":"        except exception.UserNotFound:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_0ce1c7d0","line":249,"range":{"start_line":249,"start_character":65,"end_line":249,"end_character":67},"updated":"2016-11-24 06:31:29.000000000","message":"on the","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"abf791c3f76d9d58d9ce79533a106d562db14046","unresolved":false,"context_lines":[{"line_number":246,"context_line":"                    LOG.warning("},{"line_number":247,"context_line":"                        _LW(\"Keystone doesn\u0027t support updating LDAP user\u0027s \""},{"line_number":248,"context_line":"                            \"password, the password will be ignored, please \""},{"line_number":249,"context_line":"                            \"make sure it\u0027s correctly configured in LDAP \""},{"line_number":250,"context_line":"                            \"server side.\"))"},{"line_number":251,"context_line":"                    print (_(\"password is ignored.\"))"},{"line_number":252,"context_line":"        except exception.UserNotFound:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_37b7b087","line":249,"range":{"start_line":249,"start_character":65,"end_line":249,"end_character":67},"in_reply_to":"5a74a57a_0ce1c7d0","updated":"2016-11-24 07:25:48.000000000","message":"Done","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"38dd05c37e13b5c5669067513e36d8e9e4b28387","unresolved":false,"context_lines":[{"line_number":260,"context_line":"                )"},{"line_number":261,"context_line":"                LOG.info(_LI(\u0027Created user %s\u0027), self.username)"},{"line_number":262,"context_line":"            else:"},{"line_number":263,"context_line":"                msg \u003d _LE(\"Keystone doesn\u0027t support creating a LDAP user, \""},{"line_number":264,"context_line":"                          \"please make sure the user exists.\")"},{"line_number":265,"context_line":"                LOG.error(msg)"},{"line_number":266,"context_line":"                raise exception.UserNotFound(user_id\u003dself.username)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_8c223700","line":263,"range":{"start_line":263,"start_character":72,"end_line":263,"end_character":73},"updated":"2016-11-24 06:31:29.000000000","message":".","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"38dd05c37e13b5c5669067513e36d8e9e4b28387","unresolved":false,"context_lines":[{"line_number":260,"context_line":"                )"},{"line_number":261,"context_line":"                LOG.info(_LI(\u0027Created user %s\u0027), self.username)"},{"line_number":262,"context_line":"            else:"},{"line_number":263,"context_line":"                msg \u003d _LE(\"Keystone doesn\u0027t support creating a LDAP user, \""},{"line_number":264,"context_line":"                          \"please make sure the user exists.\")"},{"line_number":265,"context_line":"                LOG.error(msg)"},{"line_number":266,"context_line":"                raise exception.UserNotFound(user_id\u003dself.username)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_6c279b12","line":263,"range":{"start_line":263,"start_character":61,"end_line":263,"end_character":62},"updated":"2016-11-24 06:31:29.000000000","message":"an","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"abf791c3f76d9d58d9ce79533a106d562db14046","unresolved":false,"context_lines":[{"line_number":260,"context_line":"                )"},{"line_number":261,"context_line":"                LOG.info(_LI(\u0027Created user %s\u0027), self.username)"},{"line_number":262,"context_line":"            else:"},{"line_number":263,"context_line":"                msg \u003d _LE(\"Keystone doesn\u0027t support creating a LDAP user, \""},{"line_number":264,"context_line":"                          \"please make sure the user exists.\")"},{"line_number":265,"context_line":"                LOG.error(msg)"},{"line_number":266,"context_line":"                raise exception.UserNotFound(user_id\u003dself.username)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_d7a67c52","line":263,"range":{"start_line":263,"start_character":61,"end_line":263,"end_character":62},"in_reply_to":"5a74a57a_6c279b12","updated":"2016-11-24 07:25:48.000000000","message":"I think a user is okay.","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"38dd05c37e13b5c5669067513e36d8e9e4b28387","unresolved":false,"context_lines":[{"line_number":261,"context_line":"                LOG.info(_LI(\u0027Created user %s\u0027), self.username)"},{"line_number":262,"context_line":"            else:"},{"line_number":263,"context_line":"                msg \u003d _LE(\"Keystone doesn\u0027t support creating a LDAP user, \""},{"line_number":264,"context_line":"                          \"please make sure the user exists.\")"},{"line_number":265,"context_line":"                LOG.error(msg)"},{"line_number":266,"context_line":"                raise exception.UserNotFound(user_id\u003dself.username)"},{"line_number":267,"context_line":"        # NOTE(morganfainberg): Do not create the role if it already exists."}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_ac21b3fd","line":264,"range":{"start_line":264,"start_character":27,"end_line":264,"end_character":28},"updated":"2016-11-24 06:31:29.000000000","message":"Please","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"38dd05c37e13b5c5669067513e36d8e9e4b28387","unresolved":false,"context_lines":[{"line_number":261,"context_line":"                LOG.info(_LI(\u0027Created user %s\u0027), self.username)"},{"line_number":262,"context_line":"            else:"},{"line_number":263,"context_line":"                msg \u003d _LE(\"Keystone doesn\u0027t support creating a LDAP user, \""},{"line_number":264,"context_line":"                          \"please make sure the user exists.\")"},{"line_number":265,"context_line":"                LOG.error(msg)"},{"line_number":266,"context_line":"                raise exception.UserNotFound(user_id\u003dself.username)"},{"line_number":267,"context_line":"        # NOTE(morganfainberg): Do not create the role if it already exists."}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_cc1c2fc4","line":264,"range":{"start_line":264,"start_character":53,"end_line":264,"end_character":59},"updated":"2016-11-24 06:31:29.000000000","message":"already exists.","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"abf791c3f76d9d58d9ce79533a106d562db14046","unresolved":false,"context_lines":[{"line_number":261,"context_line":"                LOG.info(_LI(\u0027Created user %s\u0027), self.username)"},{"line_number":262,"context_line":"            else:"},{"line_number":263,"context_line":"                msg \u003d _LE(\"Keystone doesn\u0027t support creating a LDAP user, \""},{"line_number":264,"context_line":"                          \"please make sure the user exists.\")"},{"line_number":265,"context_line":"                LOG.error(msg)"},{"line_number":266,"context_line":"                raise exception.UserNotFound(user_id\u003dself.username)"},{"line_number":267,"context_line":"        # NOTE(morganfainberg): Do not create the role if it already exists."}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_977324e7","line":264,"range":{"start_line":264,"start_character":53,"end_line":264,"end_character":59},"in_reply_to":"5a74a57a_cc1c2fc4","updated":"2016-11-24 07:25:48.000000000","message":"Done","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ba449feceabbbc6a8ef14ccf25300d22f4b64364","unresolved":false,"context_lines":[{"line_number":171,"context_line":"        deployment."},{"line_number":172,"context_line":"        \"\"\""},{"line_number":173,"context_line":"        self._get_config()"},{"line_number":174,"context_line":"        backend \u003d CONF.identity.driver"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        # NOTE(morganfainberg): Ensure the default domain is in-fact created"},{"line_number":177,"context_line":"        default_domain \u003d {"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a71b18c_8da30e9e","line":174,"updated":"2016-12-08 20:00:54.000000000","message":"nit: we could move this definition down to where it is used.","commit_id":"5d465327bd7bc97a51c87d0d778477a285f18375"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"a99ccf93f8548dd8ecdc5ca832162f152155bf72","unresolved":false,"context_lines":[{"line_number":171,"context_line":"        deployment."},{"line_number":172,"context_line":"        \"\"\""},{"line_number":173,"context_line":"        self._get_config()"},{"line_number":174,"context_line":"        backend \u003d CONF.identity.driver"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        # NOTE(morganfainberg): Ensure the default domain is in-fact created"},{"line_number":177,"context_line":"        default_domain \u003d {"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a71b18c_6e35bed9","line":174,"in_reply_to":"3a71b18c_8da30e9e","updated":"2017-01-14 10:53:52.000000000","message":"Done","commit_id":"5d465327bd7bc97a51c87d0d778477a285f18375"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ba449feceabbbc6a8ef14ccf25300d22f4b64364","unresolved":false,"context_lines":[{"line_number":244,"context_line":"                    LOG.info(_LI(\u0027Enabled user %s.\u0027), self.username)"},{"line_number":245,"context_line":"            elif self.password:"},{"line_number":246,"context_line":"                    LOG.warning("},{"line_number":247,"context_line":"                        _LW(\"Keystone doesn\u0027t support updating a LDAP user\u0027s \""},{"line_number":248,"context_line":"                            \"password, the password will be ignored, please \""},{"line_number":249,"context_line":"                            \"make sure it\u0027s correctly configured on the LDAP \""},{"line_number":250,"context_line":"                            \"server side.\"))"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a71b18c_4db016de","line":247,"updated":"2016-12-08 20:00:54.000000000","message":"an*","commit_id":"5d465327bd7bc97a51c87d0d778477a285f18375"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"a99ccf93f8548dd8ecdc5ca832162f152155bf72","unresolved":false,"context_lines":[{"line_number":244,"context_line":"                    LOG.info(_LI(\u0027Enabled user %s.\u0027), self.username)"},{"line_number":245,"context_line":"            elif self.password:"},{"line_number":246,"context_line":"                    LOG.warning("},{"line_number":247,"context_line":"                        _LW(\"Keystone doesn\u0027t support updating a LDAP user\u0027s \""},{"line_number":248,"context_line":"                            \"password, the password will be ignored, please \""},{"line_number":249,"context_line":"                            \"make sure it\u0027s correctly configured on the LDAP \""},{"line_number":250,"context_line":"                            \"server side.\"))"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a71b18c_ae2fd686","line":247,"in_reply_to":"3a71b18c_4db016de","updated":"2017-01-14 10:53:52.000000000","message":"Done","commit_id":"5d465327bd7bc97a51c87d0d778477a285f18375"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ba449feceabbbc6a8ef14ccf25300d22f4b64364","unresolved":false,"context_lines":[{"line_number":248,"context_line":"                            \"password, the password will be ignored, please \""},{"line_number":249,"context_line":"                            \"make sure it\u0027s correctly configured on the LDAP \""},{"line_number":250,"context_line":"                            \"server side.\"))"},{"line_number":251,"context_line":"                    print (_(\"password is ignored.\"))"},{"line_number":252,"context_line":"        except exception.UserNotFound:"},{"line_number":253,"context_line":"            if backend !\u003d \u0027ldap\u0027:"},{"line_number":254,"context_line":"                user \u003d self.identity_manager.create_user("}],"source_content_type":"text/x-python","patch_set":8,"id":"3a71b18c_6d86b2dc","line":251,"updated":"2016-12-08 20:00:54.000000000","message":"Outside of the password validation - bootstrap is pretty set in using logging for relaying information to the user running it. Any reason to use print over log here?","commit_id":"5d465327bd7bc97a51c87d0d778477a285f18375"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"a99ccf93f8548dd8ecdc5ca832162f152155bf72","unresolved":false,"context_lines":[{"line_number":248,"context_line":"                            \"password, the password will be ignored, please \""},{"line_number":249,"context_line":"                            \"make sure it\u0027s correctly configured on the LDAP \""},{"line_number":250,"context_line":"                            \"server side.\"))"},{"line_number":251,"context_line":"                    print (_(\"password is ignored.\"))"},{"line_number":252,"context_line":"        except exception.UserNotFound:"},{"line_number":253,"context_line":"            if backend !\u003d \u0027ldap\u0027:"},{"line_number":254,"context_line":"                user \u003d self.identity_manager.create_user("}],"source_content_type":"text/x-python","patch_set":8,"id":"7a3c09a3_6f1c0914","line":251,"in_reply_to":"3a71b18c_6d86b2dc","updated":"2017-01-14 10:53:52.000000000","message":"The user can read the message from console rather than go to the log file to check what\u0027s happened, so that it will not mislead us to believe the password that is given is effective.","commit_id":"5d465327bd7bc97a51c87d0d778477a285f18375"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ba449feceabbbc6a8ef14ccf25300d22f4b64364","unresolved":false,"context_lines":[{"line_number":260,"context_line":"                )"},{"line_number":261,"context_line":"                LOG.info(_LI(\u0027Created user %s\u0027), self.username)"},{"line_number":262,"context_line":"            else:"},{"line_number":263,"context_line":"                msg \u003d _LE(\"Keystone doesn\u0027t support creating a LDAP user, \""},{"line_number":264,"context_line":"                          \"please make sure the user already exists.\")"},{"line_number":265,"context_line":"                LOG.error(msg)"},{"line_number":266,"context_line":"                raise exception.UserNotFound(user_id\u003dself.username)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a71b18c_eda8027a","line":263,"updated":"2016-12-08 20:00:54.000000000","message":"an*","commit_id":"5d465327bd7bc97a51c87d0d778477a285f18375"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"a99ccf93f8548dd8ecdc5ca832162f152155bf72","unresolved":false,"context_lines":[{"line_number":260,"context_line":"                )"},{"line_number":261,"context_line":"                LOG.info(_LI(\u0027Created user %s\u0027), self.username)"},{"line_number":262,"context_line":"            else:"},{"line_number":263,"context_line":"                msg \u003d _LE(\"Keystone doesn\u0027t support creating a LDAP user, \""},{"line_number":264,"context_line":"                          \"please make sure the user already exists.\")"},{"line_number":265,"context_line":"                LOG.error(msg)"},{"line_number":266,"context_line":"                raise exception.UserNotFound(user_id\u003dself.username)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a71b18c_2e5ae62a","line":263,"in_reply_to":"3a71b18c_eda8027a","updated":"2017-01-14 10:53:52.000000000","message":"Done","commit_id":"5d465327bd7bc97a51c87d0d778477a285f18375"}],"keystone/tests/unit/test_cli.py":[{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"f974c1faa4f857095a7cf8fea524d3a9104da1f8","unresolved":false,"context_lines":[{"line_number":342,"context_line":"        self._do_test_bootstrap(bootstrap)"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"    def test_assignment_created_with_region_exists(self):"},{"line_number":345,"context_line":"        # test assignment can be created if region already exists."},{"line_number":346,"context_line":"        bootstrap \u003d cli.BootStrap()"},{"line_number":347,"context_line":"        bootstrap.resource_manager.create_domain(self.default_domain[\u0027id\u0027],"},{"line_number":348,"context_line":"                                                 self.default_domain)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a629dbe_4f297589","line":345,"updated":"2016-11-10 18:29:30.000000000","message":"These changes should go in a separate review.","commit_id":"173cc5906e6ef2169038a54e7636326bfc1d06b0"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"0f45618ef3fb1ed78c097b598bfae92d48f069c6","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        super(CliBootStrapTestCase, self).setUp()"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def config_files(self):"},{"line_number":99,"context_line":"        self.config_fixture.register_cli_opt(cli.command_opt)"},{"line_number":100,"context_line":"        config_files \u003d super(CliBootStrapTestCase, self).config_files()"},{"line_number":101,"context_line":"        config_files.append(unit.dirs.tests_conf(\u0027backend_sql.conf\u0027))"},{"line_number":102,"context_line":"        return config_files"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a77a97e_7d25af5a","side":"PARENT","line":99,"updated":"2016-11-21 18:58:59.000000000","message":"Yep - looks like this doesn\u0027t need to be done on line 171. I assume everything passes if you remove line 171.","commit_id":"a93d03e04ffa6bb8edd00761f4566fd8a7a1fff5"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"1adc2e6178106ffe9ee1e1749284a9b29873e9db","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        super(CliBootStrapTestCase, self).setUp()"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def config_files(self):"},{"line_number":99,"context_line":"        self.config_fixture.register_cli_opt(cli.command_opt)"},{"line_number":100,"context_line":"        config_files \u003d super(CliBootStrapTestCase, self).config_files()"},{"line_number":101,"context_line":"        config_files.append(unit.dirs.tests_conf(\u0027backend_sql.conf\u0027))"},{"line_number":102,"context_line":"        return config_files"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_317d006f","side":"PARENT","line":99,"in_reply_to":"7a77a97e_7d25af5a","updated":"2016-11-24 05:44:19.000000000","message":"Done","commit_id":"a93d03e04ffa6bb8edd00761f4566fd8a7a1fff5"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"33c9d45c34522413106fd89ab66661b601f084fe","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"import fixtures"},{"line_number":20,"context_line":"import mock"},{"line_number":21,"context_line":"from mock import DEFAULT"},{"line_number":22,"context_line":"import oslo_config.fixture"},{"line_number":23,"context_line":"from oslo_log import log"},{"line_number":24,"context_line":"from oslotest import mockpatch"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a77a97e_6a017139","line":21,"updated":"2016-11-21 14:05:22.000000000","message":"We generally don\u0027t import objects directly, just modules. Suggest using mock.DEFAULT in the code below.","commit_id":"f52655b5d205c5948f4ff570cc4083de37ef5acd"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"aea594f073aa190e4f5f1141b21cf59f3cb947ee","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"import fixtures"},{"line_number":20,"context_line":"import mock"},{"line_number":21,"context_line":"from mock import DEFAULT"},{"line_number":22,"context_line":"import oslo_config.fixture"},{"line_number":23,"context_line":"from oslo_log import log"},{"line_number":24,"context_line":"from oslotest import mockpatch"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a77a97e_de0327bd","line":21,"in_reply_to":"7a77a97e_6a017139","updated":"2016-11-21 16:19:37.000000000","message":"++","commit_id":"f52655b5d205c5948f4ff570cc4083de37ef5acd"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"1adc2e6178106ffe9ee1e1749284a9b29873e9db","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"import fixtures"},{"line_number":20,"context_line":"import mock"},{"line_number":21,"context_line":"from mock import DEFAULT"},{"line_number":22,"context_line":"import oslo_config.fixture"},{"line_number":23,"context_line":"from oslo_log import log"},{"line_number":24,"context_line":"from oslotest import mockpatch"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_51a99cde","line":21,"in_reply_to":"7a77a97e_6a017139","updated":"2016-11-24 05:44:19.000000000","message":"Done","commit_id":"f52655b5d205c5948f4ff570cc4083de37ef5acd"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"0f45618ef3fb1ed78c097b598bfae92d48f069c6","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"import fixtures"},{"line_number":20,"context_line":"import mock"},{"line_number":21,"context_line":"from mock import DEFAULT"},{"line_number":22,"context_line":"import oslo_config.fixture"},{"line_number":23,"context_line":"from oslo_log import log"},{"line_number":24,"context_line":"from oslotest import mockpatch"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a77a97e_dd92439f","line":21,"in_reply_to":"7a77a97e_de0327bd","updated":"2016-11-21 18:58:59.000000000","message":"++","commit_id":"f52655b5d205c5948f4ff570cc4083de37ef5acd"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"33c9d45c34522413106fd89ab66661b601f084fe","unresolved":false,"context_lines":[{"line_number":168,"context_line":"class CliBootStrapSQLTestCase(unit.SQLDriverOverrides, CliBootStrapTestCase):"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def config_files(self):"},{"line_number":171,"context_line":"        self.config_fixture.register_cli_opt(cli.command_opt)"},{"line_number":172,"context_line":"        config_files \u003d super(CliBootStrapTestCase, self).config_files()"},{"line_number":173,"context_line":"        config_files.append(unit.dirs.tests_conf(\u0027backend_sql.conf\u0027))"},{"line_number":174,"context_line":"        return config_files"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a77a97e_8a508d60","line":171,"updated":"2016-11-21 14:05:22.000000000","message":"Does this need to be done again? It\u0027s already being done in the parent class.","commit_id":"f52655b5d205c5948f4ff570cc4083de37ef5acd"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"1adc2e6178106ffe9ee1e1749284a9b29873e9db","unresolved":false,"context_lines":[{"line_number":168,"context_line":"class CliBootStrapSQLTestCase(unit.SQLDriverOverrides, CliBootStrapTestCase):"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def config_files(self):"},{"line_number":171,"context_line":"        self.config_fixture.register_cli_opt(cli.command_opt)"},{"line_number":172,"context_line":"        config_files \u003d super(CliBootStrapTestCase, self).config_files()"},{"line_number":173,"context_line":"        config_files.append(unit.dirs.tests_conf(\u0027backend_sql.conf\u0027))"},{"line_number":174,"context_line":"        return config_files"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_43bab26f","line":171,"in_reply_to":"7a77a97e_8a508d60","updated":"2016-11-24 05:44:19.000000000","message":"Good catch, done!","commit_id":"f52655b5d205c5948f4ff570cc4083de37ef5acd"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"abf791c3f76d9d58d9ce79533a106d562db14046","unresolved":false,"context_lines":[{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    def setUp(self):"},{"line_number":213,"context_line":"        super(CliBootStrapLDAPTestCase, self).setUp()"},{"line_number":214,"context_line":"        # idempotent test will bootstrap twice with the same name user id and"},{"line_number":215,"context_line":"        # name, so defined them here instead."},{"line_number":216,"context_line":"        self.user_id \u003d uuid.uuid4().hex"},{"line_number":217,"context_line":"        self.user_name \u003d uuid.uuid4().hex"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_b71bc01a","line":214,"range":{"start_line":214,"start_character":61,"end_line":214,"end_character":65},"updated":"2016-11-24 07:25:48.000000000","message":"remove \"name\"","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"38dd05c37e13b5c5669067513e36d8e9e4b28387","unresolved":false,"context_lines":[{"line_number":227,"context_line":"            \u0027name\u0027: self.user_name,"},{"line_number":228,"context_line":"            \u0027password_expires_at\u0027: None}"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    # Keystone doesn\u0027t support user creation or update when LDAP backend is"},{"line_number":231,"context_line":"    # in use, and this is not a functional test there is no real LDAP server"},{"line_number":232,"context_line":"    # in place, this is the reason why the method is override and mocked some"},{"line_number":233,"context_line":"    # methods here for LDAP test."},{"line_number":234,"context_line":"    def _do_test_bootstrap(self, bootstrap):"},{"line_number":235,"context_line":"        with mock.patch.multiple(ldap_backend.Identity,"},{"line_number":236,"context_line":"                                 get_user_by_name\u003dmock.DEFAULT,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_6c6ebb30","line":233,"range":{"start_line":230,"start_character":6,"end_line":233,"end_character":33},"updated":"2016-11-24 06:31:29.000000000","message":"Huge run-on sentence. Please break up into multiple sentences.","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"abf791c3f76d9d58d9ce79533a106d562db14046","unresolved":false,"context_lines":[{"line_number":227,"context_line":"            \u0027name\u0027: self.user_name,"},{"line_number":228,"context_line":"            \u0027password_expires_at\u0027: None}"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    # Keystone doesn\u0027t support user creation or update when LDAP backend is"},{"line_number":231,"context_line":"    # in use, and this is not a functional test there is no real LDAP server"},{"line_number":232,"context_line":"    # in place, this is the reason why the method is override and mocked some"},{"line_number":233,"context_line":"    # methods here for LDAP test."},{"line_number":234,"context_line":"    def _do_test_bootstrap(self, bootstrap):"},{"line_number":235,"context_line":"        with mock.patch.multiple(ldap_backend.Identity,"},{"line_number":236,"context_line":"                                 get_user_by_name\u003dmock.DEFAULT,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_9708842f","line":233,"range":{"start_line":230,"start_character":6,"end_line":233,"end_character":33},"in_reply_to":"5a74a57a_6c6ebb30","updated":"2016-11-24 07:25:48.000000000","message":"Done","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"}],"releasenotes/notes/bug-1643301-2e74e1d676eebb83.yaml":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"33c9d45c34522413106fd89ab66661b601f084fe","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    [`bug 1643301 \u003chttps://bugs.launchpad.net/keystone/+bug/1643301\u003e`_]"},{"line_number":5,"context_line":"    Bootstrapping keystone with LDAP identity backend is enabled, this means"},{"line_number":6,"context_line":"    you needn\u0027t depend on admin token to create role assignments anymore,"},{"line_number":7,"context_line":"    and ``password`` is not a mandatory argument for the command, it will be"},{"line_number":8,"context_line":"    ignored if the identity\u0027s backend is ``LDAP``."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7a77a97e_8d0fc72d","line":5,"updated":"2016-11-21 14:05:22.000000000","message":"The word \u0027enabled\u0027 doesn\u0027t make sense here. Maybe just something like: \"It is now possible to bootstrap keystone using the LDAP backend.","commit_id":"f52655b5d205c5948f4ff570cc4083de37ef5acd"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"1adc2e6178106ffe9ee1e1749284a9b29873e9db","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    [`bug 1643301 \u003chttps://bugs.launchpad.net/keystone/+bug/1643301\u003e`_]"},{"line_number":5,"context_line":"    Bootstrapping keystone with LDAP identity backend is enabled, this means"},{"line_number":6,"context_line":"    you needn\u0027t depend on admin token to create role assignments anymore,"},{"line_number":7,"context_line":"    and ``password`` is not a mandatory argument for the command, it will be"},{"line_number":8,"context_line":"    ignored if the identity\u0027s backend is ``LDAP``."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5a74a57a_913b3438","line":5,"in_reply_to":"7a77a97e_8d0fc72d","updated":"2016-11-24 05:44:19.000000000","message":"Done","commit_id":"f52655b5d205c5948f4ff570cc4083de37ef5acd"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"33c9d45c34522413106fd89ab66661b601f084fe","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    [`bug 1643301 \u003chttps://bugs.launchpad.net/keystone/+bug/1643301\u003e`_]"},{"line_number":5,"context_line":"    Bootstrapping keystone with LDAP identity backend is enabled, this means"},{"line_number":6,"context_line":"    you needn\u0027t depend on admin token to create role assignments anymore,"},{"line_number":7,"context_line":"    and ``password`` is not a mandatory argument for the command, it will be"},{"line_number":8,"context_line":"    ignored if the identity\u0027s backend is ``LDAP``."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7a77a97e_6dc34b8b","line":6,"updated":"2016-11-21 14:05:22.000000000","message":"I wouldn\u0027t talk about role assignment at all here.","commit_id":"f52655b5d205c5948f4ff570cc4083de37ef5acd"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"1adc2e6178106ffe9ee1e1749284a9b29873e9db","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    [`bug 1643301 \u003chttps://bugs.launchpad.net/keystone/+bug/1643301\u003e`_]"},{"line_number":5,"context_line":"    Bootstrapping keystone with LDAP identity backend is enabled, this means"},{"line_number":6,"context_line":"    you needn\u0027t depend on admin token to create role assignments anymore,"},{"line_number":7,"context_line":"    and ``password`` is not a mandatory argument for the command, it will be"},{"line_number":8,"context_line":"    ignored if the identity\u0027s backend is ``LDAP``."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5a74a57a_91225400","line":6,"in_reply_to":"7a77a97e_6dc34b8b","updated":"2016-11-24 05:44:19.000000000","message":"Done","commit_id":"f52655b5d205c5948f4ff570cc4083de37ef5acd"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"38dd05c37e13b5c5669067513e36d8e9e4b28387","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    [`bug 1643301 \u003chttps://bugs.launchpad.net/keystone/+bug/1643301\u003e`_]"},{"line_number":5,"context_line":"    It is now possible to bootstrap keystone using the LDAP backend, and"},{"line_number":6,"context_line":"    the user ``password`` will be ignored if the identity\u0027s backend is"},{"line_number":7,"context_line":"    ``LDAP``."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5a74a57a_0c646747","line":5,"range":{"start_line":5,"start_character":67,"end_line":5,"end_character":68},"updated":"2016-11-24 06:31:29.000000000","message":".","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"38dd05c37e13b5c5669067513e36d8e9e4b28387","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    [`bug 1643301 \u003chttps://bugs.launchpad.net/keystone/+bug/1643301\u003e`_]"},{"line_number":5,"context_line":"    It is now possible to bootstrap keystone using the LDAP backend, and"},{"line_number":6,"context_line":"    the user ``password`` will be ignored if the identity\u0027s backend is"},{"line_number":7,"context_line":"    ``LDAP``."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5a74a57a_2c5be388","line":5,"range":{"start_line":5,"start_character":69,"end_line":5,"end_character":72},"updated":"2016-11-24 06:31:29.000000000","message":"Remove \"and\"","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"abf791c3f76d9d58d9ce79533a106d562db14046","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    [`bug 1643301 \u003chttps://bugs.launchpad.net/keystone/+bug/1643301\u003e`_]"},{"line_number":5,"context_line":"    It is now possible to bootstrap keystone using the LDAP backend, and"},{"line_number":6,"context_line":"    the user ``password`` will be ignored if the identity\u0027s backend is"},{"line_number":7,"context_line":"    ``LDAP``."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5a74a57a_f2ff06ff","line":5,"range":{"start_line":5,"start_character":67,"end_line":5,"end_character":68},"in_reply_to":"5a74a57a_0c646747","updated":"2016-11-24 07:25:48.000000000","message":"Done","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"abf791c3f76d9d58d9ce79533a106d562db14046","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    [`bug 1643301 \u003chttps://bugs.launchpad.net/keystone/+bug/1643301\u003e`_]"},{"line_number":5,"context_line":"    It is now possible to bootstrap keystone using the LDAP backend, and"},{"line_number":6,"context_line":"    the user ``password`` will be ignored if the identity\u0027s backend is"},{"line_number":7,"context_line":"    ``LDAP``."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5a74a57a_1203a20e","line":5,"range":{"start_line":5,"start_character":69,"end_line":5,"end_character":72},"in_reply_to":"5a74a57a_2c5be388","updated":"2016-11-24 07:25:48.000000000","message":"Done","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"38dd05c37e13b5c5669067513e36d8e9e4b28387","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    [`bug 1643301 \u003chttps://bugs.launchpad.net/keystone/+bug/1643301\u003e`_]"},{"line_number":5,"context_line":"    It is now possible to bootstrap keystone using the LDAP backend, and"},{"line_number":6,"context_line":"    the user ``password`` will be ignored if the identity\u0027s backend is"},{"line_number":7,"context_line":"    ``LDAP``."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5a74a57a_4c5e5f77","line":6,"range":{"start_line":6,"start_character":4,"end_line":6,"end_character":7},"updated":"2016-11-24 06:31:29.000000000","message":"The","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"38dd05c37e13b5c5669067513e36d8e9e4b28387","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    [`bug 1643301 \u003chttps://bugs.launchpad.net/keystone/+bug/1643301\u003e`_]"},{"line_number":5,"context_line":"    It is now possible to bootstrap keystone using the LDAP backend, and"},{"line_number":6,"context_line":"    the user ``password`` will be ignored if the identity\u0027s backend is"},{"line_number":7,"context_line":"    ``LDAP``."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5a74a57a_8c507760","line":6,"range":{"start_line":6,"start_character":68,"end_line":6,"end_character":70},"updated":"2016-11-24 06:31:29.000000000","message":"is set to","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"abf791c3f76d9d58d9ce79533a106d562db14046","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    [`bug 1643301 \u003chttps://bugs.launchpad.net/keystone/+bug/1643301\u003e`_]"},{"line_number":5,"context_line":"    It is now possible to bootstrap keystone using the LDAP backend, and"},{"line_number":6,"context_line":"    the user ``password`` will be ignored if the identity\u0027s backend is"},{"line_number":7,"context_line":"    ``LDAP``."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5a74a57a_d2192a7b","line":6,"range":{"start_line":6,"start_character":4,"end_line":6,"end_character":7},"in_reply_to":"5a74a57a_4c5e5f77","updated":"2016-11-24 07:25:48.000000000","message":"Done","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"abf791c3f76d9d58d9ce79533a106d562db14046","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    [`bug 1643301 \u003chttps://bugs.launchpad.net/keystone/+bug/1643301\u003e`_]"},{"line_number":5,"context_line":"    It is now possible to bootstrap keystone using the LDAP backend, and"},{"line_number":6,"context_line":"    the user ``password`` will be ignored if the identity\u0027s backend is"},{"line_number":7,"context_line":"    ``LDAP``."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5a74a57a_920fb22d","line":6,"range":{"start_line":6,"start_character":68,"end_line":6,"end_character":70},"in_reply_to":"5a74a57a_8c507760","updated":"2016-11-24 07:25:48.000000000","message":"Done","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"38dd05c37e13b5c5669067513e36d8e9e4b28387","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    [`bug 1643301 \u003chttps://bugs.launchpad.net/keystone/+bug/1643301\u003e`_]"},{"line_number":5,"context_line":"    It is now possible to bootstrap keystone using the LDAP backend, and"},{"line_number":6,"context_line":"    the user ``password`` will be ignored if the identity\u0027s backend is"},{"line_number":7,"context_line":"    ``LDAP``."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5a74a57a_ac4ff3bb","line":7,"range":{"start_line":7,"start_character":6,"end_line":7,"end_character":10},"updated":"2016-11-24 06:31:29.000000000","message":"``ldap``","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"abf791c3f76d9d58d9ce79533a106d562db14046","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    [`bug 1643301 \u003chttps://bugs.launchpad.net/keystone/+bug/1643301\u003e`_]"},{"line_number":5,"context_line":"    It is now possible to bootstrap keystone using the LDAP backend, and"},{"line_number":6,"context_line":"    the user ``password`` will be ignored if the identity\u0027s backend is"},{"line_number":7,"context_line":"    ``LDAP``."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5a74a57a_f22626b9","line":7,"range":{"start_line":7,"start_character":6,"end_line":7,"end_character":10},"in_reply_to":"5a74a57a_ac4ff3bb","updated":"2016-11-24 07:25:48.000000000","message":"Done","commit_id":"d98fb2ef4948393eacd7018f78cf4d6e91ec290f"}]}
