)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c7e1ebd0c7ffdcf571a4fc37be22ce164266f551","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Delete existing allocations when retrying"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Once the conductor will allocate an instance by calling the Placement API,"},{"line_number":10,"context_line":"there will be cases when the instance won\u0027t fit within the destination and"},{"line_number":11,"context_line":"consequently leading to a reschedule. In that case, in theory the conductor"},{"line_number":12,"context_line":"will update the allocation by the next destination it finds but in case of"},{"line_number":13,"context_line":"a NoValidHost, we need to make sure we delete the contract if the instance"},{"line_number":14,"context_line":"finally never landed."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"1f013ff3_c8fd593b","line":11,"range":{"start_line":10,"start_character":0,"end_line":11,"end_character":36},"updated":"2017-05-16 22:19:41.000000000","message":"This is not true. We\u0027ll reschedule for a few failures but not because it doesn\u0027t fit.","commit_id":"3b3a38e2f7558f184115ee1ff5026348ba323e4f"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"9ef2666979fe8b329f71d6f7357ae3d4127ff7dd","unresolved":false,"context_lines":[{"line_number":10,"context_line":"there will be cases when spawning some unexpected issues can happen  and"},{"line_number":11,"context_line":"consequently leading to a reschedule. In that case, in theory the conductor"},{"line_number":12,"context_line":"will update the allocation by the next destination it finds but in case of"},{"line_number":13,"context_line":"a NoValidHost, we need to make sure we delete the contract if the instance"},{"line_number":14,"context_line":"finally never landed."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Move operations are quite different since the instance was originally"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"ff0f0b1f_68820152","line":13,"updated":"2017-05-17 18:15:26.000000000","message":"\"contract\" feels like an undefined term here, what does it mean? Why not use \"allocation\"?","commit_id":"b9e2ab9673a1eaaf38551f9d650231ed6573a7ca"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"9abea6be6b995e0806ad8c2fb2b898d927146414","unresolved":false,"context_lines":[{"line_number":12,"context_line":"still set so we would like to remove it when the compute is calling the"},{"line_number":13,"context_line":"conductor method for rescheduling."},{"line_number":14,"context_line":"We could delete the allocation after the call to schedule if we get a"},{"line_number":15,"context_line":"NoValidHosts exception, but we agree it would be better to remove the"},{"line_number":16,"context_line":"existing non-valid allocation quicklier before the scheduler is called."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Move operations are quite different since the instance was originally"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"ff0f0b1f_50e1109a","line":15,"updated":"2017-05-18 10:06:34.000000000","message":"Okay, some people \"agree it would be better\" but the critical piece of information is still missing: That piece is why it is better.","commit_id":"e272fdac22888d63f36513c85a5f1ab0b8712c7a"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"9abea6be6b995e0806ad8c2fb2b898d927146414","unresolved":false,"context_lines":[{"line_number":13,"context_line":"conductor method for rescheduling."},{"line_number":14,"context_line":"We could delete the allocation after the call to schedule if we get a"},{"line_number":15,"context_line":"NoValidHosts exception, but we agree it would be better to remove the"},{"line_number":16,"context_line":"existing non-valid allocation quicklier before the scheduler is called."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Move operations are quite different since the instance was originally"},{"line_number":19,"context_line":"running. In the unpredictable event where the move operation would fail, then"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"ff0f0b1f_30957ce5","line":16,"updated":"2017-05-18 10:06:34.000000000","message":"quicklier has a nice ring to it, I may have to add that one to my lexicon.","commit_id":"e272fdac22888d63f36513c85a5f1ab0b8712c7a"}],"nova/compute/resource_tracker.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2b5a0077077150114006255ab2e659c6e173ee9a","unresolved":false,"context_lines":[{"line_number":1005,"context_line":"            instance \u003d objects.Instance.get_by_uuid(context, allocation_uuid,"},{"line_number":1006,"context_line":"                                                    expected_attrs\u003d[])"},{"line_number":1007,"context_line":"            if (not instance.host or instance.host \u003d\u003d self.host"},{"line_number":1008,"context_line":"                or instance.node \u003d\u003d self.node):"},{"line_number":1009,"context_line":"                    continue"},{"line_number":1010,"context_line":"            LOG.warning(_LW(\u0027Deleting stale allocation for instance %s\u0027),"},{"line_number":1011,"context_line":"                        allocation_uuid)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5ff73747_aa2646cd","line":1008,"range":{"start_line":1008,"start_character":28,"end_line":1008,"end_character":32},"updated":"2017-04-27 08:08:59.000000000","message":"snap, should be in the previous change","commit_id":"be1812f7345ac5dae77ed94bcf00c02be840c71d"}],"nova/conductor/manager.py":[{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7294568234ba248198e41c4144ba6a237f8c0cda","unresolved":false,"context_lines":[{"line_number":538,"context_line":"        for instance in instances:"},{"line_number":539,"context_line":"            self.scheduler_client.reportclient._delete_allocation_for_instance("},{"line_number":540,"context_line":"                instance.uuid"},{"line_number":541,"context_line":"            )"},{"line_number":542,"context_line":""},{"line_number":543,"context_line":"        # TODO(ndipanov): Remove block_device_mapping and legacy_bdm in version"},{"line_number":544,"context_line":"        #                 2.0 of the RPC API."}],"source_content_type":"text/x-python","patch_set":1,"id":"5ff73747_ebcadd9e","line":541,"range":{"start_line":541,"start_character":12,"end_line":541,"end_character":13},"updated":"2017-04-28 13:33:01.000000000","message":"nit: you\u0027ve been reading too much of Jay\u0027s code with his C-style formatting. Just put this closing paren on the end of the previous line.","commit_id":"be1812f7345ac5dae77ed94bcf00c02be840c71d"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7294568234ba248198e41c4144ba6a237f8c0cda","unresolved":false,"context_lines":[{"line_number":755,"context_line":"            if not host:"},{"line_number":756,"context_line":"                # NOTE(sbauza): We need to delete the existing allocations"},{"line_number":757,"context_line":"                # given the scheduler will create new ones."},{"line_number":758,"context_line":"                self.scheduler_client.reportclient.\\"},{"line_number":759,"context_line":"                    _delete_allocation_for_instance(instance.uuid)"},{"line_number":760,"context_line":"                if not request_spec:"},{"line_number":761,"context_line":"                    # NOTE(sbauza): We were unable to find an original"}],"source_content_type":"text/x-python","patch_set":1,"id":"5ff73747_cbacc1a0","line":758,"range":{"start_line":758,"start_character":16,"end_line":758,"end_character":50},"updated":"2017-04-28 13:33:01.000000000","message":"It would be cleaner to just declare this as an attribute (like \u0027self.reporter\u0027) right after \u0027self.scheduler_client\u0027 is defined. This will make the code that uses it clearer, and also reduce the need for continuing lines like this.","commit_id":"be1812f7345ac5dae77ed94bcf00c02be840c71d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c7e1ebd0c7ffdcf571a4fc37be22ce164266f551","unresolved":false,"context_lines":[{"line_number":539,"context_line":"        # a NoValidHost after that reschedule, we don\u0027t leave the original"},{"line_number":540,"context_line":"        # allocation set."},{"line_number":541,"context_line":"        for instance in instances:"},{"line_number":542,"context_line":"            self.reportclient.delete_allocation_for_instance(instance.uuid)"},{"line_number":543,"context_line":""},{"line_number":544,"context_line":"        # TODO(ndipanov): Remove block_device_mapping and legacy_bdm in version"},{"line_number":545,"context_line":"        #                 2.0 of the RPC API."}],"source_content_type":"text/x-python","patch_set":7,"id":"1f013ff3_e8fed536","line":542,"updated":"2017-05-16 22:19:41.000000000","message":"So in the cellsv1 case this will always LOG.warning \"unable to delete allocation\". Probably best to avoid that, no?","commit_id":"3b3a38e2f7558f184115ee1ff5026348ba323e4f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fea9690409cba4d13961413ca24859de1732072c","unresolved":false,"context_lines":[{"line_number":539,"context_line":"        # a NoValidHost after that reschedule, we don\u0027t leave the original"},{"line_number":540,"context_line":"        # allocation set."},{"line_number":541,"context_line":"        for instance in instances:"},{"line_number":542,"context_line":"            self.reportclient.delete_allocation_for_instance(instance.uuid)"},{"line_number":543,"context_line":""},{"line_number":544,"context_line":"        # TODO(ndipanov): Remove block_device_mapping and legacy_bdm in version"},{"line_number":545,"context_line":"        #                 2.0 of the RPC API."}],"source_content_type":"text/x-python","patch_set":7,"id":"1f013ff3_065b202e","line":542,"in_reply_to":"1f013ff3_e8fed536","updated":"2017-05-17 10:07:36.000000000","message":"Good point","commit_id":"3b3a38e2f7558f184115ee1ff5026348ba323e4f"}],"nova/conductor/tasks/live_migrate.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c7e1ebd0c7ffdcf571a4fc37be22ce164266f551","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        self.compute_rpcapi \u003d compute_rpcapi"},{"line_number":43,"context_line":"        self.servicegroup_api \u003d servicegroup_api"},{"line_number":44,"context_line":"        self.scheduler_client \u003d scheduler_client"},{"line_number":45,"context_line":"        self.reportclient \u003d self.scheduler_client.reportclient"},{"line_number":46,"context_line":"        self.request_spec \u003d request_spec"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def _execute(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f013ff3_88f07169","line":45,"updated":"2017-05-16 22:19:41.000000000","message":"Unused?","commit_id":"3b3a38e2f7558f184115ee1ff5026348ba323e4f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"5e051eff54e7d80de62d29908e1588466e068de2","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        self.compute_rpcapi \u003d compute_rpcapi"},{"line_number":43,"context_line":"        self.servicegroup_api \u003d servicegroup_api"},{"line_number":44,"context_line":"        self.scheduler_client \u003d scheduler_client"},{"line_number":45,"context_line":"        self.reportclient \u003d self.scheduler_client.reportclient"},{"line_number":46,"context_line":"        self.request_spec \u003d request_spec"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def _execute(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f013ff3_a64b4c57","line":45,"in_reply_to":"1f013ff3_88f07169","updated":"2017-05-17 10:08:01.000000000","message":"Bad rebase.","commit_id":"3b3a38e2f7558f184115ee1ff5026348ba323e4f"}],"nova/conductor/tasks/migrate.py":[{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"501449b66063f3b88ac633ccfe1ca39bc75abb9e","unresolved":false,"context_lines":[{"line_number":42,"context_line":"                                                       instance\u003dself.instance)"},{"line_number":43,"context_line":"        # NOTE(sbauza): We need to delete the existing allocations"},{"line_number":44,"context_line":"        # given the scheduler will create new ones."},{"line_number":45,"context_line":"        self.reportclient.delete_allocation_for_instance(self.instance.uuid)"},{"line_number":46,"context_line":"        # TODO(sbauza): Remove that once prep_resize() accepts a  RequestSpec"},{"line_number":47,"context_line":"        # object in the signature and all the scheduler.utils methods too"},{"line_number":48,"context_line":"        legacy_spec \u003d self.request_spec.to_legacy_request_spec_dict()"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f044301_096471e3","line":45,"updated":"2017-05-05 18:49:05.000000000","message":"Shouldn\u0027t this come at the end? If the migration fails, the resources for the original instance are still used.","commit_id":"400fc98571c18fe44287e87c2fad519828013a77"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c7e1ebd0c7ffdcf571a4fc37be22ce164266f551","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        self.compute_rpcapi \u003d compute_rpcapi"},{"line_number":36,"context_line":"        self.scheduler_client \u003d scheduler_client"},{"line_number":37,"context_line":"        self.reportclient \u003d self.scheduler_client.reportclient"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def _execute(self):"},{"line_number":40,"context_line":"        self.quotas \u003d objects.Quotas.from_reservations(self.context,"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f013ff3_68f3e574","line":37,"updated":"2017-05-16 22:19:41.000000000","message":"Ditto.","commit_id":"3b3a38e2f7558f184115ee1ff5026348ba323e4f"}]}
