)]}'
{"keystone/common/cache/backends/mongo.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2d7cd8db137e59f7bc5b12c18794feaeb9380b8e","unresolved":false,"context_lines":[{"line_number":451,"context_line":"        doc_date \u003d self._get_doc_date()"},{"line_number":452,"context_line":"        insert_refs \u003d []"},{"line_number":453,"context_line":"        update_refs \u003d []"},{"line_number":454,"context_line":"        existing_docs \u003d self._get_results_as_dict(list(mapping.keys()))"},{"line_number":455,"context_line":"        for key, value in mapping.items():"},{"line_number":456,"context_line":"            ref \u003d self._get_cache_entry(key, value.payload, value.metadata,"},{"line_number":457,"context_line":"                                        doc_date)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_350f23e3","line":454,"updated":"2015-04-30 12:17:11.000000000","message":"seems like _get_results_as_dict should change to accept an iterator.","commit_id":"ebbc9a567890bdd673426a625629288807ff1c43"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"76bd40457003c40b49ae5b032e7032882d95bbed","unresolved":false,"context_lines":[{"line_number":451,"context_line":"        doc_date \u003d self._get_doc_date()"},{"line_number":452,"context_line":"        insert_refs \u003d []"},{"line_number":453,"context_line":"        update_refs \u003d []"},{"line_number":454,"context_line":"        existing_docs \u003d self._get_results_as_dict(list(mapping.keys()))"},{"line_number":455,"context_line":"        for key, value in mapping.items():"},{"line_number":456,"context_line":"            ref \u003d self._get_cache_entry(key, value.payload, value.metadata,"},{"line_number":457,"context_line":"                                        doc_date)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_b2bfa5fa","line":454,"in_reply_to":"3acd31a7_350f23e3","updated":"2015-05-01 14:33:18.000000000","message":"I would prefer to keep it consistent by only modifying the places where we do .keys() .items() or .values(), the methods which are supposed to receive lists wouldn\u0027t change.","commit_id":"ebbc9a567890bdd673426a625629288807ff1c43"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"880bb92666166b5e6e7336ea4e739dfd46b4a3b3","unresolved":false,"context_lines":[{"line_number":451,"context_line":"        doc_date \u003d self._get_doc_date()"},{"line_number":452,"context_line":"        insert_refs \u003d []"},{"line_number":453,"context_line":"        update_refs \u003d []"},{"line_number":454,"context_line":"        existing_docs \u003d self._get_results_as_dict(list(mapping.keys()))"},{"line_number":455,"context_line":"        for key, value in mapping.items():"},{"line_number":456,"context_line":"            ref \u003d self._get_cache_entry(key, value.payload, value.metadata,"},{"line_number":457,"context_line":"                                        doc_date)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_19d0961e","line":454,"in_reply_to":"3acd31a7_350f23e3","updated":"2015-05-04 18:59:14.000000000","message":"We could, but then we\u0027d just be moving the list() into it. Either way is fine.","commit_id":"ebbc9a567890bdd673426a625629288807ff1c43"}],"keystone/common/ldap/core.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2d7cd8db137e59f7bc5b12c18794feaeb9380b8e","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        raise ValueError("},{"line_number":214,"context_line":"            _(\u0027Invalid LDAP scope: %(scope)s. Choose one of: %(options)s\u0027) % {"},{"line_number":215,"context_line":"                \u0027scope\u0027: scope,"},{"line_number":216,"context_line":"                \u0027options\u0027: \u0027, \u0027.join(list(LDAP_SCOPES.keys()))})"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"def prep_case_insensitive(value):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_15e2e703","line":216,"updated":"2015-04-30 12:17:11.000000000","message":"iterator doesn\u0027t work here?","commit_id":"ebbc9a567890bdd673426a625629288807ff1c43"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"880bb92666166b5e6e7336ea4e739dfd46b4a3b3","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        raise ValueError("},{"line_number":214,"context_line":"            _(\u0027Invalid LDAP scope: %(scope)s. Choose one of: %(options)s\u0027) % {"},{"line_number":215,"context_line":"                \u0027scope\u0027: scope,"},{"line_number":216,"context_line":"                \u0027options\u0027: \u0027, \u0027.join(list(LDAP_SCOPES.keys()))})"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"def prep_case_insensitive(value):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_19977649","line":216,"in_reply_to":"3acd31a7_15e2e703","updated":"2015-05-04 18:59:14.000000000","message":"Done","commit_id":"ebbc9a567890bdd673426a625629288807ff1c43"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"7b9e92be7bd113b157672292fc0071367bebe1ee","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        raise ValueError("},{"line_number":214,"context_line":"            _(\u0027Invalid LDAP scope: %(scope)s. Choose one of: %(options)s\u0027) % {"},{"line_number":215,"context_line":"                \u0027scope\u0027: scope,"},{"line_number":216,"context_line":"                \u0027options\u0027: \u0027, \u0027.join(list(LDAP_SCOPES.keys()))})"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"def prep_case_insensitive(value):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_d75a1350","line":216,"in_reply_to":"3acd31a7_15e2e703","updated":"2015-05-01 14:13:48.000000000","message":"looks like it should... \n\nhttp://cdn.pasteraw.com/lx7lurx3roxooka05pgdu7ihl013zi9","commit_id":"ebbc9a567890bdd673426a625629288807ff1c43"}],"keystone/tests/unit/test_kvs.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2d7cd8db137e59f7bc5b12c18794feaeb9380b8e","unresolved":false,"context_lines":[{"line_number":467,"context_line":"                          \u0027Non-Callable\u0027)"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"    def test_kvs_memcache_set_arguments_and_memcache_expires_ttl(self):"},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"        # Test the \"set_arguments\" (arguments passed on all set calls) logic"},{"line_number":472,"context_line":"        # and the no-expiry-key modifications of set_arguments for the explicit"},{"line_number":473,"context_line":"        # memcache TTL."}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_f5a3eb9c","line":470,"updated":"2015-04-30 12:17:11.000000000","message":"revert the whitespace change","commit_id":"ebbc9a567890bdd673426a625629288807ff1c43"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"76bd40457003c40b49ae5b032e7032882d95bbed","unresolved":false,"context_lines":[{"line_number":467,"context_line":"                          \u0027Non-Callable\u0027)"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"    def test_kvs_memcache_set_arguments_and_memcache_expires_ttl(self):"},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"        # Test the \"set_arguments\" (arguments passed on all set calls) logic"},{"line_number":472,"context_line":"        # and the no-expiry-key modifications of set_arguments for the explicit"},{"line_number":473,"context_line":"        # memcache TTL."}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_f2219d4e","line":470,"in_reply_to":"3acd31a7_f5a3eb9c","updated":"2015-05-01 14:33:18.000000000","message":"++","commit_id":"ebbc9a567890bdd673426a625629288807ff1c43"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"880bb92666166b5e6e7336ea4e739dfd46b4a3b3","unresolved":false,"context_lines":[{"line_number":467,"context_line":"                          \u0027Non-Callable\u0027)"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"    def test_kvs_memcache_set_arguments_and_memcache_expires_ttl(self):"},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"        # Test the \"set_arguments\" (arguments passed on all set calls) logic"},{"line_number":472,"context_line":"        # and the no-expiry-key modifications of set_arguments for the explicit"},{"line_number":473,"context_line":"        # memcache TTL."}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_39391242","line":470,"in_reply_to":"3acd31a7_f5a3eb9c","updated":"2015-05-04 18:59:14.000000000","message":"Done","commit_id":"ebbc9a567890bdd673426a625629288807ff1c43"}],"keystone/tests/unit/test_v3_federation.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2d7cd8db137e59f7bc5b12c18794feaeb9380b8e","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        self.assertEqual(token_projects, projects_ref)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    def _check_scoped_token_attributes(self, token):"},{"line_number":112,"context_line":"        def xor_project_domain(iterable):"},{"line_number":113,"context_line":"            return sum((\u0027project\u0027 in iterable, \u0027domain\u0027 in iterable)) % 2"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        for obj in (\u0027user\u0027, \u0027catalog\u0027, \u0027expires_at\u0027, \u0027issued_at\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_d5c7cf43","line":112,"updated":"2015-04-30 12:17:11.000000000","message":"this says it takes an iterable, but it obviously doesn\u0027t.","commit_id":"ebbc9a567890bdd673426a625629288807ff1c43"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"76bd40457003c40b49ae5b032e7032882d95bbed","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        self.assertEqual(token_projects, projects_ref)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    def _check_scoped_token_attributes(self, token):"},{"line_number":112,"context_line":"        def xor_project_domain(iterable):"},{"line_number":113,"context_line":"            return sum((\u0027project\u0027 in iterable, \u0027domain\u0027 in iterable)) % 2"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        for obj in (\u0027user\u0027, \u0027catalog\u0027, \u0027expires_at\u0027, \u0027issued_at\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_b2dc4513","line":112,"in_reply_to":"3acd31a7_522a917f","updated":"2015-05-01 14:33:18.000000000","message":"++ It\u0027s small and related enough so *could* be changed in this patch IMO.","commit_id":"ebbc9a567890bdd673426a625629288807ff1c43"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"880bb92666166b5e6e7336ea4e739dfd46b4a3b3","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        self.assertEqual(token_projects, projects_ref)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    def _check_scoped_token_attributes(self, token):"},{"line_number":112,"context_line":"        def xor_project_domain(iterable):"},{"line_number":113,"context_line":"            return sum((\u0027project\u0027 in iterable, \u0027domain\u0027 in iterable)) % 2"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        for obj in (\u0027user\u0027, \u0027catalog\u0027, \u0027expires_at\u0027, \u0027issued_at\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_83b78fd7","line":112,"in_reply_to":"3acd31a7_522a917f","updated":"2015-05-04 18:59:14.000000000","message":"Done","commit_id":"ebbc9a567890bdd673426a625629288807ff1c43"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"7b9e92be7bd113b157672292fc0071367bebe1ee","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        self.assertEqual(token_projects, projects_ref)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    def _check_scoped_token_attributes(self, token):"},{"line_number":112,"context_line":"        def xor_project_domain(iterable):"},{"line_number":113,"context_line":"            return sum((\u0027project\u0027 in iterable, \u0027domain\u0027 in iterable)) % 2"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        for obj in (\u0027user\u0027, \u0027catalog\u0027, \u0027expires_at\u0027, \u0027issued_at\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_522a917f","line":112,"in_reply_to":"3acd31a7_d5c7cf43","updated":"2015-05-01 14:13:48.000000000","message":"++ \n\ncould change iterable to keys?","commit_id":"ebbc9a567890bdd673426a625629288807ff1c43"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"f730bd3c2d8c81b0c33ca2029188fa5bd2cc9c20","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    def _check_scoped_token_attributes(self, token):"},{"line_number":112,"context_line":"        def xor_project_domain(token_keys):"},{"line_number":113,"context_line":"            return sum((\u0027project\u0027 in token_keys, \u0027domain\u0027 in token_keys)) % 2"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        for obj in (\u0027user\u0027, \u0027catalog\u0027, \u0027expires_at\u0027, \u0027issued_at\u0027,"},{"line_number":116,"context_line":"                    \u0027methods\u0027, \u0027roles\u0027):"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aca2d91_b732d20e","line":113,"updated":"2015-05-08 12:39:27.000000000","message":"++ thanks!","commit_id":"c6e2beaa699631a78e0228712484c6d2b26f4acb"}]}
