)]}'
{"keystone/identity/backends/ldap/common.py":[{"author":{"_account_id":8116,"name":"John Dennis","email":"jdennis@redhat.com","username":"jdennis"},"change_message_id":"105acb3a4c10ed3b9ae5fd900a2566fd7a880c23","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"PY2 \u003d sys.version_info[0] \u003c\u003d 2"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"LDAP_VALUES \u003d {\u0027TRUE\u0027: True, \u0027FALSE\u0027: False}"},{"line_number":41,"context_line":"LDAP_SCOPES \u003d {\u0027one\u0027: ldap.SCOPE_ONELEVEL,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_ef94fa43","line":38,"updated":"2018-10-17 17:23:05.000000000","message":"The six module already defines the PY2 and PY3 symbols, use the \"standard\" symbols instead rolling your own.","commit_id":"c99cd3027e8856f9847ca7a4a8cee5abec57a844"},{"author":{"_account_id":11805,"name":"Corey Bryant","email":"corey.bryant@canonical.com","username":"coreycb"},"change_message_id":"11cc764986fe3fb6c83a590d8ae0313997442412","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"PY2 \u003d sys.version_info[0] \u003c\u003d 2"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"LDAP_VALUES \u003d {\u0027TRUE\u0027: True, \u0027FALSE\u0027: False}"},{"line_number":41,"context_line":"LDAP_SCOPES \u003d {\u0027one\u0027: ldap.SCOPE_ONELEVEL,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_4c3735dd","line":38,"in_reply_to":"3f79a3b5_ef94fa43","updated":"2018-10-17 17:51:53.000000000","message":"Thanks, I\u0027m testing with this updated right now.","commit_id":"c99cd3027e8856f9847ca7a4a8cee5abec57a844"},{"author":{"_account_id":8116,"name":"John Dennis","email":"jdennis@redhat.com","username":"jdennis"},"change_message_id":"26f3aa6e4061d330c7e4e0de100aba15c026deec","unresolved":false,"context_lines":[{"line_number":295,"context_line":"    Note that this function uses is_rdn_equal to compare RDNs so the"},{"line_number":296,"context_line":"    limitations of that function apply here."},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    :param dn1: A string DN parsed by ldap.dn.str2dn."},{"line_number":299,"context_line":"    :param dn2: A string DN parsed by ldap.dn.str2dn."},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"bfdaf3ff_a8979a90","line":298,"updated":"2019-01-14 15:59:21.000000000","message":"The original comment remains correct, please revert.","commit_id":"3f2ef1361b3ddaf6b256771f7d2c9de230a575f9"},{"author":{"_account_id":8116,"name":"John Dennis","email":"jdennis@redhat.com","username":"jdennis"},"change_message_id":"26f3aa6e4061d330c7e4e0de100aba15c026deec","unresolved":false,"context_lines":[{"line_number":316,"context_line":"def dn_startswith(descendant_dn, dn):"},{"line_number":317,"context_line":"    \"\"\"Return True if and only if the descendant_dn is under the dn."},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"    :param descendant_dn: A string DN parsed by ldap.dn.str2dn."},{"line_number":320,"context_line":"    :param dn: A string DN parsed by ldap.dn.str2dn."},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"bfdaf3ff_a8c55a90","line":319,"updated":"2019-01-14 15:59:21.000000000","message":"The original comment remains true, it\u0027s either a string or the result of ldap.dn.str2dn","commit_id":"3f2ef1361b3ddaf6b256771f7d2c9de230a575f9"},{"author":{"_account_id":8116,"name":"John Dennis","email":"jdennis@redhat.com","username":"jdennis"},"change_message_id":"26f3aa6e4061d330c7e4e0de100aba15c026deec","unresolved":false,"context_lines":[{"line_number":516,"context_line":"                                    debug_level\u003ddebug_level,"},{"line_number":517,"context_line":"                                    timeout\u003dconn_timeout)"},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"        if PY2:"},{"line_number":520,"context_line":"            # NOTE: Once https://github.com/python-ldap/python-ldap/issues/249"},{"line_number":521,"context_line":"            # is released, we can pass bytes_strictness\u003d\u0027warn\u0027 as a parameter"},{"line_number":522,"context_line":"            # to ldap.initialize instead of setting it after ldap.initialize."}],"source_content_type":"text/x-python","patch_set":9,"id":"bfdaf3ff_28608aa5","line":519,"updated":"2019-01-14 15:59:21.000000000","message":"FWIW, this bug was just fixed upstream","commit_id":"3f2ef1361b3ddaf6b256771f7d2c9de230a575f9"},{"author":{"_account_id":11805,"name":"Corey Bryant","email":"corey.bryant@canonical.com","username":"coreycb"},"change_message_id":"ad412476eacb64b1643d4a70c8d2d06f9607d77f","unresolved":false,"context_lines":[{"line_number":516,"context_line":"                                    debug_level\u003ddebug_level,"},{"line_number":517,"context_line":"                                    timeout\u003dconn_timeout)"},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"        if PY2:"},{"line_number":520,"context_line":"            # NOTE: Once https://github.com/python-ldap/python-ldap/issues/249"},{"line_number":521,"context_line":"            # is released, we can pass bytes_strictness\u003d\u0027warn\u0027 as a parameter"},{"line_number":522,"context_line":"            # to ldap.initialize instead of setting it after ldap.initialize."}],"source_content_type":"text/x-python","patch_set":9,"id":"bfdaf3ff_f4e1f7ff","line":519,"in_reply_to":"bfdaf3ff_28608aa5","updated":"2019-01-14 20:24:10.000000000","message":"Yes, thanks very much for the fix. I changed the wording from \"fixed\" to \"released\" for the time being until the fix is included in a release.","commit_id":"3f2ef1361b3ddaf6b256771f7d2c9de230a575f9"}],"keystone/tests/unit/fakeldap.py":[{"author":{"_account_id":8116,"name":"John Dennis","email":"jdennis@redhat.com","username":"jdennis"},"change_message_id":"26f3aa6e4061d330c7e4e0de100aba15c026deec","unresolved":false,"context_lines":[{"line_number":215,"context_line":"class FakeLdap(common.LDAPHandler):"},{"line_number":216,"context_line":"    \"\"\"Emulate the python-ldap API."},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    The python-ldap API requires all strings to be UTF-8 encoded. This"},{"line_number":219,"context_line":"    is assured by the caller of this interface"},{"line_number":220,"context_line":"    (i.e. KeystoneLDAPHandler)."},{"line_number":221,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bfdaf3ff_089ee655","line":218,"updated":"2019-01-14 15:59:21.000000000","message":"This comment needs to be reworded to take into account the text being added. Probably the two blocks of text need to be folded together.","commit_id":"3f2ef1361b3ddaf6b256771f7d2c9de230a575f9"},{"author":{"_account_id":8116,"name":"John Dennis","email":"jdennis@redhat.com","username":"jdennis"},"change_message_id":"26f3aa6e4061d330c7e4e0de100aba15c026deec","unresolved":false,"context_lines":[{"line_number":282,"context_line":"        self.pool_conn_lifetime \u003d pool_conn_lifetime"},{"line_number":283,"context_line":"        self.conn_timeout \u003d conn_timeout"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"    def dn(self, dn):"},{"line_number":286,"context_line":"        return dn"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    def _dn_to_id_attr(self, dn):"}],"source_content_type":"text/x-python","patch_set":9,"id":"bfdaf3ff_88c2d632","line":285,"updated":"2019-01-14 15:59:21.000000000","message":"Is this even needed now?","commit_id":"3f2ef1361b3ddaf6b256771f7d2c9de230a575f9"}],"keystone/tests/unit/test_ldap_livetest.py":[{"author":{"_account_id":8116,"name":"John Dennis","email":"jdennis@redhat.com","username":"jdennis"},"change_message_id":"26f3aa6e4061d330c7e4e0de100aba15c026deec","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"def create_object(dn, attrs):"},{"line_number":34,"context_line":"    if PY2:"},{"line_number":35,"context_line":"        # NOTE: Once https://github.com/python-ldap/python-ldap/issues/249"},{"line_number":36,"context_line":"        # is released, we can pass bytes_strictness\u003d\u0027warn\u0027 as a parameter to"},{"line_number":37,"context_line":"        # ldap.initialize instead of setting it after ldap.initialize."}],"source_content_type":"text/x-python","patch_set":9,"id":"bfdaf3ff_081346b7","line":34,"updated":"2019-01-14 15:59:21.000000000","message":"FYI, this was just fixed upstream.","commit_id":"3f2ef1361b3ddaf6b256771f7d2c9de230a575f9"}],"keystone/tests/unit/test_ldap_tls_livetest.py":[{"author":{"_account_id":8116,"name":"John Dennis","email":"jdennis@redhat.com","username":"jdennis"},"change_message_id":"26f3aa6e4061d330c7e4e0de100aba15c026deec","unresolved":false,"context_lines":[{"line_number":28,"context_line":"PROVIDERS \u003d provider_api.ProviderAPIs"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"def create_object(dn, attrs):"},{"line_number":32,"context_line":"    if PY2:"},{"line_number":33,"context_line":"        # NOTE: Once https://github.com/python-ldap/python-ldap/issues/249"},{"line_number":34,"context_line":"        # is released, we can pass bytes_strictness\u003d\u0027warn\u0027 as a parameter to"}],"source_content_type":"text/x-python","patch_set":9,"id":"bfdaf3ff_6821b2fb","line":31,"updated":"2019-01-14 15:59:21.000000000","message":"FYI, this was just fixed upstream.","commit_id":"3f2ef1361b3ddaf6b256771f7d2c9de230a575f9"}]}
