)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"d122a382f0474b2d436fa44e6c58a493a940c4f9","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"re-calculate provider mapping during migration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Nova intentionally does not persist the resoruce request of the neturon"},{"line_number":10,"context_line":"ports. Therefore during migration nova needs to query neturon about the"},{"line_number":11,"context_line":"resource requests to include them to the allocation_candidates query"},{"line_number":12,"context_line":"sent to placement during scheduling. Also when the allocation is made by"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"7faddb67_e740660a","line":9,"range":{"start_line":9,"start_character":40,"end_line":9,"end_character":48},"updated":"2019-07-08 11:01:53.000000000","message":"resource","commit_id":"115b8ca2a0853defa1e699877bd36ba3025a39f1"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"7a1b71d9186153946e722e23a8e50e6281e9bbd5","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"re-calculate provider mapping during migration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Nova intentionally does not persist the resoruce request of the neturon"},{"line_number":10,"context_line":"ports. Therefore during migration nova needs to query neturon about the"},{"line_number":11,"context_line":"resource requests to include them to the allocation_candidates query"},{"line_number":12,"context_line":"sent to placement during scheduling. Also when the allocation is made by"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"7faddb67_3c719ba9","line":9,"range":{"start_line":9,"start_character":64,"end_line":9,"end_character":71},"updated":"2019-08-12 13:35:32.000000000","message":"s/neturon/neutron","commit_id":"4c960945603265136d7bd6b623f2079bc5e3b841"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"7a1b71d9186153946e722e23a8e50e6281e9bbd5","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"re-calculate provider mapping during migration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Nova intentionally does not persist the resoruce request of the neturon"},{"line_number":10,"context_line":"ports. Therefore during migration nova needs to query neturon about the"},{"line_number":11,"context_line":"resource requests to include them to the allocation_candidates query"},{"line_number":12,"context_line":"sent to placement during scheduling. Also when the allocation is made by"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"7faddb67_5c99f7cd","line":9,"range":{"start_line":9,"start_character":40,"end_line":9,"end_character":48},"updated":"2019-08-12 13:35:32.000000000","message":"s/resoruce/resource","commit_id":"4c960945603265136d7bd6b623f2079bc5e3b841"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"7a1b71d9186153946e722e23a8e50e6281e9bbd5","unresolved":false,"context_lines":[{"line_number":7,"context_line":"re-calculate provider mapping during migration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Nova intentionally does not persist the resoruce request of the neturon"},{"line_number":10,"context_line":"ports. Therefore during migration nova needs to query neturon about the"},{"line_number":11,"context_line":"resource requests to include them to the allocation_candidates query"},{"line_number":12,"context_line":"sent to placement during scheduling. Also when the allocation is made by"},{"line_number":13,"context_line":"the scheduler nova needs to re-calculate request group - resource"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"7faddb67_bcb10b47","line":10,"range":{"start_line":10,"start_character":54,"end_line":10,"end_character":61},"updated":"2019-08-12 13:35:32.000000000","message":"ditto","commit_id":"4c960945603265136d7bd6b623f2079bc5e3b841"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"50942a34ac00838ad9b6d96cf00267fd0dd46fb6","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"re-calculate provider mapping during migration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Nova intentionally does not persist the resoruce request of the neturon"},{"line_number":10,"context_line":"ports. Therefore during migration nova needs to query neturon about the"},{"line_number":11,"context_line":"resource requests to include them to the allocation_candidates query"},{"line_number":12,"context_line":"sent to placement during scheduling. Also when the allocation is made by"},{"line_number":13,"context_line":"the scheduler nova needs to re-calculate request group - resource"},{"line_number":14,"context_line":"provider mapping. A subsequent patch will use this mapping to update the"},{"line_number":15,"context_line":"binding profile when the port is bound to the destination host of the"},{"line_number":16,"context_line":"migration."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"7faddb67_a7734ee8","line":14,"range":{"start_line":9,"start_character":0,"end_line":14,"end_character":17},"updated":"2019-08-26 13:38:21.000000000","message":"this means that if a user updates a neutron port with a min bandwidth qos policy after the vm is booted that  on migration we will pick up that request providing a way for people to upgrade to this feature in the future.\n\nthe down side of that is we have to be careful on revert to ensure that if the instance orginaly did not have port request when it was spawned, then we should not add them when we revert.","commit_id":"b098501917d35af7e4e16a66916cb3378f99d341"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b3259c32cee6c02d870054cf7506597f9cef7ce0","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"re-calculate provider mapping during migration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Nova intentionally does not persist the resoruce request of the neturon"},{"line_number":10,"context_line":"ports. Therefore during migration nova needs to query neturon about the"},{"line_number":11,"context_line":"resource requests to include them to the allocation_candidates query"},{"line_number":12,"context_line":"sent to placement during scheduling. Also when the allocation is made by"},{"line_number":13,"context_line":"the scheduler nova needs to re-calculate request group - resource"},{"line_number":14,"context_line":"provider mapping. A subsequent patch will use this mapping to update the"},{"line_number":15,"context_line":"binding profile when the port is bound to the destination host of the"},{"line_number":16,"context_line":"migration."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"7faddb67_f84556b5","line":14,"range":{"start_line":9,"start_character":0,"end_line":14,"end_character":17},"in_reply_to":"7faddb67_a7734ee8","updated":"2019-08-27 12:04:17.000000000","message":"Changing the QoS policy on bound port is not supported and rejected by neutron[1]. Therefore the scenario you described cannot happen today. \n\n[1]https://review.opendev.org/#/c/636970/","commit_id":"b098501917d35af7e4e16a66916cb3378f99d341"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"168dfe6555bf62ca377963058db1f5928eca5844","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"re-calculate provider mapping during migration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Nova intentionally does not persist the resoruce request of the neturon"},{"line_number":10,"context_line":"ports. Therefore during migration nova needs to query neturon about the"},{"line_number":11,"context_line":"resource requests to include them to the allocation_candidates query"},{"line_number":12,"context_line":"sent to placement during scheduling. Also when the allocation is made by"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"7faddb67_cc28a6ef","line":9,"range":{"start_line":9,"start_character":64,"end_line":9,"end_character":71},"updated":"2019-08-29 19:33:34.000000000","message":"neutron","commit_id":"1a929f1901597fc0eebe51d55671bbadadb5322c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"168dfe6555bf62ca377963058db1f5928eca5844","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"re-calculate provider mapping during migration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Nova intentionally does not persist the resoruce request of the neturon"},{"line_number":10,"context_line":"ports. Therefore during migration nova needs to query neturon about the"},{"line_number":11,"context_line":"resource requests to include them to the allocation_candidates query"},{"line_number":12,"context_line":"sent to placement during scheduling. Also when the allocation is made by"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"7faddb67_2cecdab9","line":9,"range":{"start_line":9,"start_character":40,"end_line":9,"end_character":48},"updated":"2019-08-29 19:33:34.000000000","message":"resource","commit_id":"1a929f1901597fc0eebe51d55671bbadadb5322c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7f2a149fe3e986960a16767586d7375011d54434","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"re-calculate provider mapping during migration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Nova intentionally does not persist the resoruce request of the neturon"},{"line_number":10,"context_line":"ports. Therefore during migration nova needs to query neturon about the"},{"line_number":11,"context_line":"resource requests to include them to the allocation_candidates query"},{"line_number":12,"context_line":"sent to placement during scheduling. Also when the allocation is made by"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"7faddb67_59e1c12a","line":9,"range":{"start_line":9,"start_character":64,"end_line":9,"end_character":71},"updated":"2019-08-30 21:58:09.000000000","message":"neutron","commit_id":"2e9fd01e7a5260f02db4df5660be25b3fabf8e6b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7f2a149fe3e986960a16767586d7375011d54434","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"re-calculate provider mapping during migration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Nova intentionally does not persist the resoruce request of the neturon"},{"line_number":10,"context_line":"ports. Therefore during migration nova needs to query neturon about the"},{"line_number":11,"context_line":"resource requests to include them to the allocation_candidates query"},{"line_number":12,"context_line":"sent to placement during scheduling. Also when the allocation is made by"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"7faddb67_b9d8f57e","line":9,"range":{"start_line":9,"start_character":40,"end_line":9,"end_character":48},"updated":"2019-08-30 21:58:09.000000000","message":"resource","commit_id":"2e9fd01e7a5260f02db4df5660be25b3fabf8e6b"}],"nova/conductor/tasks/migrate.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"50942a34ac00838ad9b6d96cf00267fd0dd46fb6","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        # is not forced to be the original host"},{"line_number":204,"context_line":"        self.request_spec.reset_forced_destinations()"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        # TODO(gibi): do not directly overwrite the"},{"line_number":207,"context_line":"        # RequestSpec.requested_resources as others like cyborg might added"},{"line_number":208,"context_line":"        # to things there already"},{"line_number":209,"context_line":"        port_res_req \u003d self.network_api.get_requested_resource_for_instance("},{"line_number":210,"context_line":"            self.context, self.instance.uuid)"},{"line_number":211,"context_line":"        self.request_spec.requested_resources \u003d port_res_req"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"        self._restrict_request_spec_to_cell(legacy_props)"},{"line_number":214,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"7faddb67_e742a668","line":211,"range":{"start_line":206,"start_character":8,"end_line":211,"end_character":60},"updated":"2019-08-26 13:38:21.000000000","message":"is this not still just overwriting the requested_resouces\n\ndid you mean to update it instead by merging the old requests with the new ones form the port.","commit_id":"b098501917d35af7e4e16a66916cb3378f99d341"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b3259c32cee6c02d870054cf7506597f9cef7ce0","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        # is not forced to be the original host"},{"line_number":204,"context_line":"        self.request_spec.reset_forced_destinations()"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        # TODO(gibi): do not directly overwrite the"},{"line_number":207,"context_line":"        # RequestSpec.requested_resources as others like cyborg might added"},{"line_number":208,"context_line":"        # to things there already"},{"line_number":209,"context_line":"        port_res_req \u003d self.network_api.get_requested_resource_for_instance("},{"line_number":210,"context_line":"            self.context, self.instance.uuid)"},{"line_number":211,"context_line":"        self.request_spec.requested_resources \u003d port_res_req"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"        self._restrict_request_spec_to_cell(legacy_props)"},{"line_number":214,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"7faddb67_b8b59ed2","line":211,"range":{"start_line":206,"start_character":8,"end_line":211,"end_character":60},"in_reply_to":"7faddb67_e742a668","updated":"2019-08-27 12:04:17.000000000","message":"We are not persisting requested_resources, as the final truth is outside of nova regarding port of cyborg device resource requests. \n\nSo when we start a migrate operation we collect every request again. So I don\u0027t think we ever want to implement a merge behavior here. What we want is the following pseudo code:\n\n   net_resources \u003d self.network_api.get_requested_resources_for_instance()\n   accel_resources \u003d self.cyborg_api.get_requested_resources_for_instance()\n   # other non nova managed resources...\n\n   self.request_spec.requested_resources \u003d net_resources + accel_resources # + other_non_nova_resources...\n\nI reformulated the TODO to be a bit more specific.","commit_id":"b098501917d35af7e4e16a66916cb3378f99d341"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"168dfe6555bf62ca377963058db1f5928eca5844","unresolved":false,"context_lines":[{"line_number":247,"context_line":"            # alternates being the remainder of the list."},{"line_number":248,"context_line":"            selection, self.host_list \u003d selection_list[0], selection_list[1:]"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"            scheduler_utils.fill_provider_mapping("},{"line_number":251,"context_line":"                self.context, self.reportclient, self.request_spec, selection)"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":17,"id":"7faddb67_6cfc123f","line":250,"updated":"2019-08-29 19:33:34.000000000","message":"Nothing in the tests asserts that this (or the call below) are called, and likely doesn\u0027t matter since the mock in the test is returning and empty list and fill_provider_mapping short circuits if there are no requested resources, but we should make sure this is called, yeah? Otherwise I could refactor/remove this call and tests won\u0027t fail.","commit_id":"1a929f1901597fc0eebe51d55671bbadadb5322c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b0c51216fe06505df58439aaa113c74d7e66aced","unresolved":false,"context_lines":[{"line_number":247,"context_line":"            # alternates being the remainder of the list."},{"line_number":248,"context_line":"            selection, self.host_list \u003d selection_list[0], selection_list[1:]"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"            scheduler_utils.fill_provider_mapping("},{"line_number":251,"context_line":"                self.context, self.reportclient, self.request_spec, selection)"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":17,"id":"7faddb67_93963894","line":250,"in_reply_to":"7faddb67_6cfc123f","updated":"2019-08-30 21:24:20.000000000","message":"Done","commit_id":"1a929f1901597fc0eebe51d55671bbadadb5322c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b0c51216fe06505df58439aaa113c74d7e66aced","unresolved":false,"context_lines":[{"line_number":273,"context_line":"                            self.instance.uuid, alloc_req,"},{"line_number":274,"context_line":"                            selection.allocation_request_version)"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"                    scheduler_utils.fill_provider_mapping("},{"line_number":277,"context_line":"                        self.context, self.reportclient, self.request_spec,"},{"line_number":278,"context_line":"                        selection)"},{"line_number":279,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":17,"id":"7faddb67_7e47c3a4","line":276,"updated":"2019-08-30 21:24:20.000000000","message":"We likely only need to do this if host_available is True, since if it\u0027s not we won\u0027t use that host anyway.","commit_id":"1a929f1901597fc0eebe51d55671bbadadb5322c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7f2a149fe3e986960a16767586d7375011d54434","unresolved":false,"context_lines":[{"line_number":273,"context_line":"                            self.instance.uuid, alloc_req,"},{"line_number":274,"context_line":"                            selection.allocation_request_version)"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"                    scheduler_utils.fill_provider_mapping("},{"line_number":277,"context_line":"                        self.context, self.reportclient, self.request_spec,"},{"line_number":278,"context_line":"                        selection)"},{"line_number":279,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":17,"id":"7faddb67_39d64551","line":276,"in_reply_to":"7faddb67_7e47c3a4","updated":"2019-08-30 21:58:09.000000000","message":"Done","commit_id":"1a929f1901597fc0eebe51d55671bbadadb5322c"}],"nova/tests/unit/conductor/tasks/test_migrate.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"168dfe6555bf62ca377963058db1f5928eca5844","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        gbf_mock.return_value \u003d objects.MigrationList()"},{"line_number":91,"context_line":"        mock_get_resources \u003d \\"},{"line_number":92,"context_line":"            self.mock_network_api.get_requested_resource_for_instance"},{"line_number":93,"context_line":"        mock_get_resources.return_value \u003d []"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        if requested_destination:"},{"line_number":96,"context_line":"            self.request_spec.requested_destination \u003d objects.Destination("}],"source_content_type":"text/x-python","patch_set":17,"id":"7faddb67_6cd3b2d4","line":93,"updated":"2019-08-29 19:33:34.000000000","message":"Wouldn\u0027t it be good to assert that the result of this is set on self.request_spec.requested_resources?","commit_id":"1a929f1901597fc0eebe51d55671bbadadb5322c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b0c51216fe06505df58439aaa113c74d7e66aced","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        gbf_mock.return_value \u003d objects.MigrationList()"},{"line_number":91,"context_line":"        mock_get_resources \u003d \\"},{"line_number":92,"context_line":"            self.mock_network_api.get_requested_resource_for_instance"},{"line_number":93,"context_line":"        mock_get_resources.return_value \u003d []"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        if requested_destination:"},{"line_number":96,"context_line":"            self.request_spec.requested_destination \u003d objects.Destination("}],"source_content_type":"text/x-python","patch_set":17,"id":"7faddb67_d835aff7","line":93,"in_reply_to":"7faddb67_6cd3b2d4","updated":"2019-08-30 21:24:20.000000000","message":"Done","commit_id":"1a929f1901597fc0eebe51d55671bbadadb5322c"}]}
