)]}'
{"nova/scheduler/filters/affinity_filter.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"15e61d71c636d066e8e70f5c4b5571f3bd828ede","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        if self.policy_name not in policies:"},{"line_number":117,"context_line":"            return True"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        group_hosts \u003d (spec_obj.instance_group.members"},{"line_number":120,"context_line":"                       if spec_obj.instance_group else [])"},{"line_number":121,"context_line":"        LOG.debug(\"Group affinity: check if %(host)s in \""},{"line_number":122,"context_line":"                    \"%(configured)s\", {\u0027host\u0027: host_state.host,"}],"source_content_type":"text/x-python","patch_set":19,"id":"da20952f_20c4395d","line":119,"updated":"2015-08-29 10:08:16.000000000","message":"As my comment in previous patch, the memebers is instance, not the host. https://review.openstack.org/#/c/197912/24","commit_id":"cbc0e369a77d39bc2aed01591c8619bfa0133389"}],"nova/tests/unit/scheduler/filters/test_affinity_filters.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3249a62e9964567d1dca79ffffda55e3d43e62a7","unresolved":false,"context_lines":[{"line_number":38,"context_line":"                                \u0027different_host\u0027: [\u0027same\u0027], }}"},{"line_number":39,"context_line":"        self.assertTrue(self.filt_cls.host_passes(host, filter_properties))"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def test_affinity_different_filter_no_list_passes(self):"},{"line_number":42,"context_line":"        host \u003d fakes.FakeHostState(\u0027host1\u0027, \u0027node1\u0027, {})"},{"line_number":43,"context_line":"        host.instances \u003d {}"},{"line_number":44,"context_line":"        filter_properties \u003d {\u0027context\u0027: mock.sentinel.ctx,"}],"source_content_type":"text/x-python","patch_set":32,"id":"ba8a016a_e04099a7","side":"PARENT","line":41,"updated":"2015-11-18 07:17:29.000000000","message":"Emm... I didn\u0027t get why we remove this testcase?","commit_id":"aeae7040c7b4533fd4d5521d4c5172cb2fb598e7"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"dd1a643fcffe4348044522179ed1022e3807078a","unresolved":false,"context_lines":[{"line_number":38,"context_line":"                                \u0027different_host\u0027: [\u0027same\u0027], }}"},{"line_number":39,"context_line":"        self.assertTrue(self.filt_cls.host_passes(host, filter_properties))"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def test_affinity_different_filter_no_list_passes(self):"},{"line_number":42,"context_line":"        host \u003d fakes.FakeHostState(\u0027host1\u0027, \u0027node1\u0027, {})"},{"line_number":43,"context_line":"        host.instances \u003d {}"},{"line_number":44,"context_line":"        filter_properties \u003d {\u0027context\u0027: mock.sentinel.ctx,"}],"source_content_type":"text/x-python","patch_set":32,"id":"ba8a016a_e7c70462","side":"PARENT","line":41,"in_reply_to":"ba8a016a_e04099a7","updated":"2015-11-19 12:28:42.000000000","message":"Because if you see how we hydrate the RequestSpec object with the different_host hint, when a single hint is provided, we actually set the object by a list of one item.","commit_id":"aeae7040c7b4533fd4d5521d4c5172cb2fb598e7"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"428fb9b9883d4721000d212e4898603b9f51c8d7","unresolved":false,"context_lines":[{"line_number":38,"context_line":"                                \u0027different_host\u0027: [\u0027same\u0027], }}"},{"line_number":39,"context_line":"        self.assertTrue(self.filt_cls.host_passes(host, filter_properties))"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def test_affinity_different_filter_no_list_passes(self):"},{"line_number":42,"context_line":"        host \u003d fakes.FakeHostState(\u0027host1\u0027, \u0027node1\u0027, {})"},{"line_number":43,"context_line":"        host.instances \u003d {}"},{"line_number":44,"context_line":"        filter_properties \u003d {\u0027context\u0027: mock.sentinel.ctx,"}],"source_content_type":"text/x-python","patch_set":32,"id":"ba8a016a_92df5439","side":"PARENT","line":41,"in_reply_to":"ba8a016a_e7c70462","updated":"2015-11-19 12:42:39.000000000","message":"ah, thanks, I got it now. This tests the pass string instead list in \u0027different_host\u0027, not the \"host.instances \u003d {}\"\n\nBut maybe good to have test cases for host.instances \u003d {}, but that out of this path scope.","commit_id":"aeae7040c7b4533fd4d5521d4c5172cb2fb598e7"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3249a62e9964567d1dca79ffffda55e3d43e62a7","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                                \u0027same_host\u0027: [\u0027same\u0027], }}"},{"line_number":80,"context_line":"        self.assertTrue(self.filt_cls.host_passes(host, filter_properties))"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def test_affinity_same_filter_no_list_passes(self):"},{"line_number":83,"context_line":"        host \u003d fakes.FakeHostState(\u0027host1\u0027, \u0027node1\u0027, {})"},{"line_number":84,"context_line":"        host.instances \u003d {}"},{"line_number":85,"context_line":"        filter_properties \u003d {\u0027context\u0027: mock.sentinel.ctx,"}],"source_content_type":"text/x-python","patch_set":32,"id":"ba8a016a_2036a152","side":"PARENT","line":82,"updated":"2015-11-18 07:17:29.000000000","message":"ditto","commit_id":"aeae7040c7b4533fd4d5521d4c5172cb2fb598e7"}]}
