)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c3961386615b043cb0b1ecea18c9b02edcd9d00e","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"This also implements one of the TODO functional tests for"},{"line_number":29,"context_line":"cross-cell migrate by targeting a specific host in another"},{"line_number":30,"context_line":"cell for the cold migration. The functional test will fail"},{"line_number":31,"context_line":"without the fix in conductor."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Part of blueprint cross-cell-resize"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":45,"id":"3fa7e38b_fd2e6bf8","line":31,"range":{"start_line":30,"start_character":29,"end_line":31,"end_character":29},"updated":"2019-11-15 16:43:37.000000000","message":"confirmed.","commit_id":"7eb64689bb9ece6c80c6aa18855234f1c0eeff4f"}],"nova/tests/functional/test_cross_cell_migrate.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"61805118309f0da28e261ccf3d0df6e9ed49f158","unresolved":false,"context_lines":[{"line_number":372,"context_line":"        # be sure the requested host from cell2 is honored."},{"line_number":373,"context_line":"        self._start_compute("},{"line_number":374,"context_line":"            \u0027host3\u0027, cell_name\u003dself.host_to_cell_mappings[\u0027host1\u0027])"},{"line_number":375,"context_line":"        self._resize_and_validate(target_host\u003d\u0027host2\u0027)"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"    # TODO(mriedem): Test cross-cell list where the source cell has two"},{"line_number":378,"context_line":"    # hosts so the CrossCellWeigher picks the other host in the source cell"}],"source_content_type":"text/x-python","patch_set":16,"id":"dfbec78f_1ce28e02","line":375,"updated":"2019-05-08 21:30:59.000000000","message":"This is intermittently failing here:\n\nhttps://github.com/openstack/nova/blob/56fef7c0e74d7512f062c4046def10401df16565/nova/scheduler/utils.py#L528\n\nBecause it\u0027s saying host2 is not found:\n\n    b\u00272019-05-08 17:22:12,138 WARNING [nova.scheduler.utils] Failed to compute_task_migrate_server: No valid host was found. No such host - host: host2 node: host2 \u0027\n\nI think it might be because of this code in the cold migration task before hitting the scheduler:\n\nhttps://github.com/openstack/nova/blob/56fef7c0e74d7512f062c4046def10401df16565/nova/conductor/tasks/migrate.py#L163\n\nThat sets the RequestSpec.requested_destination.cell to the source cell (cell1 for host1), and then the scheduler utility code uses that to try and find the destination host:\n\nhttps://github.com/openstack/nova/blob/56fef7c0e74d7512f062c4046def10401df16565/nova/scheduler/utils.py#L504\n\nso in that case, target_cell is cell1 but target_host is host2 (in cell2) so that\u0027s why we fail to find it. Looks like resources_from_request_spec needs to not pass target_cell to get_compute_nodes_by_host_or_node if RequestSpec.requested_destination.allow_cross_cell_move\u003dTrue since the target host could be in another cell.","commit_id":"cfbed06f063d512f187a26a375ed1e69c1f65961"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f13fdffd3b7ddbf5ba8191f2e67c83952b96bad2","unresolved":false,"context_lines":[{"line_number":365,"context_line":"        mostly just to ensure the API does not restrict the target host to"},{"line_number":366,"context_line":"        the source cell when cross-cell resize is allowed by policy."},{"line_number":367,"context_line":"        \"\"\""},{"line_number":368,"context_line":"        # _resize_and_validate creates the server on host1 which is in cell1."},{"line_number":369,"context_line":"        # To make things interesting, start a third host but in cell1 so we can"},{"line_number":370,"context_line":"        # be sure the requested host from cell2 is honored."},{"line_number":371,"context_line":"        self._start_compute("},{"line_number":372,"context_line":"            \u0027host3\u0027, cell_name\u003dself.host_to_cell_mappings[\u0027host1\u0027])"},{"line_number":373,"context_line":"        self._resize_and_validate(target_host\u003d\u0027host2\u0027)"}],"source_content_type":"text/x-python","patch_set":31,"id":"7faddb67_94d05055","line":370,"range":{"start_line":368,"start_character":0,"end_line":370,"end_character":59},"updated":"2019-09-02 15:04:07.000000000","message":"It would be even better if the weigher is configured to prefer host3 over host2","commit_id":"921bec9422bb0e60f77c3a22879553c7ab2c2a96"}]}
