)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"cd0ceb603cb7f4726e0e5cd11a9b820f2fcd13a1","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Now that the RequestSpec provides a field for a requested destination, we could"},{"line_number":10,"context_line":"check it and only provide the related HostState if the request is okay for"},{"line_number":11,"context_line":"verifying the destination by the scheduler and leave the filters say if they"},{"line_number":12,"context_line":"are okay."},{"line_number":13,"context_line":"For the moment, nothing is setting this field but the next patch will provide"},{"line_number":14,"context_line":"an API-level modification for putting it if the provided destination exists"},{"line_number":15,"context_line":"(and changing the behaviour if the admin provides the host field for evacuate"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"dab17558_a3c2c431","line":12,"updated":"2016-05-17 18:23:43.000000000","message":"This first sentence is a bit confusing; perhaps you could rephrase? In particular, what do you mean by \"if the request is okay for verifying the destination by the scheduler\"? Also \"and leave the filters say if they are okay\" is a bit oddly worded.","commit_id":"907515f32ace909ae1a5cf766a5e6f37dec21132"}],"nova/scheduler/host_manager.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"cd0ceb603cb7f4726e0e5cd11a9b820f2fcd13a1","unresolved":false,"context_lines":[{"line_number":514,"context_line":"                LOG.info(_LI(\u0027Host filter only checking host %(host)s and \u0027"},{"line_number":515,"context_line":"                             \u0027node %(node)s\u0027) % {\u0027host\u0027: host, \u0027node\u0027: node})"},{"line_number":516,"context_line":"            else:"},{"line_number":517,"context_line":"                # NOTE(sbauza): The API level should prevent to provide a wrong"},{"line_number":518,"context_line":"                # destination but let\u0027s make sure a wrong destination doesn\u0027t"},{"line_number":519,"context_line":"                # trample the scheduler still."},{"line_number":520,"context_line":"                LOG.info(_LI(\u0027No hosts matched due to not matching requested \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"dab17558_83bd00b3","line":517,"updated":"2016-05-17 18:23:43.000000000","message":"s/should prevent to provide/should prevent the user from providing/","commit_id":"907515f32ace909ae1a5cf766a5e6f37dec21132"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"cd0ceb603cb7f4726e0e5cd11a9b820f2fcd13a1","unresolved":false,"context_lines":[{"line_number":520,"context_line":"                LOG.info(_LI(\u0027No hosts matched due to not matching requested \u0027"},{"line_number":521,"context_line":"                             \u0027destination (%(host)s, %(node)s)\u0027"},{"line_number":522,"context_line":"                             ) % {\u0027host\u0027: host, \u0027node\u0027: node})"},{"line_number":523,"context_line":"            return iter(requested_nodes)"},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"        ignore_hosts \u003d spec_obj.ignore_hosts or []"},{"line_number":526,"context_line":"        force_hosts \u003d spec_obj.force_hosts or []"}],"source_content_type":"text/x-python","patch_set":7,"id":"dab17558_e3de8c0f","line":523,"updated":"2016-05-17 18:23:43.000000000","message":"Any reason you are returning iter(requested_nodes) instead of just requested_nodes?","commit_id":"907515f32ace909ae1a5cf766a5e6f37dec21132"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"611b087f4f9354cd02c65a1a67784fc9b4de1acd","unresolved":false,"context_lines":[{"line_number":520,"context_line":"                LOG.info(_LI(\u0027No hosts matched due to not matching requested \u0027"},{"line_number":521,"context_line":"                             \u0027destination (%(host)s, %(node)s)\u0027"},{"line_number":522,"context_line":"                             ) % {\u0027host\u0027: host, \u0027node\u0027: node})"},{"line_number":523,"context_line":"            return iter(requested_nodes)"},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"        ignore_hosts \u003d spec_obj.ignore_hosts or []"},{"line_number":526,"context_line":"        force_hosts \u003d spec_obj.force_hosts or []"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_d3caf0a0","line":523,"in_reply_to":"dab17558_e3de8c0f","updated":"2016-05-18 19:26:57.000000000","message":"Because hosts is an iterator, so we should still return another iterator instead of a list.","commit_id":"907515f32ace909ae1a5cf766a5e6f37dec21132"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5a6fe291039e4cb8f68b8ea2fefe75088f15e579","unresolved":false,"context_lines":[{"line_number":525,"context_line":"        ignore_hosts \u003d spec_obj.ignore_hosts or []"},{"line_number":526,"context_line":"        force_hosts \u003d spec_obj.force_hosts or []"},{"line_number":527,"context_line":"        force_nodes \u003d spec_obj.force_nodes or []"},{"line_number":528,"context_line":"        requested_node \u003d spec_obj.requested_destination"},{"line_number":529,"context_line":""},{"line_number":530,"context_line":"        if requested_node is not None:"},{"line_number":531,"context_line":"            # NOTE(sbauza): Reduce the long list of hosts into a small one"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_710c0043","line":528,"updated":"2016-05-18 10:48:47.000000000","message":"should this be host rather than node... or both... hmm, this is messy in here.","commit_id":"907515f32ace909ae1a5cf766a5e6f37dec21132"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"05b080503280ca7155560717d71b24f23b49c52e","unresolved":false,"context_lines":[{"line_number":525,"context_line":"        ignore_hosts \u003d spec_obj.ignore_hosts or []"},{"line_number":526,"context_line":"        force_hosts \u003d spec_obj.force_hosts or []"},{"line_number":527,"context_line":"        force_nodes \u003d spec_obj.force_nodes or []"},{"line_number":528,"context_line":"        requested_node \u003d spec_obj.requested_destination"},{"line_number":529,"context_line":""},{"line_number":530,"context_line":"        if requested_node is not None:"},{"line_number":531,"context_line":"            # NOTE(sbauza): Reduce the long list of hosts into a small one"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_1c2b0b32","line":528,"in_reply_to":"bab6814e_710c0043","updated":"2016-05-18 10:55:09.000000000","message":"ignore me, I see now.","commit_id":"907515f32ace909ae1a5cf766a5e6f37dec21132"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"cd0ceb603cb7f4726e0e5cd11a9b820f2fcd13a1","unresolved":false,"context_lines":[{"line_number":530,"context_line":"        if requested_node is not None:"},{"line_number":531,"context_line":"            # NOTE(sbauza): Reduce the long list of hosts into a small one"},{"line_number":532,"context_line":"            # before checking any ignored host or forced one so that the"},{"line_number":533,"context_line":"            # iterator would be parsed quickly once."},{"line_number":534,"context_line":"            hosts \u003d _get_hosts_matching_request(hosts, requested_node)"},{"line_number":535,"context_line":"        if ignore_hosts or force_hosts or force_nodes:"},{"line_number":536,"context_line":"            # NOTE(deva): we can\u0027t assume \"host\" is unique because"}],"source_content_type":"text/x-python","patch_set":7,"id":"dab17558_c3e1c8d1","line":533,"updated":"2016-05-17 18:23:43.000000000","message":"iterators aren\u0027t parsed... perhaps you mean to say \"reduce a potentially long set of hosts as much as possible to any requested destination nodes before passing the list to the filters\"?","commit_id":"907515f32ace909ae1a5cf766a5e6f37dec21132"}],"nova/tests/unit/scheduler/test_host_manager.py":[{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"492c2adf5f51102e8ceed2a5f5cae65c5f9231cd","unresolved":false,"context_lines":[{"line_number":222,"context_line":"                fake_properties)"},{"line_number":223,"context_line":"        self._verify_result(info, result)"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"    def test_get_filtered_hosts_with_requested_destination(self):"},{"line_number":226,"context_line":"        dest \u003d objects.RequestedDestination(host\u003d\u0027fake_host1\u0027,"},{"line_number":227,"context_line":"                                            node\u003d\u0027fake-node\u0027)"},{"line_number":228,"context_line":"        fake_properties \u003d objects.RequestSpec(requested_destination\u003ddest,"},{"line_number":229,"context_line":"                                              ignore_hosts\u003d[],"},{"line_number":230,"context_line":"                                              instance_uuid\u003d\u0027fake-uuid1\u0027,"},{"line_number":231,"context_line":"                                              force_hosts\u003d[],"},{"line_number":232,"context_line":"                                              force_nodes\u003d[])"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"        info \u003d {\u0027expected_objs\u0027: [self.fake_hosts[0]],"},{"line_number":235,"context_line":"                \u0027expected_fprops\u0027: fake_properties}"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        self._mock_get_filtered_hosts(info)"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"        result \u003d self.host_manager.get_filtered_hosts(self.fake_hosts,"},{"line_number":240,"context_line":"                fake_properties)"},{"line_number":241,"context_line":"        self._verify_result(info, result)"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"    def test_get_filtered_hosts_with_wrong_requested_destination(self):"},{"line_number":244,"context_line":"        dest \u003d objects.RequestedDestination(host\u003d\u0027dummy\u0027, node\u003d\u0027fake-node\u0027)"},{"line_number":245,"context_line":"        fake_properties \u003d objects.RequestSpec(requested_destination\u003ddest,"},{"line_number":246,"context_line":"                                              ignore_hosts\u003d[],"},{"line_number":247,"context_line":"                                              instance_uuid\u003d\u0027fake-uuid1\u0027,"},{"line_number":248,"context_line":"                                              force_hosts\u003d[],"},{"line_number":249,"context_line":"                                              force_nodes\u003d[])"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        info \u003d {\u0027expected_objs\u0027: [],"},{"line_number":252,"context_line":"                \u0027expected_fprops\u0027: fake_properties}"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        self._mock_get_filtered_hosts(info)"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        result \u003d self.host_manager.get_filtered_hosts(self.fake_hosts,"},{"line_number":257,"context_line":"                fake_properties)"},{"line_number":258,"context_line":"        self._verify_result(info, result)"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    def test_get_filtered_hosts_with_ignore(self):"},{"line_number":261,"context_line":"        fake_properties \u003d objects.RequestSpec("}],"source_content_type":"text/x-python","patch_set":8,"id":"bab6814e_f94d409a","line":258,"range":{"start_line":225,"start_character":4,"end_line":258,"end_character":41},"updated":"2016-05-19 08:47:46.000000000","message":"Could you extract the common part of these tests to a method? They seem to only differ in the destination host and the \u0027expected_objs\u0027 in info.","commit_id":"32327d4dae16a0a7b08499ae7c5b80a68074ab55"}]}
