)]}'
{"neutron/common/cache_utils.py":[{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"2d05b76fc462141c513fa6a1a3e7c524ba37df94","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    return region"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"def get_cache_region(expiration_time\u003d5):"},{"line_number":64,"context_line":"    conf \u003d cfg.ConfigOpts()"},{"line_number":65,"context_line":"    register_oslo_configs(conf)"},{"line_number":66,"context_line":"    cache_conf_dict \u003d {"}],"source_content_type":"text/x-python","patch_set":9,"id":"3ac371cc_4756b7ce","line":63,"range":{"start_line":63,"start_character":4,"end_line":63,"end_character":20},"updated":"2016-08-17 19:37:15.000000000","message":"Are we expecting consumers to use this in the future and thus are making it public?","commit_id":"4579ab8f5b64cf91b457318eaf134ac7e200734c"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"cc9660343dca1063c1bbe55ad02880fd19bd51c9","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    return region"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"def get_cache_region(expiration_time\u003d5):"},{"line_number":64,"context_line":"    conf \u003d cfg.ConfigOpts()"},{"line_number":65,"context_line":"    register_oslo_configs(conf)"},{"line_number":66,"context_line":"    cache_conf_dict \u003d {"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa7ab95a_0ba7b04f","line":63,"range":{"start_line":63,"start_character":4,"end_line":63,"end_character":20},"in_reply_to":"3ac371cc_4756b7ce","updated":"2016-08-29 08:37:10.000000000","message":"Probably not worth being a full blown public API function, it\u0027s just a helper that happen to be common for multiple places in the code.\n\nI will rename it to _get_cache_region or something along those lines.","commit_id":"4579ab8f5b64cf91b457318eaf134ac7e200734c"}],"neutron/policy.py":[{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"a250dd4497863d9949efd48e143d981907d4e768","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"_memory_region \u003d make_region().configure("},{"line_number":42,"context_line":"    \u0027dogpile.cache.memory\u0027,"},{"line_number":43,"context_line":"    expiration_time\u003d60,"},{"line_number":44,"context_line":")"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3afc51ec_4d1bf01b","line":43,"updated":"2016-03-13 19:34:28.000000000","message":"i would like a much lower default to start with. Just enough time to fulfill individual API operations (e.g. 5-10 seconds)","commit_id":"14c51d80937f733c76f0613fea62a40d0d42799e"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"d33819fa3c3df2c7b6c44160d47cec087ea34f50","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"_memory_region \u003d make_region().configure("},{"line_number":42,"context_line":"    \u0027dogpile.cache.memory\u0027,"},{"line_number":43,"context_line":"    expiration_time\u003d60,"},{"line_number":44,"context_line":")"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_255019d4","line":43,"in_reply_to":"3afc51ec_4d1bf01b","updated":"2016-06-16 21:50:07.000000000","message":"Done","commit_id":"14c51d80937f733c76f0613fea62a40d0d42799e"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"5b68e74c57eeb4272a31cdf0253c28485af7a491","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        self._configure_cache()"},{"line_number":213,"context_line":"        super(OwnerCheck, self).__init__(kind, match)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    def _configure_cache(self):"},{"line_number":216,"context_line":"        cache_conf \u003d cfg.ConfigOpts()"},{"line_number":217,"context_line":"        cache.register_oslo_configs(cache_conf)"},{"line_number":218,"context_line":"        default_conf \u003d {"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_325cba18","line":215,"updated":"2016-06-17 14:33:51.000000000","message":"This probably may use some code deduplication with the Depends-On patch...","commit_id":"d0e9a2ad6d1dc11503b31cfa06c4771318cde02d"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"0e646d8756b7fc9833e471d54bc986ec7c912d52","unresolved":false,"context_lines":[{"line_number":209,"context_line":"            raise exceptions.PolicyInitError("},{"line_number":210,"context_line":"                policy\u003d\"%s:%s\" % (kind, match),"},{"line_number":211,"context_line":"                reason\u003derr_reason)"},{"line_number":212,"context_line":"        self._cache \u003d cache._get_memory_cache_region(expiration_time\u003d5)"},{"line_number":213,"context_line":"        super(OwnerCheck, self).__init__(kind, match)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    @cache.cache_method_results"}],"source_content_type":"text/x-python","patch_set":10,"id":"7a77a97e_a86d1c9b","line":212,"range":{"start_line":212,"start_character":0,"end_line":212,"end_character":71},"updated":"2016-11-22 13:22:18.000000000","message":"nit: If _get_memory_cache_region() is called in public, it\u0027s better to remove an underscore.","commit_id":"44bf5f50d7e73fdec4c20f6834171201886784e7"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"c467ad9ecd6464ad90c32d49c3ba461b543135c3","unresolved":false,"context_lines":[{"line_number":209,"context_line":"            raise exceptions.PolicyInitError("},{"line_number":210,"context_line":"                policy\u003d\"%s:%s\" % (kind, match),"},{"line_number":211,"context_line":"                reason\u003derr_reason)"},{"line_number":212,"context_line":"        self._cache \u003d cache._get_memory_cache_region(expiration_time\u003d5)"},{"line_number":213,"context_line":"        super(OwnerCheck, self).__init__(kind, match)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    @cache.cache_method_results"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a74a57a_aa62b314","line":212,"range":{"start_line":212,"start_character":0,"end_line":212,"end_character":71},"in_reply_to":"7a77a97e_015dfe78","updated":"2016-11-23 02:48:07.000000000","message":"I\u0027m OK.","commit_id":"44bf5f50d7e73fdec4c20f6834171201886784e7"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"52d2b1f0a55db8484f0bc3da3e765e66821b5326","unresolved":false,"context_lines":[{"line_number":209,"context_line":"            raise exceptions.PolicyInitError("},{"line_number":210,"context_line":"                policy\u003d\"%s:%s\" % (kind, match),"},{"line_number":211,"context_line":"                reason\u003derr_reason)"},{"line_number":212,"context_line":"        self._cache \u003d cache._get_memory_cache_region(expiration_time\u003d5)"},{"line_number":213,"context_line":"        super(OwnerCheck, self).__init__(kind, match)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    @cache.cache_method_results"}],"source_content_type":"text/x-python","patch_set":10,"id":"7a77a97e_015dfe78","line":212,"range":{"start_line":212,"start_character":0,"end_line":212,"end_character":71},"in_reply_to":"7a77a97e_a86d1c9b","updated":"2016-11-22 17:13:30.000000000","message":"I don\u0027t want people outside neutron repo to start using it.","commit_id":"44bf5f50d7e73fdec4c20f6834171201886784e7"}],"neutron/tests/unit/plugins/ml2/test_plugin.py":[{"author":{"_account_id":13667,"name":"ZongKai LI","email":"onionpiece@163.com","username":"lzklibj"},"change_message_id":"17a79881cc71b43d93b706209d65cf37eb865540","unresolved":false,"context_lines":[{"line_number":505,"context_line":"        self.addCleanup(policy.reset)"},{"line_number":506,"context_line":"        # allow tenants to create shared networks"},{"line_number":507,"context_line":"        policy.refresh("},{"line_number":508,"context_line":"            policy_file\u003d\u0027policy-allow-shared-networks-for-tenants.json\u0027)"},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"    def _get_context(self):"},{"line_number":511,"context_line":"        # avoid applying tenant_id based filter by setting advsvc flag"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_3e6c38cd","line":508,"updated":"2016-01-25 07:23:36.000000000","message":"UT fails for no such kind of file.\nNeed to create a tmpfile, then file some example rules in it?","commit_id":"ab630471ecaf376a46e09e80e9a7acf46403bc4c"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"873a30399982e96799d35a96fa050393d2941160","unresolved":false,"context_lines":[{"line_number":505,"context_line":"        self.addCleanup(policy.reset)"},{"line_number":506,"context_line":"        # allow tenants to create shared networks"},{"line_number":507,"context_line":"        policy.refresh("},{"line_number":508,"context_line":"            policy_file\u003d\u0027policy-allow-shared-networks-for-tenants.json\u0027)"},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"    def _get_context(self):"},{"line_number":511,"context_line":"        # avoid applying tenant_id based filter by setting advsvc flag"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_09248e5b","line":508,"in_reply_to":"9a68dd71_3e6c38cd","updated":"2016-01-25 14:24:13.000000000","message":"I forgot to include it, sorry.","commit_id":"ab630471ecaf376a46e09e80e9a7acf46403bc4c"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"a250dd4497863d9949efd48e143d981907d4e768","unresolved":false,"context_lines":[{"line_number":512,"context_line":"        # avoid applying tenant_id based filter by setting advsvc flag"},{"line_number":513,"context_line":"        return context.Context(\u0027\u0027, \u0027fake\u0027, is_advsvc\u003dTrue)"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"    def _list_and_count_queries(self, resource):"},{"line_number":516,"context_line":"        return super("},{"line_number":517,"context_line":"            TestMl2DbOperationBoundsTenantRbac,"},{"line_number":518,"context_line":"            self)._list_and_count_queries(resource)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3afc51ec_2d18241d","line":515,"updated":"2016-03-13 19:34:28.000000000","message":"what is this doing?","commit_id":"14c51d80937f733c76f0613fea62a40d0d42799e"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"d33819fa3c3df2c7b6c44160d47cec087ea34f50","unresolved":false,"context_lines":[{"line_number":512,"context_line":"        # avoid applying tenant_id based filter by setting advsvc flag"},{"line_number":513,"context_line":"        return context.Context(\u0027\u0027, \u0027fake\u0027, is_advsvc\u003dTrue)"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"    def _list_and_count_queries(self, resource):"},{"line_number":516,"context_line":"        return super("},{"line_number":517,"context_line":"            TestMl2DbOperationBoundsTenantRbac,"},{"line_number":518,"context_line":"            self)._list_and_count_queries(resource)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_c55795c8","line":515,"in_reply_to":"3afc51ec_2d18241d","updated":"2016-06-16 21:50:07.000000000","message":"Done","commit_id":"14c51d80937f733c76f0613fea62a40d0d42799e"}],"neutron/tests/unit/test_policy.py":[{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"2d05b76fc462141c513fa6a1a3e7c524ba37df94","unresolved":false,"context_lines":[{"line_number":583,"context_line":"            action \u003d \"create_port:mac\""},{"line_number":584,"context_line":"            for i in range(2):"},{"line_number":585,"context_line":"                policy.enforce(self.context, action, target)"},{"line_number":586,"context_line":"        self.assertEqual(1, getter.call_count)"},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"    def _test_enforce_tenant_id_raises(self, bad_rule):"},{"line_number":589,"context_line":"        self._set_rules(admin_or_owner\u003dbad_rule)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3ac371cc_a7e20b2d","line":586,"range":{"start_line":586,"start_character":8,"end_line":586,"end_character":46},"updated":"2016-08-17 19:37:15.000000000","message":"I must be missing something.\n\nEven when I run this test without the caching in neutron.policy, getter.call_count is still 1 [1]. Based on this unit test I\u0027d expect it to be 2 without the caching in policy.py.\n\n\n\n[1] http://paste.openstack.org/show/559088/","commit_id":"4579ab8f5b64cf91b457318eaf134ac7e200734c"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"cc9660343dca1063c1bbe55ad02880fd19bd51c9","unresolved":false,"context_lines":[{"line_number":583,"context_line":"            action \u003d \"create_port:mac\""},{"line_number":584,"context_line":"            for i in range(2):"},{"line_number":585,"context_line":"                policy.enforce(self.context, action, target)"},{"line_number":586,"context_line":"        self.assertEqual(1, getter.call_count)"},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"    def _test_enforce_tenant_id_raises(self, bad_rule):"},{"line_number":589,"context_line":"        self._set_rules(admin_or_owner\u003dbad_rule)"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa7ab95a_6e13ea66","line":586,"range":{"start_line":586,"start_character":8,"end_line":586,"end_character":46},"in_reply_to":"3ac371cc_a7e20b2d","updated":"2016-08-29 08:37:10.000000000","message":"Oh right, because I reuse target, so the field is already there. I will move target initialization under the loop. Great catch, I appreciate your depth of review.","commit_id":"4579ab8f5b64cf91b457318eaf134ac7e200734c"}]}
