)]}'
{"neutron/db/common_db_mixin.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"abfa98e081aaf12f89e65d1056ce0e4037fee4b4","unresolved":false,"context_lines":[{"line_number":190,"context_line":"            for component_model in model.model_map.values():"},{"line_number":191,"context_line":"                query \u003d self._apply_filters_to_query(query, component_model,"},{"line_number":192,"context_line":"                                                     filters, context)"},{"line_number":193,"context_line":"            return query"},{"line_number":194,"context_line":"        if filters:"},{"line_number":195,"context_line":"            for key, value in six.iteritems(filters):"},{"line_number":196,"context_line":"                column \u003d getattr(model, key, None)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_f6af0ae1","line":193,"updated":"2015-11-23 21:58:21.000000000","message":"Not bad.\nI could think of several alternatives, but this is decent enough and documented rather well in code.","commit_id":"ec2688b386df52f73b3b2977107f2fc29f2f36bd"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"5933b576e718d6ec125e845375e000a5981b9ca9","unresolved":false,"context_lines":[{"line_number":188,"context_line":"            # NOTE(kevinbenton): a unionmodel is made up of multiple tables so"},{"line_number":189,"context_line":"            # we apply the filter to each table"},{"line_number":190,"context_line":"            for component_model in model.model_map.values():"},{"line_number":191,"context_line":"                query \u003d self._apply_filters_to_query(query, component_model,"},{"line_number":192,"context_line":"                                                     filters, context)"},{"line_number":193,"context_line":"            return query"},{"line_number":194,"context_line":"        if filters:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_24a69153","line":191,"updated":"2015-11-26 17:34:23.000000000","message":"it implies we should ensure that a filter applies at most to one table, ie: that there is not 2 columns with the same name in the unionmodel","commit_id":"35beca53277d187af0ade05466e81699c6575b07"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"2a8bc2d63ec9d59645ca34d31f4d6d5cc3ead3e9","unresolved":false,"context_lines":[{"line_number":188,"context_line":"            # NOTE(kevinbenton): a unionmodel is made up of multiple tables so"},{"line_number":189,"context_line":"            # we apply the filter to each table"},{"line_number":190,"context_line":"            for component_model in model.model_map.values():"},{"line_number":191,"context_line":"                query \u003d self._apply_filters_to_query(query, component_model,"},{"line_number":192,"context_line":"                                                     filters, context)"},{"line_number":193,"context_line":"            return query"},{"line_number":194,"context_line":"        if filters:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_ad00dd02","line":191,"in_reply_to":"9a8ffd7b_24a69153","updated":"2015-11-29 16:36:51.000000000","message":"we do want it to apply to both tables though.\n\ne.g. If I ask the server for rbac policies that match a given id, the filter needs to go on each policy table. Otherwise it would return all of the rows from an unfiltered table.","commit_id":"35beca53277d187af0ade05466e81699c6575b07"}],"neutron/tests/api/admin/test_shared_network_extension.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"ef3940aedf6265a919d5c91e942d12fa400570bb","unresolved":false,"context_lines":[{"line_number":318,"context_line":""},{"line_number":319,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":320,"context_line":"    @test.idempotent_id(\u0027e7bcb1ea-4877-4266-87bb-76f68b421f31\u0027)"},{"line_number":321,"context_line":"    def test_filter_policies(self):"},{"line_number":322,"context_line":"        net \u003d self.create_network()"},{"line_number":323,"context_line":"        pol1 \u003d self.client.create_rbac_policy("},{"line_number":324,"context_line":"            object_type\u003d\u0027network\u0027, object_id\u003dnet[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_a32c3bac","line":321,"updated":"2015-11-24 18:09:21.000000000","message":"tests are currently being skipped, are you sure this doesn\u0027t bomb out? :)","commit_id":"35beca53277d187af0ade05466e81699c6575b07"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"7cc12884c00a32813b0d2ac89a5549f7eaa27e9d","unresolved":false,"context_lines":[{"line_number":318,"context_line":""},{"line_number":319,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":320,"context_line":"    @test.idempotent_id(\u0027e7bcb1ea-4877-4266-87bb-76f68b421f31\u0027)"},{"line_number":321,"context_line":"    def test_filter_policies(self):"},{"line_number":322,"context_line":"        net \u003d self.create_network()"},{"line_number":323,"context_line":"        pol1 \u003d self.client.create_rbac_policy("},{"line_number":324,"context_line":"            object_type\u003d\u0027network\u0027, object_id\u003dnet[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_2fa10aaa","line":321,"in_reply_to":"9a8ffd7b_a32c3bac","updated":"2015-11-24 19:00:09.000000000","message":"yes, i verified it locally","commit_id":"35beca53277d187af0ade05466e81699c6575b07"}]}
