)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"52cdb6349de14208516f9210da304615171bf379","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Parent:     b6442abc (placement: support GET /allocation_candidates)"},{"line_number":2,"context_line":"Author:     Jay Pipes \u003cjaypipes@gmail.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2017-06-21 16:02:57 -0400"},{"line_number":4,"context_line":"Commit:     Jay Pipes \u003cjaypipes@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f201791_6303dcb9","line":1,"updated":"2017-06-23 16:17:42.000000000","message":"Commit message width","commit_id":"fe7558069b26850fbe04742d921ad93f6221b3b3"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5f58fc7b49258d2b8c72bd03c288c714dceb0872","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Parent:     b6442abc (placement: support GET /allocation_candidates)"},{"line_number":2,"context_line":"Author:     Jay Pipes \u003cjaypipes@gmail.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2017-06-21 16:02:57 -0400"},{"line_number":4,"context_line":"Commit:     Jay Pipes \u003cjaypipes@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f201791_43f9004b","line":1,"in_reply_to":"5f201791_6303dcb9","updated":"2017-06-23 16:22:22.000000000","message":"Done","commit_id":"fe7558069b26850fbe04742d921ad93f6221b3b3"}],"nova/scheduler/driver.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"91f939758c8bc9b42c8c6e970d4e60cfdd05a4bc","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        \"\"\"Must override select_destinations method."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        :return: A list of dicts with \u0027uuid\u0027, \u0027host\u0027, \u0027nodename\u0027 and \u0027limits\u0027"},{"line_number":62,"context_line":"                 as keys that satisfies the request_spec and filter_properties."},{"line_number":63,"context_line":"        \"\"\""},{"line_number":64,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f201791_8cd93223","line":62,"updated":"2017-06-27 15:31:02.000000000","message":"FWIW, I\u0027m not really sure why we return a list of these things and not some sort of more useful model. I\u0027m cool with just adding this for now, but I kinda wonder why we don\u0027t just start returning a HostState or something like it. Then we can avoid this in the future when we need something else.","commit_id":"4c1d55137d00fa8e7288a85a072536dccadd29d2"}],"nova/scheduler/filter_scheduler.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"52cdb6349de14208516f9210da304615171bf379","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            raise exception.NoValidHost(reason\u003dreason)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        dests \u003d [dict("},{"line_number":81,"context_line":"            uuid\u003dhost.obj.uuid,"},{"line_number":82,"context_line":"            host\u003dhost.obj.host,"},{"line_number":83,"context_line":"            nodename\u003dhost.obj.nodename,"},{"line_number":84,"context_line":"            limits\u003dhost.obj.limits"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f201791_83795830","line":81,"range":{"start_line":81,"start_character":12,"end_line":81,"end_character":16},"updated":"2017-06-23 16:17:42.000000000","message":"Hate to be picky, but it wasn\u0027t clear until I got here that the UUID was the UUID of the host.  I _kinda_ suspected, because it doesn\u0027t make sense for a \"HostState\" to have a UUID.  But naming the field e.g. \u0027host_uuid\u0027 would make it much clearer.","commit_id":"fe7558069b26850fbe04742d921ad93f6221b3b3"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5f58fc7b49258d2b8c72bd03c288c714dceb0872","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            raise exception.NoValidHost(reason\u003dreason)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        dests \u003d [dict("},{"line_number":81,"context_line":"            uuid\u003dhost.obj.uuid,"},{"line_number":82,"context_line":"            host\u003dhost.obj.host,"},{"line_number":83,"context_line":"            nodename\u003dhost.obj.nodename,"},{"line_number":84,"context_line":"            limits\u003dhost.obj.limits"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f201791_a3b21493","line":81,"range":{"start_line":81,"start_character":12,"end_line":81,"end_character":16},"in_reply_to":"5f201791_83795830","updated":"2017-06-23 16:22:22.000000000","message":"err, I think I\u0027ll keep it uuid... I think it\u0027s pretty clear it refers to the host...","commit_id":"fe7558069b26850fbe04742d921ad93f6221b3b3"}],"nova/scheduler/host_manager.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"52cdb6349de14208516f9210da304615171bf379","unresolved":false,"context_lines":[{"line_number":107,"context_line":"    \"\"\""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def __init__(self, uuid, host, node, cell_uuid):"},{"line_number":110,"context_line":"        self.uuid \u003d uuid"},{"line_number":111,"context_line":"        self.host \u003d host"},{"line_number":112,"context_line":"        self.nodename \u003d node"},{"line_number":113,"context_line":"        self._lock_name \u003d (host, node)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f201791_e3992c6e","line":110,"range":{"start_line":110,"start_character":13,"end_line":110,"end_character":17},"updated":"2017-06-23 16:17:42.000000000","message":"Ditto (`host_uuid`)","commit_id":"fe7558069b26850fbe04742d921ad93f6221b3b3"}],"nova/tests/unit/scheduler/fakes.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"52cdb6349de14208516f9210da304615171bf379","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"class FakeHostState(host_manager.HostState):"},{"line_number":163,"context_line":"    def __init__(self, uuid, host, node, attribute_dict, instances\u003dNone):"},{"line_number":164,"context_line":"        super(FakeHostState, self).__init__(uuid, host, node, None)"},{"line_number":165,"context_line":"        if instances:"},{"line_number":166,"context_line":"            self.instances \u003d {inst.uuid: inst for inst in instances}"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f201791_032f88f6","line":163,"range":{"start_line":163,"start_character":23,"end_line":163,"end_character":27},"updated":"2017-06-23 16:17:42.000000000","message":"Just a thought, it would make the patch smaller if you left this UUID out and just generated it within this initializer (e.g. `getattr(uuidsentinel, host)`).","commit_id":"fe7558069b26850fbe04742d921ad93f6221b3b3"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5f58fc7b49258d2b8c72bd03c288c714dceb0872","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"class FakeHostState(host_manager.HostState):"},{"line_number":163,"context_line":"    def __init__(self, uuid, host, node, attribute_dict, instances\u003dNone):"},{"line_number":164,"context_line":"        super(FakeHostState, self).__init__(uuid, host, node, None)"},{"line_number":165,"context_line":"        if instances:"},{"line_number":166,"context_line":"            self.instances \u003d {inst.uuid: inst for inst in instances}"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f201791_e36dac04","line":163,"range":{"start_line":163,"start_character":23,"end_line":163,"end_character":27},"in_reply_to":"5f201791_032f88f6","updated":"2017-06-23 16:22:22.000000000","message":"Yeah, I considered that.\n\nI\u0027m going to need to refer to this UUID value to match the compute node object in future patches, so unfortunately I needed to do this.","commit_id":"fe7558069b26850fbe04742d921ad93f6221b3b3"}],"nova/tests/unit/scheduler/test_host_manager.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"91384fb89fac0dab48c672185caecd71739756a2","unresolved":false,"context_lines":[{"line_number":1008,"context_line":"              host_manager.HostState("},{"line_number":1009,"context_line":"                uuids.cn3, \u0027host3\u0027, \u0027node3\u0027, uuids.cell),"},{"line_number":1010,"context_line":"              host_manager.HostState("},{"line_number":1011,"context_line":"                uuids.cn4, \u0027host4\u0027, \u0027node4\u0027, uuids.cell)"},{"line_number":1012,"context_line":"            ]"},{"line_number":1013,"context_line":""},{"line_number":1014,"context_line":"    @mock.patch(\u0027nova.objects.ServiceList.get_by_binary\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f201791_3fd33e06","line":1011,"updated":"2017-06-28 12:53:40.000000000","message":"No trailing comma here?  Hypocrite.","commit_id":"4c1d55137d00fa8e7288a85a072536dccadd29d2"}],"nova/tests/unit/scheduler/test_ironic_host_manager.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"91384fb89fac0dab48c672185caecd71739756a2","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                \"dummy\","},{"line_number":72,"context_line":"                \"dummy\","},{"line_number":73,"context_line":"                uuids.cell)"},{"line_number":74,"context_line":"        )"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    @mock.patch(\u0027nova.objects.ServiceList.get_by_binary\u0027)"},{"line_number":77,"context_line":"    @mock.patch(\u0027nova.objects.ComputeNodeList.get_all\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f201791_5fb39ae9","line":74,"range":{"start_line":74,"start_character":0,"end_line":74,"end_character":9},"updated":"2017-06-28 12:53:40.000000000","message":"^","commit_id":"4c1d55137d00fa8e7288a85a072536dccadd29d2"}],"nova/tests/unit/scheduler/weights/test_weights_affinity.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"91f939758c8bc9b42c8c6e970d4e60cfdd05a4bc","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def _get_all_hosts(self):"},{"line_number":49,"context_line":"        host_values \u003d ["},{"line_number":50,"context_line":"            ("},{"line_number":51,"context_line":"                uuids.host1,"},{"line_number":52,"context_line":"                \u0027host1\u0027, \u0027node1\u0027, {\u0027instances\u0027: {"},{"line_number":53,"context_line":"                \u0027member1\u0027: mock.sentinel,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f201791_ec5d4679","line":50,"updated":"2017-06-27 15:31:02.000000000","message":"Um, I can haz my line back please? kthx.","commit_id":"4c1d55137d00fa8e7288a85a072536dccadd29d2"}],"nova/tests/unit/scheduler/weights/test_weights_disk.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"91f939758c8bc9b42c8c6e970d4e60cfdd05a4bc","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def _get_all_hosts(self):"},{"line_number":39,"context_line":"        host_values \u003d ["},{"line_number":40,"context_line":"            ("},{"line_number":41,"context_line":"                uuids.host1,"},{"line_number":42,"context_line":"                \u0027host1\u0027, \u0027node1\u0027, {\u0027free_disk_mb\u0027: 5120}"},{"line_number":43,"context_line":"            ),"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f201791_ac53ce6a","line":40,"updated":"2017-06-27 15:31:02.000000000","message":"Why do you hate parens Jay? Why?","commit_id":"4c1d55137d00fa8e7288a85a072536dccadd29d2"}],"nova/tests/unit/scheduler/weights/test_weights_ioopsweight.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"91f939758c8bc9b42c8c6e970d4e60cfdd05a4bc","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def _get_all_hosts(self):"},{"line_number":38,"context_line":"        host_values \u003d ["},{"line_number":39,"context_line":"            ("},{"line_number":40,"context_line":"                uuids.host1,"},{"line_number":41,"context_line":"                \u0027host1\u0027, \u0027node1\u0027, {\u0027num_io_ops\u0027: 1}"},{"line_number":42,"context_line":"            ),"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f201791_4ccafa1a","line":39,"updated":"2017-06-27 15:31:02.000000000","message":"WHY??","commit_id":"4c1d55137d00fa8e7288a85a072536dccadd29d2"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"91f939758c8bc9b42c8c6e970d4e60cfdd05a4bc","unresolved":false,"context_lines":[{"line_number":39,"context_line":"            ("},{"line_number":40,"context_line":"                uuids.host1,"},{"line_number":41,"context_line":"                \u0027host1\u0027, \u0027node1\u0027, {\u0027num_io_ops\u0027: 1}"},{"line_number":42,"context_line":"            ),"},{"line_number":43,"context_line":"            ("},{"line_number":44,"context_line":"                uuids.host2,"},{"line_number":45,"context_line":"                \u0027host2\u0027, \u0027node2\u0027, {\u0027num_io_ops\u0027: 2}"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f201791_2ccd7e30","line":42,"updated":"2017-06-27 15:31:02.000000000","message":"Dear god WHY?","commit_id":"4c1d55137d00fa8e7288a85a072536dccadd29d2"}]}
