)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"2f9211f9882db957b2ef32d1a1ae6a8e1b488237","unresolved":false,"context_lines":[{"line_number":9,"context_line":"blueprint live-migration-to-conductor"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Before moving the control of live-migraiton into the conductor,"},{"line_number":12,"context_line":"extract the live-migraiton control logic into a separate class."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The callback to select_hosts will be replaced by a new"},{"line_number":15,"context_line":"scheduler rpc method in a later changeset."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"AAAAPX%2F%2F%2BVM%3D","line":12,"updated":"2013-06-04 20:15:51.000000000","message":"s/migraiton/migration/g","commit_id":"4ea7a1584b5931c5e74a781fe183ca172cf9cc45"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8b45d2ee4cb471bcc343c18c492583793e2b747e","unresolved":false,"context_lines":[{"line_number":9,"context_line":"blueprint live-migration-to-conductor"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Before moving the control of live-migraiton into the conductor,"},{"line_number":12,"context_line":"extract the live-migraiton control logic into a separate class."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The callback to select_hosts will be replaced by a new"},{"line_number":15,"context_line":"scheduler rpc method in a later changeset."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"AAAAPX%2F%2F86A%3D","line":12,"in_reply_to":"AAAAPX%2F%2F%2BVM%3D","updated":"2013-06-05 13:24:03.000000000","message":"stupid dyslexia hides these, fixed now.","commit_id":"4ea7a1584b5931c5e74a781fe183ca172cf9cc45"},{"author":{"_account_id":4601,"name":"Tiago Mello","email":"tmello@linux.vnet.ibm.com","username":"tmello"},"change_message_id":"5c527755f1361c8b885467bb79f81c121d3d18e6","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Extract live-migration scheduler logic from the scheduler driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Before moving the control of live-migraiton into the conductor,"},{"line_number":10,"context_line":"extract the live-migration control logic into a separate class."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"The callback to select_hosts will be replaced by a new"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"AAAAPX%2F%2F8vg%3D","line":9,"updated":"2013-06-05 13:38:45.000000000","message":"Still not fixed, right?","commit_id":"20f13dfea0f2d96f227eb12da51f72cfdc78073a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c6772c3e30714874a28292a193ba608e38b52a05","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Extract live-migration scheduler logic from the scheduler driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Before moving the control of live-migraiton into the conductor,"},{"line_number":10,"context_line":"extract the live-migration control logic into a separate class."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"The callback to select_hosts will be replaced by a new"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"AAAAPX%2F%2F8mI%3D","line":9,"in_reply_to":"AAAAPX%2F%2F8vg%3D","updated":"2013-06-05 14:47:24.000000000","message":"arse, I \u0027fixed\u0027 the wrong one.","commit_id":"20f13dfea0f2d96f227eb12da51f72cfdc78073a"}],"nova/compute/manager.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"a9c13f2b2b7aaf8b61af8ae6217ef101f25a9984","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d6 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2010 United States Government as represented by the"},{"line_number":4,"context_line":"# Administrator of the National Aeronautics and Space Administration."},{"line_number":5,"context_line":"# Copyright 2011 Justin Santa Barbara"},{"line_number":6,"context_line":"# All Rights Reserved."}],"source_content_type":"text/x-python","patch_set":26,"id":"AAAAPn%2F%2Fu8s%3D","side":"PARENT","line":3,"updated":"2013-06-24 07:07:47.000000000","message":"Is this related to this patch?","commit_id":"facf42d0bab7a4f97c654a5724189609ad185559"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d3f10d97236651dd95cce8d89e9ff93b632c94f9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d6 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2010 United States Government as represented by the"},{"line_number":4,"context_line":"# Administrator of the National Aeronautics and Space Administration."},{"line_number":5,"context_line":"# Copyright 2011 Justin Santa Barbara"},{"line_number":6,"context_line":"# All Rights Reserved."}],"source_content_type":"text/x-python","patch_set":26,"id":"AAAAPn%2F%2Fuug%3D","side":"PARENT","line":3,"in_reply_to":"AAAAPn%2F%2Fu8s%3D","updated":"2013-06-24 09:49:46.000000000","message":"opps, got carried away there.","commit_id":"facf42d0bab7a4f97c654a5724189609ad185559"}],"nova/conductor/tasks/live_migrate.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"2f9211f9882db957b2ef32d1a1ae6a8e1b488237","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def _check_compatible_with_source_hypervisor(self, destination):"},{"line_number":113,"context_line":"        oservice_ref \u003d self._get_compute_info(self.source)"},{"line_number":114,"context_line":"        dservice_ref \u003d self._get_compute_info(destination)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        orig_hypervisor \u003d oservice_ref[\u0027hypervisor_type\u0027]"},{"line_number":117,"context_line":"        dest_hypervisor \u003d dservice_ref[\u0027hypervisor_type\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAPX%2F%2F%2BU8%3D","line":114,"updated":"2013-06-04 20:15:51.000000000","message":"The difference between these two variable names is so small that I didn\u0027t catch it at first.  Maybe s/oservice_ref/orig_svc_ref/ and s/dservice_ref/dest_svc_ref/ would be in order?","commit_id":"4ea7a1584b5931c5e74a781fe183ca172cf9cc45"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8b45d2ee4cb471bcc343c18c492583793e2b747e","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def _check_compatible_with_source_hypervisor(self, destination):"},{"line_number":113,"context_line":"        oservice_ref \u003d self._get_compute_info(self.source)"},{"line_number":114,"context_line":"        dservice_ref \u003d self._get_compute_info(destination)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        orig_hypervisor \u003d oservice_ref[\u0027hypervisor_type\u0027]"},{"line_number":117,"context_line":"        dest_hypervisor \u003d dservice_ref[\u0027hypervisor_type\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAPX%2F%2F85c%3D","line":114,"in_reply_to":"AAAAPX%2F%2F%2BU8%3D","updated":"2013-06-05 13:24:03.000000000","message":"yeah, I agree, did not spot that during the cut and paste, fixed it.","commit_id":"4ea7a1584b5931c5e74a781fe183ca172cf9cc45"},{"author":{"_account_id":4601,"name":"Tiago Mello","email":"tmello@linux.vnet.ibm.com","username":"tmello"},"change_message_id":"0322966f17b7f033b6a6852509791e167247b3d0","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        self.destination \u003d destination"},{"line_number":43,"context_line":"        self.block_migration \u003d block_migration"},{"line_number":44,"context_line":"        self.disk_over_commit \u003d disk_over_commit"},{"line_number":45,"context_line":"        self.select_hosts_callback \u003d select_hosts_callback"},{"line_number":46,"context_line":"        self.source \u003d instance[\u0027host\u0027]"},{"line_number":47,"context_line":"        self.migrate_data \u003d None"},{"line_number":48,"context_line":"        self.compute_rpcapi \u003d compute_rpcapi.ComputeAPI()"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAPX%2F%2F8uw%3D","line":45,"updated":"2013-06-05 13:43:16.000000000","message":"Why can\u0027t you call scheduler_rpcapi.select_hosts now instead of having this callback? Also it assumes that the scheduler and the conductor are in the same host, right? Even though this is a temporary change....","commit_id":"20f13dfea0f2d96f227eb12da51f72cfdc78073a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c6772c3e30714874a28292a193ba608e38b52a05","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        self.destination \u003d destination"},{"line_number":43,"context_line":"        self.block_migration \u003d block_migration"},{"line_number":44,"context_line":"        self.disk_over_commit \u003d disk_over_commit"},{"line_number":45,"context_line":"        self.select_hosts_callback \u003d select_hosts_callback"},{"line_number":46,"context_line":"        self.source \u003d instance[\u0027host\u0027]"},{"line_number":47,"context_line":"        self.migrate_data \u003d None"},{"line_number":48,"context_line":"        self.compute_rpcapi \u003d compute_rpcapi.ComputeAPI()"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAPX%2F%2F8mU%3D","line":45,"in_reply_to":"AAAAPX%2F%2F8uw%3D","updated":"2013-06-05 14:47:24.000000000","message":"No, its just conductor code that is used from the scheduler.\n\nThe next change removes this (see dependent changes).","commit_id":"20f13dfea0f2d96f227eb12da51f72cfdc78073a"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"b9e441b5c9648c85ddb096e715c4050ba08ed9a5","unresolved":false,"context_lines":[{"line_number":16,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":17,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":18,"context_line":"#    under the License."},{"line_number":19,"context_line":"from oslo.config import cfg"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from nova.compute import flavors"},{"line_number":22,"context_line":"from nova.compute import power_state"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAPX%2F%2F7tg%3D","line":19,"updated":"2013-06-05 19:32:34.000000000","message":"femtonit: insert a blank line before this import…","commit_id":"c71d616093afe03b3f126284a1476f703d36bee4"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"b9e441b5c9648c85ddb096e715c4050ba08ed9a5","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        destination_info \u003d self._get_compute_info(destination)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        source_hypervisor \u003d source_info[\u0027hypervisor_type\u0027]"},{"line_number":117,"context_line":"        destionation_hypervisor \u003d destination_info[\u0027hypervisor_type\u0027]"},{"line_number":118,"context_line":"        if source_hypervisor !\u003d destionation_hypervisor:"},{"line_number":119,"context_line":"            raise exception.InvalidHypervisorType()"},{"line_number":120,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAPX%2F%2F7to%3D","line":117,"updated":"2013-06-05 19:32:34.000000000","message":"s/destionation/destination/g :)  You\u0027ve got it right in the *_info case, but the *_hypervisor case has the misspelling…","commit_id":"c71d616093afe03b3f126284a1476f703d36bee4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0904c9637a0889e0c30b14cc2c6a68066211755e","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        destination_info \u003d self._get_compute_info(destination)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        source_hypervisor \u003d source_info[\u0027hypervisor_type\u0027]"},{"line_number":117,"context_line":"        destionation_hypervisor \u003d destination_info[\u0027hypervisor_type\u0027]"},{"line_number":118,"context_line":"        if source_hypervisor !\u003d destionation_hypervisor:"},{"line_number":119,"context_line":"            raise exception.InvalidHypervisorType()"},{"line_number":120,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAPX%2F%2F6Ps%3D","line":117,"in_reply_to":"AAAAPX%2F%2F7to%3D","updated":"2013-06-06 08:20:06.000000000","message":"I must get a spell checker working on my new vim install... I am glad someone can spot these. Thank you :)","commit_id":"c71d616093afe03b3f126284a1476f703d36bee4"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"a10821b42f185e293dfa61da2b4dae8238640230","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            reason \u003d _(\"Unable to migrate %(instance_uuid)s to %(dest)s: \""},{"line_number":109,"context_line":"                       \"Lack of memory(host:%(avail)s \u003c\u003d \""},{"line_number":110,"context_line":"                       \"instance:%(mem_inst)s)\")"},{"line_number":111,"context_line":"            raise exception.MigrationPreCheckError(reason\u003dreason % locals())"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def _get_compute_info(self, host):"},{"line_number":114,"context_line":"        service_ref \u003d db.service_get_by_compute_host(self.context, host)"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAAPX%2F%2FvNs%3D","line":111,"updated":"2013-06-11 17:19:28.000000000","message":"We are deprecating use of locals() for this purpose…","commit_id":"0553533c299aeb8c5ec57bf0be9f63e5e0d1b939"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"fe5cea2f646aff3c0651f95c6a62c8a75c12d622","unresolved":false,"context_lines":[{"line_number":3,"context_line":"# Copyright (c) 2010 OpenStack Foundation"},{"line_number":4,"context_line":"# Copyright 2010 United States Government as represented by the"},{"line_number":5,"context_line":"# Administrator of the National Aeronautics and Space Administration."},{"line_number":6,"context_line":"# All Rights Reserved."},{"line_number":7,"context_line":"#"},{"line_number":8,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":9,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":23,"id":"AAAAPn%2F%2F0BY%3D","line":6,"updated":"2013-06-20 16:23:20.000000000","message":"Where did you copy the copyright header from?","commit_id":"6176383d02bc4a49c9bfb8dc62d214c058486758"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"fe5cea2f646aff3c0651f95c6a62c8a75c12d622","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        self._check_instance_is_running()"},{"line_number":55,"context_line":"        self._check_host_is_up(self.source)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        if self.destination is None:"},{"line_number":58,"context_line":"            self.destination \u003d self._find_destination()"},{"line_number":59,"context_line":"        else:"},{"line_number":60,"context_line":"            self._check_requested_destination()"}],"source_content_type":"text/x-python","patch_set":23,"id":"AAAAPn%2F%2F0BM%3D","line":57,"updated":"2013-06-20 16:23:20.000000000","message":"Does this *need* \"is None\"?  Would a simple \"if not self.destination\" suffice?","commit_id":"6176383d02bc4a49c9bfb8dc62d214c058486758"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"a9c13f2b2b7aaf8b61af8ae6217ef101f25a9984","unresolved":false,"context_lines":[{"line_number":159,"context_line":"                        \u0027instance_uuids\u0027: [self.instance[\u0027uuid\u0027]],"},{"line_number":160,"context_line":"                        \u0027image\u0027: image}"},{"line_number":161,"context_line":"        filter_properties \u003d {\u0027ignore_hosts\u0027: ignore_hosts}"},{"line_number":162,"context_line":"        #TODO(johngarbutt) this should be an rpc call to scheduler"},{"line_number":163,"context_line":"        return self.select_hosts_callback(self.context, request_spec,"},{"line_number":164,"context_line":"                                          filter_properties)[0]"},{"line_number":165,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"AAAAPn%2F%2Fu8c%3D","line":162,"updated":"2013-06-24 07:07:47.000000000","message":"will this mean that for each host a rpc message will be sent to the scheduler? would it not be best if a list of possible hosts was returned and it was notr called with each loop iteration.\n\nso for example on line 139 to have hosts \u003d self._get_candidate_destinations(image,\n\nthen you can just pop the hosts if not valid for the migration","commit_id":"2a9ccec1188e6584e3bf78b1ba9e5ebb799d8a96"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d3f10d97236651dd95cce8d89e9ff93b632c94f9","unresolved":false,"context_lines":[{"line_number":159,"context_line":"                        \u0027instance_uuids\u0027: [self.instance[\u0027uuid\u0027]],"},{"line_number":160,"context_line":"                        \u0027image\u0027: image}"},{"line_number":161,"context_line":"        filter_properties \u003d {\u0027ignore_hosts\u0027: ignore_hosts}"},{"line_number":162,"context_line":"        #TODO(johngarbutt) this should be an rpc call to scheduler"},{"line_number":163,"context_line":"        return self.select_hosts_callback(self.context, request_spec,"},{"line_number":164,"context_line":"                                          filter_properties)[0]"},{"line_number":165,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"AAAAPn%2F%2Fuuk%3D","line":162,"in_reply_to":"AAAAPn%2F%2Fu8c%3D","updated":"2013-06-24 09:49:46.000000000","message":"So in this change there is no rpc involved, its just a method call, but later this will be an rpc call.\n\nNot sure we should loop around the given list, because the information on capacity will be stale.\n\nBut really I am just trying to maintain the same behavior at the moment, and this is what it was doing before. We can certainly look to improve this later, once we have spawn following similar patterns.","commit_id":"2a9ccec1188e6584e3bf78b1ba9e5ebb799d8a96"}],"nova/scheduler/chance.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"2f9211f9882db957b2ef32d1a1ae6a8e1b488237","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class ChanceScheduler(driver.Scheduler):"},{"line_number":37,"context_line":"    \"\"\"Implements Scheduler as a random node selector.\"\"\""},{"line_number":38,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":39,"context_line":"        super(ChanceScheduler, self).__init__(*args, **kwargs)"},{"line_number":40,"context_line":"        self.compute_rpcapi \u003d compute_rpcapi.ComputeAPI()"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAPX%2F%2F%2BUg%3D","line":38,"updated":"2013-06-04 20:15:51.000000000","message":"Please insert a blank line to separate this method definition from the class docstring…","commit_id":"4ea7a1584b5931c5e74a781fe183ca172cf9cc45"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8b45d2ee4cb471bcc343c18c492583793e2b747e","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class ChanceScheduler(driver.Scheduler):"},{"line_number":37,"context_line":"    \"\"\"Implements Scheduler as a random node selector.\"\"\""},{"line_number":38,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":39,"context_line":"        super(ChanceScheduler, self).__init__(*args, **kwargs)"},{"line_number":40,"context_line":"        self.compute_rpcapi \u003d compute_rpcapi.ComputeAPI()"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAPX%2F%2F8x4%3D","line":38,"in_reply_to":"AAAAPX%2F%2F%2BUg%3D","updated":"2013-06-05 13:24:03.000000000","message":"yes, sorry.","commit_id":"4ea7a1584b5931c5e74a781fe183ca172cf9cc45"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"cc8e937157fd1dc4314e2578763a4bdb335ced98","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":40,"context_line":"        super(ChanceScheduler, self).__init__(*args, **kwargs)"},{"line_number":41,"context_line":"        self.compute_rpcapi \u003d compute_rpcapi.ComputeAPI()"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def _filter_hosts(self, request_spec, hosts, filter_properties):"},{"line_number":44,"context_line":"        \"\"\"Filter a list of hosts based on request_spec.\"\"\""}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAPn%2F%2Ftng%3D","line":41,"updated":"2013-06-24 18:24:27.000000000","message":"Is this being used somewhere?","commit_id":"2d7beddc0bb7830c2a8bf893b9221c0de568c55d"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"cc8e937157fd1dc4314e2578763a4bdb335ced98","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":40,"context_line":"        super(ChanceScheduler, self).__init__(*args, **kwargs)"},{"line_number":41,"context_line":"        self.compute_rpcapi \u003d compute_rpcapi.ComputeAPI()"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def _filter_hosts(self, request_spec, hosts, filter_properties):"},{"line_number":44,"context_line":"        \"\"\"Filter a list of hosts based on request_spec.\"\"\""}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAPn%2F%2FrWk%3D","line":41,"in_reply_to":"AAAAPn%2F%2FsEE%3D","updated":"2013-06-25 15:23:39.000000000","message":"Thanks.  Somehow I kept scanning past that and didn\u0027t notice this being removed.","commit_id":"2d7beddc0bb7830c2a8bf893b9221c0de568c55d"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":40,"context_line":"        super(ChanceScheduler, self).__init__(*args, **kwargs)"},{"line_number":41,"context_line":"        self.compute_rpcapi \u003d compute_rpcapi.ComputeAPI()"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def _filter_hosts(self, request_spec, hosts, filter_properties):"},{"line_number":44,"context_line":"        \"\"\"Filter a list of hosts based on request_spec.\"\"\""}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAPn%2F%2FsEE%3D","line":41,"in_reply_to":"AAAAPn%2F%2Ftng%3D","updated":"2013-06-25 09:15:08.000000000","message":"Yes, added because I removed it in the base class.","commit_id":"2d7beddc0bb7830c2a8bf893b9221c0de568c55d"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"unresolved":false,"context_lines":[{"line_number":84,"context_line":"                host \u003d self._schedule(context, CONF.compute_topic,"},{"line_number":85,"context_line":"                                      request_spec, filter_properties)"},{"line_number":86,"context_line":"                updated_instance \u003d driver.instance_update_db(context,"},{"line_number":87,"context_line":"                        instance_uuid)"},{"line_number":88,"context_line":"                self.compute_rpcapi.run_instance(context,"},{"line_number":89,"context_line":"                        instance\u003dupdated_instance, host\u003dhost,"},{"line_number":90,"context_line":"                        requested_networks\u003drequested_networks,"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAPn%2F%2FsEM%3D","line":87,"updated":"2013-06-25 09:15:08.000000000","message":"Here it is.","commit_id":"2d7beddc0bb7830c2a8bf893b9221c0de568c55d"}],"nova/scheduler/filter_scheduler.py":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"a499c1a7333315ff85998f9d2f84be494a8f6300","unresolved":false,"context_lines":[{"line_number":380,"context_line":"                filter_properties[\u0027group_hosts\u0027].append(chosen_host.obj.host)"},{"line_number":381,"context_line":"        return selected_hosts"},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"    def _get_compute_info(self, context, dest):"},{"line_number":384,"context_line":"        service_ref \u003d db.service_get_by_compute_host(context, dest)"},{"line_number":385,"context_line":"        return service_ref[\u0027compute_node\u0027][0]"},{"line_number":386,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"AAAAPn%2F%2Fu%2B4%3D","line":383,"updated":"2013-06-24 06:18:13.000000000","message":"Suggest add doc string here, I remember the previous function does include doc string.\n\n\"\"\"get compute node\u0027s information \n        :param context: security context\n        :param host: hostname(must be compute node)\n        :return: compute node info\n        \"\"\"","commit_id":"2a9ccec1188e6584e3bf78b1ba9e5ebb799d8a96"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d3f10d97236651dd95cce8d89e9ff93b632c94f9","unresolved":false,"context_lines":[{"line_number":380,"context_line":"                filter_properties[\u0027group_hosts\u0027].append(chosen_host.obj.host)"},{"line_number":381,"context_line":"        return selected_hosts"},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"    def _get_compute_info(self, context, dest):"},{"line_number":384,"context_line":"        service_ref \u003d db.service_get_by_compute_host(context, dest)"},{"line_number":385,"context_line":"        return service_ref[\u0027compute_node\u0027][0]"},{"line_number":386,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"AAAAPn%2F%2Fuuc%3D","line":383,"in_reply_to":"AAAAPn%2F%2Fu%2B4%3D","updated":"2013-06-24 09:49:46.000000000","message":"Hmm, OK. I don\u0027t really like them, mostly because that old comment was already out of date, but adding this back in, but I guess I should not remove it as part of this change.","commit_id":"2a9ccec1188e6584e3bf78b1ba9e5ebb799d8a96"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"cc8e937157fd1dc4314e2578763a4bdb335ced98","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":57,"context_line":"        super(FilterScheduler, self).__init__(*args, **kwargs)"},{"line_number":58,"context_line":"        self.options \u003d scheduler_options.SchedulerOptions()"},{"line_number":59,"context_line":"        self.compute_rpcapi \u003d compute_rpcapi.ComputeAPI()"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def schedule_run_instance(self, context, request_spec,"},{"line_number":62,"context_line":"                              admin_password, injected_files,"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAPn%2F%2Ftmo%3D","line":59,"updated":"2013-06-24 18:24:27.000000000","message":"Is this used anywhere?","commit_id":"2d7beddc0bb7830c2a8bf893b9221c0de568c55d"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"unresolved":false,"context_lines":[{"line_number":56,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":57,"context_line":"        super(FilterScheduler, self).__init__(*args, **kwargs)"},{"line_number":58,"context_line":"        self.options \u003d scheduler_options.SchedulerOptions()"},{"line_number":59,"context_line":"        self.compute_rpcapi \u003d compute_rpcapi.ComputeAPI()"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def schedule_run_instance(self, context, request_spec,"},{"line_number":62,"context_line":"                              admin_password, injected_files,"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAPn%2F%2FsFA%3D","line":59,"in_reply_to":"AAAAPn%2F%2Ftmo%3D","updated":"2013-06-25 09:15:08.000000000","message":"yes, its an odd one, got removed from the base class, so I had to add it here.","commit_id":"2d7beddc0bb7830c2a8bf893b9221c0de568c55d"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"unresolved":false,"context_lines":[{"line_number":146,"context_line":"        # context is not serializable"},{"line_number":147,"context_line":"        filter_properties.pop(\u0027context\u0027, None)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        # Forward off to the host"},{"line_number":150,"context_line":"        self.compute_rpcapi.prep_resize(context, image, instance,"},{"line_number":151,"context_line":"                instance_type, weighed_host.obj.host, reservations,"},{"line_number":152,"context_line":"                request_spec\u003drequest_spec, filter_properties\u003dfilter_properties,"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAPn%2F%2FsE4%3D","line":149,"updated":"2013-06-25 09:15:08.000000000","message":"gets used here","commit_id":"2d7beddc0bb7830c2a8bf893b9221c0de568c55d"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"cc8e937157fd1dc4314e2578763a4bdb335ced98","unresolved":false,"context_lines":[{"line_number":380,"context_line":"                filter_properties[\u0027group_hosts\u0027].append(chosen_host.obj.host)"},{"line_number":381,"context_line":"        return selected_hosts"},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"    def _get_compute_info(self, context, dest):"},{"line_number":384,"context_line":"        \"\"\"Get compute node\u0027s information"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"        :param context: security context"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAPn%2F%2Ftmw%3D","line":383,"updated":"2013-06-24 18:24:27.000000000","message":"I don\u0027t think this method or _assert_compute_node_has_enough_memory on line 394 are necessary anymore.  I can\u0027t find any callers except for the code being removed from scheduler/driver.py","commit_id":"2d7beddc0bb7830c2a8bf893b9221c0de568c55d"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"cc8e937157fd1dc4314e2578763a4bdb335ced98","unresolved":false,"context_lines":[{"line_number":380,"context_line":"                filter_properties[\u0027group_hosts\u0027].append(chosen_host.obj.host)"},{"line_number":381,"context_line":"        return selected_hosts"},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"    def _get_compute_info(self, context, dest):"},{"line_number":384,"context_line":"        \"\"\"Get compute node\u0027s information"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"        :param context: security context"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAPn%2F%2FrTU%3D","line":383,"in_reply_to":"AAAAPn%2F%2FsEc%3D","updated":"2013-06-25 15:23:39.000000000","message":"Fair enough.","commit_id":"2d7beddc0bb7830c2a8bf893b9221c0de568c55d"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"unresolved":false,"context_lines":[{"line_number":380,"context_line":"                filter_properties[\u0027group_hosts\u0027].append(chosen_host.obj.host)"},{"line_number":381,"context_line":"        return selected_hosts"},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"    def _get_compute_info(self, context, dest):"},{"line_number":384,"context_line":"        \"\"\"Get compute node\u0027s information"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"        :param context: security context"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAPn%2F%2FsEc%3D","line":383,"in_reply_to":"AAAAPn%2F%2Ftmw%3D","updated":"2013-06-25 09:15:08.000000000","message":"Hmm, yes, good point. I would rather that was in a separate change though. People might be subclassing it and relying on it I guess, so would rather have that conversation outside this one.","commit_id":"2d7beddc0bb7830c2a8bf893b9221c0de568c55d"}],"nova/tests/conductor/tasks/test_live_migrate.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"fe5cea2f646aff3c0651f95c6a62c8a75c12d622","unresolved":false,"context_lines":[{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# Copyright 2010 United States Government as represented by the"},{"line_number":5,"context_line":"# Administrator of the National Aeronautics and Space Administration."},{"line_number":6,"context_line":"# All Rights Reserved."},{"line_number":7,"context_line":"#"},{"line_number":8,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":9,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":23,"id":"AAAAPn%2F%2F0Aw%3D","line":6,"updated":"2013-06-20 16:23:20.000000000","message":"Another \"interesting\" copyright header…","commit_id":"6176383d02bc4a49c9bfb8dc62d214c058486758"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"995af9b11a95f440fb9853099194f69d98dd2f2c","unresolved":false,"context_lines":[{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# Copyright 2010 United States Government as represented by the"},{"line_number":5,"context_line":"# Administrator of the National Aeronautics and Space Administration."},{"line_number":6,"context_line":"# All Rights Reserved."},{"line_number":7,"context_line":"#"},{"line_number":8,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":9,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":26,"id":"AAAAPn%2F%2Fw2g%3D","line":6,"updated":"2013-06-21 19:51:30.000000000","message":"attonitting the copyright header again…","commit_id":"2a9ccec1188e6584e3bf78b1ba9e5ebb799d8a96"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d3f10d97236651dd95cce8d89e9ff93b632c94f9","unresolved":false,"context_lines":[{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# Copyright 2010 United States Government as represented by the"},{"line_number":5,"context_line":"# Administrator of the National Aeronautics and Space Administration."},{"line_number":6,"context_line":"# All Rights Reserved."},{"line_number":7,"context_line":"#"},{"line_number":8,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":9,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":26,"id":"AAAAPn%2F%2FuuY%3D","line":6,"in_reply_to":"AAAAPn%2F%2Fw2g%3D","updated":"2013-06-24 09:49:46.000000000","message":"Sorry, I deleted the wrong one, somehow, I will catch this one now.","commit_id":"2a9ccec1188e6584e3bf78b1ba9e5ebb799d8a96"}]}
