)]}'
{"nova/api/openstack/compute/contrib/hypervisors.py":[{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"610129a7e66577f07b463fc361e70fed9b50c606","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":86,"context_line":"        authorize(context)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        # NOTE(eliqiao): back-compatible with db layer hard-code admin"},{"line_number":89,"context_line":"        # permission checks"},{"line_number":90,"context_line":"        nova_context.require_admin_context(context)"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dac4157f_992bae94","line":88,"updated":"2015-04-21 13:28:54.000000000","message":"s/back/backwards/","commit_id":"50981f21a9b45ac20539b0aff036078e8b8f5675"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"610129a7e66577f07b463fc361e70fed9b50c606","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":103,"context_line":"        authorize(context)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        # NOTE(eliqiao): back-compatible with db layer hard-code admin"},{"line_number":106,"context_line":"        # permission checks"},{"line_number":107,"context_line":"        nova_context.require_admin_context(context)"},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dac4157f_7919fa87","line":105,"updated":"2015-04-21 13:28:54.000000000","message":"Ditto","commit_id":"50981f21a9b45ac20539b0aff036078e8b8f5675"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"610129a7e66577f07b463fc361e70fed9b50c606","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":154,"context_line":"        authorize(context)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        # NOTE(eliqiao): back-compatible with db layer hard-code admin"},{"line_number":157,"context_line":"        # permission checks"},{"line_number":158,"context_line":"        nova_context.require_admin_context(context)"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dac4157f_591cf676","line":156,"updated":"2015-04-21 13:28:54.000000000","message":"Ditto","commit_id":"50981f21a9b45ac20539b0aff036078e8b8f5675"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"610129a7e66577f07b463fc361e70fed9b50c606","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":175,"context_line":"        authorize(context)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        # NOTE(eliqiao): back-compatible with db layer hard-code admin"},{"line_number":178,"context_line":"        # permission checks"},{"line_number":179,"context_line":"        nova_context.require_admin_context(context)"},{"line_number":180,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dac4157f_7400e101","line":177,"updated":"2015-04-21 13:28:54.000000000","message":"Ditto","commit_id":"50981f21a9b45ac20539b0aff036078e8b8f5675"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5b4f08d62a4025be3a5ad3b2fe466483f641288e","unresolved":false,"context_lines":[{"line_number":163,"context_line":"            return dict(hypervisors\u003d[self._view_hypervisor("},{"line_number":164,"context_line":"                                     hyp,"},{"line_number":165,"context_line":"                                     self.host_api.service_get_by_compute_host("},{"line_number":166,"context_line":"                                         context, hyp.host),"},{"line_number":167,"context_line":"                                     False)"},{"line_number":168,"context_line":"                                     for hyp in hypervisors])"},{"line_number":169,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab921fb_c80ca23d","line":166,"updated":"2015-04-24 10:32:52.000000000","message":"emm...there is db call with admin hard-code permssion checks. But that will removed by https://review.openstack.org/160089\n\nhow about depend on that patch?\n\nor we expect this patch merge first, then we should remove \u0027nova_context.require_admin_context(context)\u0027, wait  https://review.openstack.org/160089 add back-compatible checks.","commit_id":"51efca0d098fdf3c34bd3fe6d34460a14a8085a6"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"a3718088dd3f64993fdd8a5520c7808a39bfd669","unresolved":false,"context_lines":[{"line_number":163,"context_line":"            return dict(hypervisors\u003d[self._view_hypervisor("},{"line_number":164,"context_line":"                                     hyp,"},{"line_number":165,"context_line":"                                     self.host_api.service_get_by_compute_host("},{"line_number":166,"context_line":"                                         context, hyp.host),"},{"line_number":167,"context_line":"                                     False)"},{"line_number":168,"context_line":"                                     for hyp in hypervisors])"},{"line_number":169,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab921fb_56c70845","line":166,"in_reply_to":"bab921fb_c80ca23d","updated":"2015-04-24 12:47:38.000000000","message":"okay, I will wait for it merge first.","commit_id":"51efca0d098fdf3c34bd3fe6d34460a14a8085a6"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5b4f08d62a4025be3a5ad3b2fe466483f641288e","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        hypervisors \u003d []"},{"line_number":187,"context_line":"        for compute_node in compute_nodes:"},{"line_number":188,"context_line":"            instances \u003d self.host_api.instance_get_all_by_host(context,"},{"line_number":189,"context_line":"                    compute_node.host)"},{"line_number":190,"context_line":"            service \u003d self.host_api.service_get_by_compute_host("},{"line_number":191,"context_line":"                context, compute_node.host)"},{"line_number":192,"context_line":"            hyp \u003d self._view_hypervisor(compute_node, service, False,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab921fb_e8576600","line":189,"updated":"2015-04-24 10:32:52.000000000","message":"this is also admin hard-code checks in the db call.","commit_id":"51efca0d098fdf3c34bd3fe6d34460a14a8085a6"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"a3718088dd3f64993fdd8a5520c7808a39bfd669","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        hypervisors \u003d []"},{"line_number":187,"context_line":"        for compute_node in compute_nodes:"},{"line_number":188,"context_line":"            instances \u003d self.host_api.instance_get_all_by_host(context,"},{"line_number":189,"context_line":"                    compute_node.host)"},{"line_number":190,"context_line":"            service \u003d self.host_api.service_get_by_compute_host("},{"line_number":191,"context_line":"                context, compute_node.host)"},{"line_number":192,"context_line":"            hyp \u003d self._view_hypervisor(compute_node, service, False,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab921fb_36aff482","line":189,"in_reply_to":"bab921fb_e8576600","updated":"2015-04-24 12:47:38.000000000","message":"yes,but this is not this patch\u0027s scope.","commit_id":"51efca0d098fdf3c34bd3fe6d34460a14a8085a6"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5b4f08d62a4025be3a5ad3b2fe466483f641288e","unresolved":false,"context_lines":[{"line_number":187,"context_line":"        for compute_node in compute_nodes:"},{"line_number":188,"context_line":"            instances \u003d self.host_api.instance_get_all_by_host(context,"},{"line_number":189,"context_line":"                    compute_node.host)"},{"line_number":190,"context_line":"            service \u003d self.host_api.service_get_by_compute_host("},{"line_number":191,"context_line":"                context, compute_node.host)"},{"line_number":192,"context_line":"            hyp \u003d self._view_hypervisor(compute_node, service, False,"},{"line_number":193,"context_line":"                                        instances)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab921fb_e820869d","line":190,"updated":"2015-04-24 10:32:52.000000000","message":"ditto","commit_id":"51efca0d098fdf3c34bd3fe6d34460a14a8085a6"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"a3718088dd3f64993fdd8a5520c7808a39bfd669","unresolved":false,"context_lines":[{"line_number":187,"context_line":"        for compute_node in compute_nodes:"},{"line_number":188,"context_line":"            instances \u003d self.host_api.instance_get_all_by_host(context,"},{"line_number":189,"context_line":"                    compute_node.host)"},{"line_number":190,"context_line":"            service \u003d self.host_api.service_get_by_compute_host("},{"line_number":191,"context_line":"                context, compute_node.host)"},{"line_number":192,"context_line":"            hyp \u003d self._view_hypervisor(compute_node, service, False,"},{"line_number":193,"context_line":"                                        instances)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab921fb_16aab070","line":190,"in_reply_to":"bab921fb_e820869d","updated":"2015-04-24 12:47:38.000000000","message":"ditto","commit_id":"51efca0d098fdf3c34bd3fe6d34460a14a8085a6"}],"nova/tests/unit/api/openstack/compute/contrib/test_hypervisors.py":[{"author":{"_account_id":642,"name":"Matt Dietz","email":"matthew.dietz@gmail.com","username":"cerberus"},"change_message_id":"fca303208672660fed0ab9eacf7b222e6ecb1ced","unresolved":false,"context_lines":[{"line_number":465,"context_line":"        self.controller \u003d hypervisors_v2.HypervisorsController(self.ext_mgr)"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"    def test_index_non_admin_back_compatible_db(self):"},{"line_number":468,"context_line":"        self.policy.set_rules(self.rule)"},{"line_number":469,"context_line":"        req \u003d self._get_request(False)"},{"line_number":470,"context_line":"        self.assertRaises(exception.AdminRequired,"},{"line_number":471,"context_line":"                          self.controller.index, req)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3acd31a7_331bb41d","line":468,"updated":"2015-04-30 15:28:06.000000000","message":"Test failure seems to be around self.rule not existing","commit_id":"45c1e34a4fe6d99b7ea9a30e1e739c86ff756d9f"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"f853365774e00e41ea0925d78c1b234333f0f3d1","unresolved":false,"context_lines":[{"line_number":465,"context_line":"        self.controller \u003d hypervisors_v2.HypervisorsController(self.ext_mgr)"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"    def test_index_non_admin_back_compatible_db(self):"},{"line_number":468,"context_line":"        self.policy.set_rules(self.rule)"},{"line_number":469,"context_line":"        req \u003d self._get_request(False)"},{"line_number":470,"context_line":"        self.assertRaises(exception.AdminRequired,"},{"line_number":471,"context_line":"                          self.controller.index, req)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3acd31a7_39422369","line":468,"in_reply_to":"3acd31a7_331bb41d","updated":"2015-05-05 00:34:40.000000000","message":"thanks matt, I don\u0027t notice your comments. something be remove when I do the rebase.","commit_id":"45c1e34a4fe6d99b7ea9a30e1e739c86ff756d9f"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"1d832a7356c513353d0b5c9401c8568adb7886ff","unresolved":false,"context_lines":[{"line_number":445,"context_line":"        self.controller \u003d hypervisors_v2.HypervisorsController(self.ext_mgr)"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"    def test_index_non_admin_back_compatible_db(self):"},{"line_number":448,"context_line":"        self.policy.set_rules(self.rule)"},{"line_number":449,"context_line":"        req \u003d self._get_request(False)"},{"line_number":450,"context_line":"        self.assertRaises(exception.AdminRequired,"},{"line_number":451,"context_line":"                          self.controller.index, req)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3acd31a7_f5fde43a","line":448,"updated":"2015-05-04 13:17:38.000000000","message":"I didn\u0027t found out where define the \u0027self.rule\u0027. And check out the unittest is failed.","commit_id":"762b93502177d2650a3b3b4e6152ade7d7dc18ca"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"85e5956e4eab497c2bb0840584f87470b77bd876","unresolved":false,"context_lines":[{"line_number":445,"context_line":"        self.controller \u003d hypervisors_v2.HypervisorsController(self.ext_mgr)"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"    def test_index_non_admin_back_compatible_db(self):"},{"line_number":448,"context_line":"        self.policy.set_rules(self.rule)"},{"line_number":449,"context_line":"        req \u003d self._get_request(False)"},{"line_number":450,"context_line":"        self.assertRaises(exception.AdminRequired,"},{"line_number":451,"context_line":"                          self.controller.index, req)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3acd31a7_997c97b6","line":448,"in_reply_to":"3acd31a7_f5fde43a","updated":"2015-05-05 00:34:46.000000000","message":"some one remove it when I do the rebase.\ntoo bad!! it is still there in PS6","commit_id":"762b93502177d2650a3b3b4e6152ade7d7dc18ca"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"51cf79365cb09f60b0cb7a4104d1adb271ea462b","unresolved":false,"context_lines":[{"line_number":446,"context_line":"        self.controller \u003d hypervisors_v2.HypervisorsController(self.ext_mgr)"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"    def test_index_non_admin_back_compatible_db(self):"},{"line_number":449,"context_line":"        self.policy.set_rules(self.rule)"},{"line_number":450,"context_line":"        req \u003d self._get_request(False)"},{"line_number":451,"context_line":"        self.assertRaises(exception.AdminRequired,"},{"line_number":452,"context_line":"                          self.controller.index, req)"}],"source_content_type":"text/x-python","patch_set":12,"id":"1aca2d91_7281234a","line":449,"updated":"2015-05-07 05:42:32.000000000","message":"All tests call\n\n self.policy.set_rules(self.rule)\n\nin this test class.\nSo how about putting it into setUp() instead of putting it in each test?","commit_id":"9767d7016fd0fcbaba812d3d42323d5ad398e4fa"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"06b09c947f46a9e41d5df50e2756838ad32e067c","unresolved":false,"context_lines":[{"line_number":446,"context_line":"        self.controller \u003d hypervisors_v2.HypervisorsController(self.ext_mgr)"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"    def test_index_non_admin_back_compatible_db(self):"},{"line_number":449,"context_line":"        self.policy.set_rules(self.rule)"},{"line_number":450,"context_line":"        req \u003d self._get_request(False)"},{"line_number":451,"context_line":"        self.assertRaises(exception.AdminRequired,"},{"line_number":452,"context_line":"                          self.controller.index, req)"}],"source_content_type":"text/x-python","patch_set":12,"id":"1aca2d91_353dd52b","line":449,"in_reply_to":"1aca2d91_7249238b","updated":"2015-05-07 06:29:34.000000000","message":"Oh, my bad.\nThis test class is inherited from HypervisorsTestV21 which contains the existing tests which doesn\u0027t need\n\n self.policy.set_rules(self.rule)\n\ncall. So if putting it into setUp(), these tests fail.\n\nSorry about that, and LGTM now.","commit_id":"9767d7016fd0fcbaba812d3d42323d5ad398e4fa"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"9cc48d9d80a34054743b4ee5adc9b560b9747cc4","unresolved":false,"context_lines":[{"line_number":446,"context_line":"        self.controller \u003d hypervisors_v2.HypervisorsController(self.ext_mgr)"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"    def test_index_non_admin_back_compatible_db(self):"},{"line_number":449,"context_line":"        self.policy.set_rules(self.rule)"},{"line_number":450,"context_line":"        req \u003d self._get_request(False)"},{"line_number":451,"context_line":"        self.assertRaises(exception.AdminRequired,"},{"line_number":452,"context_line":"                          self.controller.index, req)"}],"source_content_type":"text/x-python","patch_set":12,"id":"1aca2d91_7249238b","line":449,"in_reply_to":"1aca2d91_7281234a","updated":"2015-05-07 06:08:53.000000000","message":"hi Ken\u0027ichi,\nthanks for point me out, but I tried, that wouldn\u0027t work.\nsince every case will be reset when it get executed.\nso, we need to set the rule in each case.\n\ndoes it make sense to you?","commit_id":"9767d7016fd0fcbaba812d3d42323d5ad398e4fa"}]}
