)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"df2d1794f0cfa3b071f39bd60bb74a0b361169cd","unresolved":false,"context_lines":[{"line_number":19,"context_line":"method to simply set the host_state.instances value to an empty dict. It"},{"line_number":20,"context_line":"also overrides the _init_instance_info() method to a no-op, since that"},{"line_number":21,"context_line":"will never be used in ironic."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Co-Authored-By: Ed Leafe \u003ced@leafe.com\u003e"},{"line_number":24,"context_line":"Change-Id: I18075fd2fd8f9f6d1d82e6cc487c9e15ebc2b1d5"},{"line_number":25,"context_line":"Closes-Bug: #1479124"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3a50d1a3_f8bf435e","line":22,"updated":"2015-07-30 20:31:36.000000000","message":"A DocImpact is worth it I guess because disabling the instance information in Ironic means that the related filters (here the SameHostFilter) would not work then.\n\nI wonder how we could make sure that people wouldn\u0027t create bugs for that because they left the related filters up and working...","commit_id":"cc15253cc42a50c6a73319fefc7327fd8c1ef9a9"}],"nova/scheduler/host_manager.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3146f52151df4548c8254ba649709941b249d4ec","unresolved":false,"context_lines":[{"line_number":591,"context_line":"        if host_info and host_info.get(\"updated\"):"},{"line_number":592,"context_line":"            inst_dict \u003d host_info[\"instances\"]"},{"line_number":593,"context_line":"        else:"},{"line_number":594,"context_line":"            if compute.hypervisor_type \u003d\u003d \"ironic\":"},{"line_number":595,"context_line":"                # Querying instances by host is a) very non-performant, as a"},{"line_number":596,"context_line":"                # host may have hundreds of instances, and b) unnecessary,"},{"line_number":597,"context_line":"                # because ironic cannot use the instance affinity filters, as"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_a1a8e38c","line":594,"updated":"2015-07-29 19:38:34.000000000","message":"Nooooooo, please don\u0027t !\n\nThat\u0027s very ugly, I don\u0027t want to see a different behaviour based on the hypervisor running behind. If we have problems with Ironic related nodes, we should rather propose to Ironic to provide a different method for the IronicHostManager IMHO.","commit_id":"a1f909146d2d53b48a868fc3c2ccc07e841cee8c"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"8ec8384e7723843d38ab720df4486517951a13ac","unresolved":false,"context_lines":[{"line_number":602,"context_line":"                inst_list \u003d objects.InstanceList.get_by_host(context,"},{"line_number":603,"context_line":"                                                             host_name)"},{"line_number":604,"context_line":"                inst_dict \u003d {instance.uuid: instance"},{"line_number":605,"context_line":"                             for instance in inst_list.objects}"},{"line_number":606,"context_line":"        host_state.instances \u003d inst_dict"},{"line_number":607,"context_line":""},{"line_number":608,"context_line":"    def _recreate_instance_info(self, context, host_name):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a50d1a3_9c57455a","line":605,"updated":"2015-07-30 00:43:51.000000000","message":"This change can be removed :)","commit_id":"c44525a923c0cc280c0af532125d04889f27ff2b"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"613d0d9fd2758f6c3b36f331f9e518fe662f961c","unresolved":false,"context_lines":[{"line_number":602,"context_line":"                inst_list \u003d objects.InstanceList.get_by_host(context,"},{"line_number":603,"context_line":"                                                             host_name)"},{"line_number":604,"context_line":"                inst_dict \u003d {instance.uuid: instance"},{"line_number":605,"context_line":"                             for instance in inst_list.objects}"},{"line_number":606,"context_line":"        host_state.instances \u003d inst_dict"},{"line_number":607,"context_line":""},{"line_number":608,"context_line":"    def _recreate_instance_info(self, context, host_name):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a50d1a3_a45d2d17","line":605,"in_reply_to":"3a50d1a3_9c57455a","updated":"2015-07-30 12:48:20.000000000","message":"Done","commit_id":"c44525a923c0cc280c0af532125d04889f27ff2b"}],"nova/scheduler/ironic_host_manager.py":[{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"8ec8384e7723843d38ab720df4486517951a13ac","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def _add_instance_info(self, context, compute, host_state):"},{"line_number":120,"context_line":"        \"\"\"Ironic hosts should not pass instance info.\"\"\""},{"line_number":121,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a50d1a3_bc5c817e","line":121,"updated":"2015-07-30 00:43:51.000000000","message":"Should this set host_state.instances \u003d {} ?","commit_id":"c44525a923c0cc280c0af532125d04889f27ff2b"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"613d0d9fd2758f6c3b36f331f9e518fe662f961c","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def _add_instance_info(self, context, compute, host_state):"},{"line_number":120,"context_line":"        \"\"\"Ironic hosts should not pass instance info.\"\"\""},{"line_number":121,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a50d1a3_a48bed67","line":121,"in_reply_to":"3a50d1a3_bc5c817e","updated":"2015-07-30 12:48:20.000000000","message":"Ugh - I have that in my code, but didn\u0027t save the change. Done.","commit_id":"c44525a923c0cc280c0af532125d04889f27ff2b"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"fbd499eb915d7bec4ae502a6f5339ee58b6383fd","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def _add_instance_info(self, context, compute, host_state):"},{"line_number":120,"context_line":"        \"\"\"Ironic hosts should not pass instance info.\"\"\""},{"line_number":121,"context_line":"        host_state.instances \u003d {}"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a50d1a3_d84fb968","line":121,"updated":"2015-07-31 16:40:33.000000000","message":"If those methods can be useful in some situations (as mentioned in the comment 2 n-cpus each one pointing a different Ironic cluster). It might make sense to add a configuration option to enable/disable it in the IronicHostManager no?\n\ne.g:\n\n def _init_inistance_info(self):\n     if CONF.enable_instance_scheduler_filters:\n         super(IronicHostManager, self)._init_instance_info()\n\n def _add_instance_info(self, context, compute, host_state):\n     if CONF.enable_instance_scheduler_filters:\n         super(IronicHostManager, self)._add_instance_info(context, compute, host_state)\n     else:\n         host_state.instances \u003d {}","commit_id":"cc15253cc42a50c6a73319fefc7327fd8c1ef9a9"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"aa7d9b41aa809d75a478e353c10179397d26d266","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def _add_instance_info(self, context, compute, host_state):"},{"line_number":120,"context_line":"        \"\"\"Ironic hosts should not pass instance info.\"\"\""},{"line_number":121,"context_line":"        host_state.instances \u003d {}"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa1b9901_d88e6d78","line":121,"in_reply_to":"3a50d1a3_d84fb968","updated":"2015-08-26 15:10:00.000000000","message":"Yeah I\u0027m not opposed to that approach using very specific and explicit Ironic-tagged flags.","commit_id":"cc15253cc42a50c6a73319fefc7327fd8c1ef9a9"}],"nova/tests/unit/scheduler/test_host_manager.py":[{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"8ec8384e7723843d38ab720df4486517951a13ac","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                                hypervisor_type\u003d\u0027ironic\u0027)]"},{"line_number":454,"context_line":"        mock_get_by_host.return_value \u003d objects.InstanceList()"},{"line_number":455,"context_line":"        self.host_manager.get_all_host_states(\u0027fake-context\u0027)"},{"line_number":456,"context_line":"        self.assertEqual(0, mock_get_by_host.call_count)"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"    @mock.patch.object(nova.objects.InstanceList, \u0027get_by_host\u0027)"},{"line_number":459,"context_line":"    @mock.patch.object(host_manager.HostState, \u0027update_from_compute_node\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a50d1a3_90f3a49f","line":456,"updated":"2015-07-30 00:43:51.000000000","message":"I assume all the changes in this file can also be dropped :)","commit_id":"c44525a923c0cc280c0af532125d04889f27ff2b"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"613d0d9fd2758f6c3b36f331f9e518fe662f961c","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                                hypervisor_type\u003d\u0027ironic\u0027)]"},{"line_number":454,"context_line":"        mock_get_by_host.return_value \u003d objects.InstanceList()"},{"line_number":455,"context_line":"        self.host_manager.get_all_host_states(\u0027fake-context\u0027)"},{"line_number":456,"context_line":"        self.assertEqual(0, mock_get_by_host.call_count)"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"    @mock.patch.object(nova.objects.InstanceList, \u0027get_by_host\u0027)"},{"line_number":459,"context_line":"    @mock.patch.object(host_manager.HostState, \u0027update_from_compute_node\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a50d1a3_64d3a560","line":456,"in_reply_to":"3a50d1a3_90f3a49f","updated":"2015-07-30 12:48:20.000000000","message":"Done","commit_id":"c44525a923c0cc280c0af532125d04889f27ff2b"}],"nova/tests/unit/scheduler/test_ironic_host_manager.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"df2d1794f0cfa3b071f39bd60bb74a0b361169cd","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        self.mox.ReplayAll()"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        self.host_manager.get_all_host_states(context)"},{"line_number":81,"context_line":"        self.assertEqual(0, mock_gbh.call_count)"},{"line_number":82,"context_line":"        host_states_map \u003d self.host_manager.host_state_map"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        self.assertEqual(len(host_states_map), 4)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a50d1a3_55716076","line":81,"updated":"2015-07-30 20:31:36.000000000","message":"well, probably nitpicking but I would prefer :\n\n  self.assertFalse(mock_gbh.called)","commit_id":"cc15253cc42a50c6a73319fefc7327fd8c1ef9a9"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"564b7fc572fa829d631c58a90155737183879dfc","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        self.mox.ReplayAll()"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        self.host_manager.get_all_host_states(context)"},{"line_number":81,"context_line":"        self.assertEqual(0, mock_gbh.call_count)"},{"line_number":82,"context_line":"        host_states_map \u003d self.host_manager.host_state_map"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        self.assertEqual(len(host_states_map), 4)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa1b9901_cbf4d5d0","line":81,"in_reply_to":"3a50d1a3_55716076","updated":"2015-08-24 13:00:29.000000000","message":"+1 but its a minor nit, not blocking on that.","commit_id":"cc15253cc42a50c6a73319fefc7327fd8c1ef9a9"}]}
