)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"80d7766dedb0e655caaa39c0c1a291c6b1349ddd","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     jichenjc \u003cjichenjc@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-02-09 06:35:08 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Avoid live mgirate to same host"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"As live migrate target to move instance to another host, we should"},{"line_number":10,"context_line":"check at API layer before really do the action. This patch add"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3fa0c359_ca205f9e","line":7,"range":{"start_line":7,"start_character":11,"end_line":7,"end_character":18},"updated":"2018-02-12 15:02:43.000000000","message":"migrate","commit_id":"558627483283edef2a060dfd0a0b2bc17ddf8b69"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"88c22fda3b73348b0b7d6a4e197d51c1ddedd462","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     jichenjc \u003cjichenjc@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-02-09 06:35:08 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Avoid live mgirate to same host"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"As live migrate target to move instance to another host, we should"},{"line_number":10,"context_line":"check at API layer before really do the action. This patch add"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3fa0c359_70256608","line":7,"range":{"start_line":7,"start_character":11,"end_line":7,"end_character":18},"in_reply_to":"3fa0c359_ca205f9e","updated":"2018-02-13 07:25:15.000000000","message":"Done","commit_id":"558627483283edef2a060dfd0a0b2bc17ddf8b69"}],"nova/api/openstack/compute/migrate_server.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"80d7766dedb0e655caaa39c0c1a291c6b1349ddd","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        # Check migration target can\u0027t be the same to instance is on"},{"line_number":106,"context_line":"        if instance.host \u003d\u003d host:"},{"line_number":107,"context_line":"            msg \u003d _(\"The live migration target host can\u0027t be the same one.\")"},{"line_number":108,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_0a2ba782","line":107,"range":{"start_line":107,"start_character":21,"end_line":107,"end_character":73},"updated":"2018-02-12 15:02:43.000000000","message":"Suggest re-wording this as, \"Invalid host. Cannot live migrate to the host on which the server is currently running.\"\n\nSomething like that.","commit_id":"558627483283edef2a060dfd0a0b2bc17ddf8b69"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"68260ee671eea280d6a109c80b0d321ab24342e0","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        # Check migration target can\u0027t be the same to instance is on"},{"line_number":106,"context_line":"        if instance.host \u003d\u003d host:"},{"line_number":107,"context_line":"            msg \u003d _(\"The live migration target host can\u0027t be the same one.\")"},{"line_number":108,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_4ea1bcf7","line":107,"range":{"start_line":107,"start_character":21,"end_line":107,"end_character":73},"in_reply_to":"3fa0c359_0a2ba782","updated":"2018-02-12 19:01:24.000000000","message":"+1","commit_id":"558627483283edef2a060dfd0a0b2bc17ddf8b69"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"88c22fda3b73348b0b7d6a4e197d51c1ddedd462","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        # Check migration target can\u0027t be the same to instance is on"},{"line_number":106,"context_line":"        if instance.host \u003d\u003d host:"},{"line_number":107,"context_line":"            msg \u003d _(\"The live migration target host can\u0027t be the same one.\")"},{"line_number":108,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_1020a2f6","line":107,"range":{"start_line":107,"start_character":21,"end_line":107,"end_character":73},"in_reply_to":"3fa0c359_4ea1bcf7","updated":"2018-02-13 07:25:15.000000000","message":"ok, will rewording","commit_id":"558627483283edef2a060dfd0a0b2bc17ddf8b69"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"1cb2ef1dc3567438bae64f4b3ea5eb3374904c8d","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        instance \u003d common.get_instance(self.compute_api, context, id)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        # Check migration target can\u0027t be the same to instance is on"},{"line_number":106,"context_line":"        if instance.host \u003d\u003d host:"},{"line_number":107,"context_line":"            msg \u003d _(\"Invalid host. Cannot live migrate to the host on \""},{"line_number":108,"context_line":"                    \"which the server is currently running.\")"},{"line_number":109,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa0c359_83653220","line":106,"range":{"start_line":106,"start_character":28,"end_line":106,"end_character":32},"updated":"2018-02-14 06:49:51.000000000","message":"\u0027host\u0027 can be None (\u0027null\u0027).\nSo \"if host is not None:\" should be added.","commit_id":"1e9b6279eca702146f2240c8ddf243a9743d8ff9"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"13c7e8774d21872cafe5b3c55f13a7cd6223c852","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        instance \u003d common.get_instance(self.compute_api, context, id)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        # Check migration target can\u0027t be the same to instance is on"},{"line_number":106,"context_line":"        if instance.host \u003d\u003d host:"},{"line_number":107,"context_line":"            msg \u003d _(\"Invalid host. Cannot live migrate to the host on \""},{"line_number":108,"context_line":"                    \"which the server is currently running.\")"},{"line_number":109,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"df7087c5_c513b065","line":106,"range":{"start_line":106,"start_character":28,"end_line":106,"end_character":32},"in_reply_to":"3fa0c359_83653220","updated":"2018-03-22 05:48:22.000000000","message":"Done","commit_id":"1e9b6279eca702146f2240c8ddf243a9743d8ff9"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"1cb2ef1dc3567438bae64f4b3ea5eb3374904c8d","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        instance \u003d common.get_instance(self.compute_api, context, id)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        # Check migration target can\u0027t be the same to instance is on"},{"line_number":106,"context_line":"        if instance.host \u003d\u003d host:"},{"line_number":107,"context_line":"            msg \u003d _(\"Invalid host. Cannot live migrate to the host on \""},{"line_number":108,"context_line":"                    \"which the server is currently running.\")"},{"line_number":109,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        try:"},{"line_number":112,"context_line":"            self.compute_api.live_migrate(context, instance, block_migration,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa0c359_038b62c2","line":109,"range":{"start_line":105,"start_character":0,"end_line":109,"end_character":53},"updated":"2018-02-14 06:49:51.000000000","message":"This check should be in nova/compute/api.py like the cold migration case.\n\nhttps://github.com/openstack/nova/blob/87036b4b27945b6ae34b57e6ee15dd76eb7f726a/nova/compute/api.py#L3220-L3221","commit_id":"1e9b6279eca702146f2240c8ddf243a9743d8ff9"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"13c7e8774d21872cafe5b3c55f13a7cd6223c852","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        instance \u003d common.get_instance(self.compute_api, context, id)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        # Check migration target can\u0027t be the same to instance is on"},{"line_number":106,"context_line":"        if instance.host \u003d\u003d host:"},{"line_number":107,"context_line":"            msg \u003d _(\"Invalid host. Cannot live migrate to the host on \""},{"line_number":108,"context_line":"                    \"which the server is currently running.\")"},{"line_number":109,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        try:"},{"line_number":112,"context_line":"            self.compute_api.live_migrate(context, instance, block_migration,"}],"source_content_type":"text/x-python","patch_set":4,"id":"df7087c5_e0802249","line":109,"range":{"start_line":105,"start_character":0,"end_line":109,"end_character":53},"in_reply_to":"3fa0c359_038b62c2","updated":"2018-03-22 05:48:22.000000000","message":"I don\u0027t think that matters.. add check here can quick find the error and nevertheness we will return 400","commit_id":"1e9b6279eca702146f2240c8ddf243a9743d8ff9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e3ca1fbd791508cbc3f0e523103259e198150f87","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        # Check migration target can\u0027t be the same to instance is on"},{"line_number":106,"context_line":"        if host is not None and instance.host \u003d\u003d host:"},{"line_number":107,"context_line":"            msg \u003d _(\"Invalid host. Cannot live migrate to the host(%s) on \""},{"line_number":108,"context_line":"                    \"which the server is currently running .\") % instance.host"},{"line_number":109,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_6aa888da","line":107,"range":{"start_line":107,"start_character":66,"end_line":107,"end_character":70},"updated":"2018-05-08 18:34:23.000000000","message":"Did you mean to include a space here?","commit_id":"d4cbdde245ea27e0654e0fbc1f43eb1ffcf89389"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"87701c8aa7906be4b46808d0d41a8a3c13f6fcf1","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        # Check migration target can\u0027t be the same to instance is on"},{"line_number":106,"context_line":"        if host is not None and instance.host \u003d\u003d host:"},{"line_number":107,"context_line":"            msg \u003d _(\"Invalid host. Cannot live migrate to the host(%s) on \""},{"line_number":108,"context_line":"                    \"which the server is currently running .\") % instance.host"},{"line_number":109,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_8be4e1e1","line":107,"range":{"start_line":107,"start_character":66,"end_line":107,"end_character":70},"in_reply_to":"5f7c97a3_6aa888da","updated":"2018-05-10 06:46:50.000000000","message":"Done","commit_id":"d4cbdde245ea27e0654e0fbc1f43eb1ffcf89389"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"52e8bb627e912ab3a2598180875d3dbf14e74c07","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        # Check migration target can\u0027t be the same to instance is on"},{"line_number":106,"context_line":"        if host is not None and instance.host \u003d\u003d host:"},{"line_number":107,"context_line":"            msg \u003d _(\"Invalid host. Cannot live migrate to the host (%s) on \""},{"line_number":108,"context_line":"                    \"which the server is currently running .\") % instance.host"},{"line_number":109,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_b245a417","line":108,"range":{"start_line":108,"start_character":58,"end_line":108,"end_character":59},"updated":"2018-05-23 20:48:46.000000000","message":"nit","commit_id":"e225b091314b856068360db14b449564e8ddd096"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3836f35323f8f92cc086996792620570c7e0b63c","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        # Check migration target can\u0027t be the same to instance is on"},{"line_number":106,"context_line":"        if host is not None and instance.host \u003d\u003d host:"},{"line_number":107,"context_line":"            msg \u003d _(\"Invalid host. Cannot live migrate to the host (%s) on \""},{"line_number":108,"context_line":"                    \"which the server is currently running .\") % instance.host"},{"line_number":109,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_16da9fe5","line":108,"range":{"start_line":108,"start_character":58,"end_line":108,"end_character":59},"updated":"2018-08-03 15:07:42.000000000","message":"nix","commit_id":"dcd5c4be79b745a9012faa9137b44501a4e68ab7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5b5cc55343f377026094dbcdf99eba760768d3fc","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        if host is not None and instance.host \u003d\u003d host:"},{"line_number":107,"context_line":"            msg \u003d _(\"Invalid host. Cannot live migrate to the host (%s) on \""},{"line_number":108,"context_line":"                    \"which the server is currently running.\") % instance.host"},{"line_number":109,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        try:"},{"line_number":112,"context_line":"            self.compute_api.live_migrate(context, instance, block_migration,"}],"source_content_type":"text/x-python","patch_set":14,"id":"3f79a3b5_b4b42037","line":109,"updated":"2018-08-03 16:36:22.000000000","message":"You could actually just do this check within the try/except and raise UnableToMigrateToSelf since that\u0027s what the conductor task would do:\n\nhttps://github.com/openstack/nova/blob/4d19b1779cca62abbfe259ef184fb7ee4e921225/nova/conductor/tasks/live_migrate.py#L184\n\nAnd that\u0027s what would actually happen if async\u003dFalse for using microversion \u003c 2.34","commit_id":"bb7923ec55ed5d878453ff09a445abda3d1b5965"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5be05d351aa73ece32d3f2af9d437fbcb97c6715","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                exception.ComputeServiceUnavailable,"},{"line_number":118,"context_line":"                exception.InvalidHypervisorType,"},{"line_number":119,"context_line":"                exception.InvalidCPUInfo,"},{"line_number":120,"context_line":"                exception.UnableToMigrateToSelf,"},{"line_number":121,"context_line":"                exception.DestinationHypervisorTooOld,"},{"line_number":122,"context_line":"                exception.InvalidLocalStorage,"},{"line_number":123,"context_line":"                exception.InvalidSharedStorage,"}],"source_content_type":"text/x-python","patch_set":14,"id":"3fa7e38b_3476aa0e","line":120,"range":{"start_line":120,"start_character":26,"end_line":120,"end_character":47},"updated":"2019-11-10 21:21:04.000000000","message":"This is what you\u0027d get if using microversion \u003c 2.34.","commit_id":"bb7923ec55ed5d878453ff09a445abda3d1b5965"}],"nova/tests/functional/regressions/test_bug_1595962.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"60b2917708a7f54d728e713a23b7e5647f13acb9","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        post \u003d {\"os-migrateLive\": {"},{"line_number":130,"context_line":"                    \"block_migration\": False,"},{"line_number":131,"context_line":"                    \"disk_over_commit\": False,"},{"line_number":132,"context_line":"                    \"host\": \"test_compute1\""},{"line_number":133,"context_line":"                }}"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_506977f6","line":132,"updated":"2018-04-11 18:45:26.000000000","message":"This regression test is failed on nova-tox-functional-py35 like\n\nTraceback (most recent call last):\n  File \"/home/zuul/src/git.openstack.org/openstack/nova/.tox/functional-py35/lib/python3.5/site-packages/mock/mock.py\", line 1305, in patched\n    return func(*args, **keywargs)\n  File \"/home/zuul/src/git.openstack.org/openstack/nova/nova/tests/functional/regressions/test_bug_1595962.py\", line 140, in test_serial_console_live_migrate\n    self.fail(ex.response.content)\n  File \"/home/zuul/src/git.openstack.org/openstack/nova/.tox/functional-py35/lib/python3.5/site-packages/unittest2/case.py\", line 690, in fail\n    raise self.failureException(msg)\nAssertionError: b\u0027{\"badRequest\": {\"code\": 400, \"message\": \"Invalid host. Cannot live migrate to the host on which the server is currently running.\"}}\u0027\n\nSo we need to apply the similar change here.","commit_id":"d478dfe14a54887ffa3a4d36392dcc53e0344ed0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e3ca1fbd791508cbc3f0e523103259e198150f87","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        server_detail \u003d self.admin_api.get_server(server_id)"},{"line_number":132,"context_line":"        server_host \u003d server_detail[\u0027OS-EXT-SRV-ATTR:host\u0027]"},{"line_number":133,"context_line":"        if server_host \u003d\u003d \"test_compute1\":"},{"line_number":134,"context_line":"            server_host \u003d \"test_compute2\""},{"line_number":135,"context_line":"        else:"},{"line_number":136,"context_line":"            server_host \u003d \"test_compute1\""},{"line_number":137,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_6a81684a","line":134,"range":{"start_line":134,"start_character":12,"end_line":134,"end_character":23},"updated":"2018-05-08 18:34:23.000000000","message":"nit: call this target_host","commit_id":"d4cbdde245ea27e0654e0fbc1f43eb1ffcf89389"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"87701c8aa7906be4b46808d0d41a8a3c13f6fcf1","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        server_detail \u003d self.admin_api.get_server(server_id)"},{"line_number":132,"context_line":"        server_host \u003d server_detail[\u0027OS-EXT-SRV-ATTR:host\u0027]"},{"line_number":133,"context_line":"        if server_host \u003d\u003d \"test_compute1\":"},{"line_number":134,"context_line":"            server_host \u003d \"test_compute2\""},{"line_number":135,"context_line":"        else:"},{"line_number":136,"context_line":"            server_host \u003d \"test_compute1\""},{"line_number":137,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_0bd8d11b","line":134,"range":{"start_line":134,"start_character":12,"end_line":134,"end_character":23},"in_reply_to":"5f7c97a3_6a81684a","updated":"2018-05-10 06:46:50.000000000","message":"Done","commit_id":"d4cbdde245ea27e0654e0fbc1f43eb1ffcf89389"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"8384f163bbb0f1fc6fd2953c3effb05c55757c52","unresolved":false,"context_lines":[{"line_number":123,"context_line":"                           imageRef\u003dself.image_id,"},{"line_number":124,"context_line":"                           flavorRef\u003dself.flavor_id)"},{"line_number":125,"context_line":"        server \u003d self.api.post_server({\u0027server\u0027: server_attr})"},{"line_number":126,"context_line":"        server_id \u003d server[\u0027id\u0027]"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        self.wait_till_active_or_timeout(server_id)"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        # Get server host to make sure relocate to another host"},{"line_number":131,"context_line":"        server_detail \u003d self.admin_api.get_server(server_id)"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_52f31ae8","line":128,"range":{"start_line":126,"start_character":0,"end_line":128,"end_character":51},"updated":"2018-05-21 07:11:25.000000000","message":"nit unrelated.","commit_id":"e225b091314b856068360db14b449564e8ddd096"}],"nova/tests/unit/api/openstack/compute/test_migrate_server.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"e7940e838ffc0950a1e6c6582d9add17ed67c399","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        body[\u0027os-migrateLive\u0027][\u0027host\u0027] \u003d \u0027host1\u0027"},{"line_number":214,"context_line":"        self.mox.ReplayAll()"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        self.assertRaises(webob.exc.HTTPBadRequest,"},{"line_number":217,"context_line":"                          self.controller._migrate_live,"},{"line_number":218,"context_line":"                          self.req, instance.uuid, body\u003dbody)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    def _test_migrate_live_failed_with_exception("},{"line_number":221,"context_line":"                                         self, fake_exc,"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_5dbcab04","line":218,"range":{"start_line":216,"start_character":8,"end_line":218,"end_character":61},"updated":"2018-03-26 06:44:39.000000000","message":"negative case here....","commit_id":"dda47fa3b28d42a22aa92d358fae0eb2c6d268e1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e3ca1fbd791508cbc3f0e523103259e198150f87","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        instance.host \u003d \u0027host1\u0027"},{"line_number":212,"context_line":"        # This sets the target host to same host instance is on"},{"line_number":213,"context_line":"        body[\u0027os-migrateLive\u0027][\u0027host\u0027] \u003d \u0027host1\u0027"},{"line_number":214,"context_line":"        self.mox.ReplayAll()"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        self.assertRaises(webob.exc.HTTPBadRequest,"},{"line_number":217,"context_line":"                          self.controller._migrate_live,"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_0add546f","line":214,"updated":"2018-05-08 18:34:23.000000000","message":"We shouldn\u0027t use mox for new tests. This test is simple enough that you should be able to use mock.","commit_id":"d4cbdde245ea27e0654e0fbc1f43eb1ffcf89389"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"6f2b40f4384d97c1e0a984080e82f53980599d4b","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        instance.host \u003d \u0027host1\u0027"},{"line_number":212,"context_line":"        # This sets the target host to same host instance is on"},{"line_number":213,"context_line":"        body[\u0027os-migrateLive\u0027][\u0027host\u0027] \u003d \u0027host1\u0027"},{"line_number":214,"context_line":"        self.mox.ReplayAll()"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        self.assertRaises(webob.exc.HTTPBadRequest,"},{"line_number":217,"context_line":"                          self.controller._migrate_live,"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_989e8252","line":214,"in_reply_to":"5f7c97a3_0add546f","updated":"2018-05-09 20:23:15.000000000","message":"+1","commit_id":"d4cbdde245ea27e0654e0fbc1f43eb1ffcf89389"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"87701c8aa7906be4b46808d0d41a8a3c13f6fcf1","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        instance.host \u003d \u0027host1\u0027"},{"line_number":212,"context_line":"        # This sets the target host to same host instance is on"},{"line_number":213,"context_line":"        body[\u0027os-migrateLive\u0027][\u0027host\u0027] \u003d \u0027host1\u0027"},{"line_number":214,"context_line":"        self.mox.ReplayAll()"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        self.assertRaises(webob.exc.HTTPBadRequest,"},{"line_number":217,"context_line":"                          self.controller._migrate_live,"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_2bd58de5","line":214,"in_reply_to":"5f7c97a3_989e8252","updated":"2018-05-10 06:46:50.000000000","message":"ok, make sense","commit_id":"d4cbdde245ea27e0654e0fbc1f43eb1ffcf89389"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3836f35323f8f92cc086996792620570c7e0b63c","unresolved":false,"context_lines":[{"line_number":219,"context_line":"            # This sets the target host to same host instance is on"},{"line_number":220,"context_line":"            body[\u0027os-migrateLive\u0027][\u0027host\u0027] \u003d \u0027host1\u0027"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"            self.assertRaises(webob.exc.HTTPBadRequest,"},{"line_number":223,"context_line":"                              self.controller._migrate_live,"},{"line_number":224,"context_line":"                              self.req, instance.uuid, body\u003dbody)"},{"line_number":225,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_96e78fac","line":222,"updated":"2018-08-03 15:07:42.000000000","message":"Assert the actual error is what you expect, using something like:\n\nex \u003d self.assertRaises(...)\nself.assertIn(\u0027Invalid host.\u0027, six.text_type(ex))","commit_id":"dcd5c4be79b745a9012faa9137b44501a4e68ab7"}],"nova/tests/unit/virt/libvirt/fakelibvirt.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e3ca1fbd791508cbc3f0e523103259e198150f87","unresolved":false,"context_lines":[{"line_number":1116,"context_line":"        return self.fakeVersion"},{"line_number":1117,"context_line":""},{"line_number":1118,"context_line":"    def getHostname(self):"},{"line_number":1119,"context_line":"        return uuidutils.generate_uuid()"},{"line_number":1120,"context_line":""},{"line_number":1121,"context_line":"    def domainEventRegisterAny(self, dom, eventid, callback, opaque):"},{"line_number":1122,"context_line":"        self._event_callbacks[eventid] \u003d [callback, opaque]"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_6acf28b0","line":1119,"updated":"2018-05-08 18:34:23.000000000","message":"Why did this need to change?","commit_id":"d4cbdde245ea27e0654e0fbc1f43eb1ffcf89389"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"87701c8aa7906be4b46808d0d41a8a3c13f6fcf1","unresolved":false,"context_lines":[{"line_number":1116,"context_line":"        return self.fakeVersion"},{"line_number":1117,"context_line":""},{"line_number":1118,"context_line":"    def getHostname(self):"},{"line_number":1119,"context_line":"        return uuidutils.generate_uuid()"},{"line_number":1120,"context_line":""},{"line_number":1121,"context_line":"    def domainEventRegisterAny(self, dom, eventid, callback, opaque):"},{"line_number":1122,"context_line":"        self._event_callbacks[eventid] \u003d [callback, opaque]"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_6b6b851d","line":1119,"in_reply_to":"5f7c97a3_6acf28b0","updated":"2018-05-10 06:46:50.000000000","message":"it\u0027s been a while after the change , if I remember it correctly, it\u0027s because the hostname of fake driver is same and leads to the functional test on live-migration lead to issue because fake driver will be used on both compute nodes and those nodes has same name..","commit_id":"d4cbdde245ea27e0654e0fbc1f43eb1ffcf89389"}]}
