)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"c7c5e043774fb34bb737bb73e24b604f4d160106","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If reclaim_instance_interval \u003e 0 in nova.conf, some testcases will"},{"line_number":10,"context_line":"fail cause of resource\u0027s state is \u0027in-use\u0027. This patch adds one"},{"line_number":11,"context_line":"option \u0027foce_delete_server\u0027 in section compute. Set True if"},{"line_number":12,"context_line":"reclaim_instance_interval \u003e 0 in nova.conf."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I406188ac2aa54419fa4e44f547ae80a31b58b858"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3fa7e38b_5c1c76c1","line":11,"updated":"2020-01-20 09:06:14.000000000","message":"force","commit_id":"5e0b794e6bc5a8c385545b8265a5a209e1e9eb91"},{"author":{"_account_id":23950,"name":"Eric Xie","email":"eric_xiett@163.com","username":"ericxie"},"change_message_id":"fc71964fb96a7a37255cbc51f7863726f10c22e4","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If reclaim_instance_interval \u003e 0 in nova.conf, some testcases will"},{"line_number":10,"context_line":"fail cause of resource\u0027s state is \u0027in-use\u0027. This patch adds one"},{"line_number":11,"context_line":"option \u0027foce_delete_server\u0027 in section compute. Set True if"},{"line_number":12,"context_line":"reclaim_instance_interval \u003e 0 in nova.conf."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I406188ac2aa54419fa4e44f547ae80a31b58b858"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3fa7e38b_626c2c33","line":11,"in_reply_to":"3fa7e38b_5c1c76c1","updated":"2020-01-20 10:00:49.000000000","message":"Done","commit_id":"5e0b794e6bc5a8c385545b8265a5a209e1e9eb91"}],"tempest/api/compute/base.py":[{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"5480787352513783eb68fff302c7510852055237","unresolved":false,"context_lines":[{"line_number":254,"context_line":"            if CONF.compute.force_delete_server \\"},{"line_number":255,"context_line":"            else cls.servers_client.delete_server"},{"line_number":256,"context_line":"        for server in servers:"},{"line_number":257,"context_line":"            cls.addClassResourceCleanup("},{"line_number":258,"context_line":"                test_utils.call_and_ignore_notfound_exc,"},{"line_number":259,"context_line":"                del_func, server[\u0027id\u0027])"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"        return body"},{"line_number":262,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_e7de3fda","line":259,"range":{"start_line":257,"start_character":0,"end_line":259,"end_character":39},"updated":"2019-12-17 02:47:35.000000000","message":"This is not the only place to delete server, so, if we want to support soft-delete in Tempest, maybe we can only add force_delete_server in wait_for_server_termination.","commit_id":"f1321c2f4076ca0ccf09b91ea09d3265d1df3ba2"},{"author":{"_account_id":23950,"name":"Eric Xie","email":"eric_xiett@163.com","username":"ericxie"},"change_message_id":"d624447405df36e7ea2c871e639efa976849ad65","unresolved":false,"context_lines":[{"line_number":254,"context_line":"            if CONF.compute.force_delete_server \\"},{"line_number":255,"context_line":"            else cls.servers_client.delete_server"},{"line_number":256,"context_line":"        for server in servers:"},{"line_number":257,"context_line":"            cls.addClassResourceCleanup("},{"line_number":258,"context_line":"                test_utils.call_and_ignore_notfound_exc,"},{"line_number":259,"context_line":"                del_func, server[\u0027id\u0027])"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"        return body"},{"line_number":262,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_043a9696","line":259,"range":{"start_line":257,"start_character":0,"end_line":259,"end_character":39},"in_reply_to":"3fa7e38b_e7de3fda","updated":"2020-01-11 09:24:28.000000000","message":"Done","commit_id":"f1321c2f4076ca0ccf09b91ea09d3265d1df3ba2"}],"tempest/common/waiters.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"1f2eb03b83bf3eb144b55d48a43f6412e14f6d2f","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                server_id)"},{"line_number":127,"context_line":"        if server_status.lower() \u003d\u003d \u0027soft_deleted\u0027 and \\"},{"line_number":128,"context_line":"                CONF.compute.soft_delete_server:"},{"line_number":129,"context_line":"            LOG.debug(\u0027When enable soft deletion of servers, should force"},{"line_number":130,"context_line":"                       deleting server.\u0027)"},{"line_number":131,"context_line":"            client.force_delete_server(server_id)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        if int(time.time()) - start_time \u003e\u003d client.build_timeout:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_133f36e0","line":130,"range":{"start_line":129,"start_character":22,"end_line":130,"end_character":40},"updated":"2020-01-13 05:50:45.000000000","message":"This is not correct multiline string syntax. See L177-179 below for an example.\n\nA better way of stating this would be: LOG.debug(\"Automatically force-deleting soft-deleted server %s\", server_id)","commit_id":"3c55b0f750e9bf113562162fc57954d8bd3408cc"},{"author":{"_account_id":23950,"name":"Eric Xie","email":"eric_xiett@163.com","username":"ericxie"},"change_message_id":"ee499032437204b4d972e4ce05ea47dba1e30023","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                server_id)"},{"line_number":127,"context_line":"        if server_status.lower() \u003d\u003d \u0027soft_deleted\u0027 and \\"},{"line_number":128,"context_line":"                CONF.compute.soft_delete_server:"},{"line_number":129,"context_line":"            LOG.debug(\u0027When enable soft deletion of servers, should force"},{"line_number":130,"context_line":"                       deleting server.\u0027)"},{"line_number":131,"context_line":"            client.force_delete_server(server_id)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        if int(time.time()) - start_time \u003e\u003d client.build_timeout:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_de90c59a","line":130,"range":{"start_line":129,"start_character":22,"end_line":130,"end_character":40},"in_reply_to":"3fa7e38b_133f36e0","updated":"2020-01-13 06:52:02.000000000","message":"Done","commit_id":"3c55b0f750e9bf113562162fc57954d8bd3408cc"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"d52b5b69582b3ac1e31703da6066dcbf1b0882ef","unresolved":false,"context_lines":[{"line_number":124,"context_line":"            raise lib_exc.DeleteErrorException("},{"line_number":125,"context_line":"                \"Server %s failed to delete and is in ERROR status\" %"},{"line_number":126,"context_line":"                server_id)"},{"line_number":127,"context_line":"        if server_status.lower() \u003d\u003d \u0027soft_deleted\u0027 and \\"},{"line_number":128,"context_line":"                CONF.compute.soft_delete_server:"},{"line_number":129,"context_line":"            LOG.debug(\"Automatically force-deleting soft-deleted server %s\","},{"line_number":130,"context_line":"                      server_id)"},{"line_number":131,"context_line":"            client.force_delete_server(server_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_daacee89","line":128,"range":{"start_line":127,"start_character":0,"end_line":128,"end_character":48},"updated":"2020-01-19 02:52:38.000000000","message":"1. nit:\n   better not use back slash,\nif (server_status.lower() \u003d\u003d \u0027soft_deleted\u0027 and\n        CONF.compute.soft_delete_server):\n\n2. I am thinking of not adding soft_delete_server in config.py, because if server status enters \"soft_deleted\", then it means the system must have enabled soft_delete_server. So the config item seems not of much value.\n\n3. If we do not use CONF.compute.soft_delete_server, then a simple comment can be added here.","commit_id":"13a9bc7da5d8498ba931729dd850ea8c86dbf7bc"},{"author":{"_account_id":23950,"name":"Eric Xie","email":"eric_xiett@163.com","username":"ericxie"},"change_message_id":"3f40062bec973740ae8ad710b8618929110a48af","unresolved":false,"context_lines":[{"line_number":124,"context_line":"            raise lib_exc.DeleteErrorException("},{"line_number":125,"context_line":"                \"Server %s failed to delete and is in ERROR status\" %"},{"line_number":126,"context_line":"                server_id)"},{"line_number":127,"context_line":"        if server_status.lower() \u003d\u003d \u0027soft_deleted\u0027 and \\"},{"line_number":128,"context_line":"                CONF.compute.soft_delete_server:"},{"line_number":129,"context_line":"            LOG.debug(\"Automatically force-deleting soft-deleted server %s\","},{"line_number":130,"context_line":"                      server_id)"},{"line_number":131,"context_line":"            client.force_delete_server(server_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_cdb0ba00","line":128,"range":{"start_line":127,"start_character":0,"end_line":128,"end_character":48},"in_reply_to":"3fa7e38b_daacee89","updated":"2020-01-19 07:20:21.000000000","message":"Done","commit_id":"13a9bc7da5d8498ba931729dd850ea8c86dbf7bc"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"c7c5e043774fb34bb737bb73e24b604f4d160106","unresolved":false,"context_lines":[{"line_number":124,"context_line":"            raise lib_exc.DeleteErrorException("},{"line_number":125,"context_line":"                \"Server %s failed to delete and is in ERROR status\" %"},{"line_number":126,"context_line":"                server_id)"},{"line_number":127,"context_line":"        if server_status.lower() \u003d\u003d \u0027soft_deleted\u0027:"},{"line_number":128,"context_line":"            # Soft-deleted instances need to be forcibly deleted to"},{"line_number":129,"context_line":"            # prevent some test cases from failing."},{"line_number":130,"context_line":"            LOG.debug(\"Automatically force-deleting soft-deleted server %s\","}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_7c17f29e","line":127,"updated":"2020-01-20 09:06:14.000000000","message":"Why set to lower here? Wondering just to keep consistent with the previous if server_status","commit_id":"5e0b794e6bc5a8c385545b8265a5a209e1e9eb91"},{"author":{"_account_id":23950,"name":"Eric Xie","email":"eric_xiett@163.com","username":"ericxie"},"change_message_id":"fc71964fb96a7a37255cbc51f7863726f10c22e4","unresolved":false,"context_lines":[{"line_number":124,"context_line":"            raise lib_exc.DeleteErrorException("},{"line_number":125,"context_line":"                \"Server %s failed to delete and is in ERROR status\" %"},{"line_number":126,"context_line":"                server_id)"},{"line_number":127,"context_line":"        if server_status.lower() \u003d\u003d \u0027soft_deleted\u0027:"},{"line_number":128,"context_line":"            # Soft-deleted instances need to be forcibly deleted to"},{"line_number":129,"context_line":"            # prevent some test cases from failing."},{"line_number":130,"context_line":"            LOG.debug(\"Automatically force-deleting soft-deleted server %s\","}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_2277140a","line":127,"in_reply_to":"3fa7e38b_7c17f29e","updated":"2020-01-20 10:00:49.000000000","message":"Done","commit_id":"5e0b794e6bc5a8c385545b8265a5a209e1e9eb91"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"85c3ec9b78916e0938d83cc3165ba6ce32f9f366","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                     \u0027/\u0027.join((old_status, str(old_task_state))),"},{"line_number":121,"context_line":"                     \u0027/\u0027.join((server_status, str(task_state))),"},{"line_number":122,"context_line":"                     time.time() - start_time)"},{"line_number":123,"context_line":"        if server_status \u003d\u003d \u0027ERROR\u0027 and not ignore_error:"},{"line_number":124,"context_line":"            raise lib_exc.DeleteErrorException("},{"line_number":125,"context_line":"                \"Server %s failed to delete and is in ERROR status\" %"},{"line_number":126,"context_line":"                server_id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1fa4df85_21e827e0","line":123,"range":{"start_line":123,"start_character":36,"end_line":123,"end_character":57},"updated":"2020-03-05 23:54:43.000000000","message":"Do we also not need this flag handled below too? Or else that is gap and how the flag is used.","commit_id":"d0ef93e01698439018a9441e0cae7327fa778963"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"9cd159d9db5075981720331830727b3ac997b781","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                     \u0027/\u0027.join((old_status, str(old_task_state))),"},{"line_number":121,"context_line":"                     \u0027/\u0027.join((server_status, str(task_state))),"},{"line_number":122,"context_line":"                     time.time() - start_time)"},{"line_number":123,"context_line":"        if server_status \u003d\u003d \u0027ERROR\u0027 and not ignore_error:"},{"line_number":124,"context_line":"            raise lib_exc.DeleteErrorException("},{"line_number":125,"context_line":"                \"Server %s failed to delete and is in ERROR status\" %"},{"line_number":126,"context_line":"                server_id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_6894b737","line":123,"range":{"start_line":123,"start_character":36,"end_line":123,"end_character":57},"in_reply_to":"1fa4df85_21e827e0","updated":"2020-04-02 09:35:48.000000000","message":"well, soft deleted state is not an error, it\u0027s just how system deals with deleting server, as per tests the server should be really deleted no matter how system is configured. So if I get the change right, the change makes sure the server will get deleted right away (if it\u0027s marked for later deletion - SOFT_DELETED state) and the code execution will continue from top of the while loop - from that point wait_for_server_termination will behave the same as for non soft deleted server terminations - if it gets to ERROR status, it will then pass this condition","commit_id":"d0ef93e01698439018a9441e0cae7327fa778963"}],"tempest/config.py":[{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"5480787352513783eb68fff302c7510852055237","unresolved":false,"context_lines":[{"line_number":376,"context_line":"                    \u0027allow_availability_zone_fallback\u003dFalse in cinder.conf), \u0027"},{"line_number":377,"context_line":"                    \u0027the volume create request will fail and the instance \u0027"},{"line_number":378,"context_line":"                    \u0027will fail the build request.\u0027),"},{"line_number":379,"context_line":"    cfg.BoolOpt(\u0027force_delete_server\u0027,"},{"line_number":380,"context_line":"               default\u003dFalse,"},{"line_number":381,"context_line":"               help\u003d\u0027Does the test environment require forcible deletion of \u0027"},{"line_number":382,"context_line":"                    \u0027virtual machines? Set True if \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_87e98b80","line":379,"range":{"start_line":379,"start_character":17,"end_line":379,"end_character":36},"updated":"2019-12-17 02:47:35.000000000","message":"soft_delete_server","commit_id":"f1321c2f4076ca0ccf09b91ea09d3265d1df3ba2"},{"author":{"_account_id":23950,"name":"Eric Xie","email":"eric_xiett@163.com","username":"ericxie"},"change_message_id":"d624447405df36e7ea2c871e639efa976849ad65","unresolved":false,"context_lines":[{"line_number":376,"context_line":"                    \u0027allow_availability_zone_fallback\u003dFalse in cinder.conf), \u0027"},{"line_number":377,"context_line":"                    \u0027the volume create request will fail and the instance \u0027"},{"line_number":378,"context_line":"                    \u0027will fail the build request.\u0027),"},{"line_number":379,"context_line":"    cfg.BoolOpt(\u0027force_delete_server\u0027,"},{"line_number":380,"context_line":"               default\u003dFalse,"},{"line_number":381,"context_line":"               help\u003d\u0027Does the test environment require forcible deletion of \u0027"},{"line_number":382,"context_line":"                    \u0027virtual machines? Set True if \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_a4b5c21b","line":379,"range":{"start_line":379,"start_character":17,"end_line":379,"end_character":36},"in_reply_to":"3fa7e38b_87e98b80","updated":"2020-01-11 09:24:28.000000000","message":"Done","commit_id":"f1321c2f4076ca0ccf09b91ea09d3265d1df3ba2"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"5480787352513783eb68fff302c7510852055237","unresolved":false,"context_lines":[{"line_number":378,"context_line":"                    \u0027will fail the build request.\u0027),"},{"line_number":379,"context_line":"    cfg.BoolOpt(\u0027force_delete_server\u0027,"},{"line_number":380,"context_line":"               default\u003dFalse,"},{"line_number":381,"context_line":"               help\u003d\u0027Does the test environment require forcible deletion of \u0027"},{"line_number":382,"context_line":"                    \u0027virtual machines? Set True if \u0027"},{"line_number":383,"context_line":"                    \u0027reclaim_instance_interval \u003e 0 in nova.conf.\u0027),"},{"line_number":384,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_27fe9739","line":381,"range":{"start_line":381,"start_character":46,"end_line":381,"end_character":63},"updated":"2019-12-17 02:47:35.000000000","message":"enable soft","commit_id":"f1321c2f4076ca0ccf09b91ea09d3265d1df3ba2"},{"author":{"_account_id":23950,"name":"Eric Xie","email":"eric_xiett@163.com","username":"ericxie"},"change_message_id":"d624447405df36e7ea2c871e639efa976849ad65","unresolved":false,"context_lines":[{"line_number":378,"context_line":"                    \u0027will fail the build request.\u0027),"},{"line_number":379,"context_line":"    cfg.BoolOpt(\u0027force_delete_server\u0027,"},{"line_number":380,"context_line":"               default\u003dFalse,"},{"line_number":381,"context_line":"               help\u003d\u0027Does the test environment require forcible deletion of \u0027"},{"line_number":382,"context_line":"                    \u0027virtual machines? Set True if \u0027"},{"line_number":383,"context_line":"                    \u0027reclaim_instance_interval \u003e 0 in nova.conf.\u0027),"},{"line_number":384,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_44308eb8","line":381,"range":{"start_line":381,"start_character":46,"end_line":381,"end_character":63},"in_reply_to":"3fa7e38b_27fe9739","updated":"2020-01-11 09:24:28.000000000","message":"Done","commit_id":"f1321c2f4076ca0ccf09b91ea09d3265d1df3ba2"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"1f2eb03b83bf3eb144b55d48a43f6412e14f6d2f","unresolved":false,"context_lines":[{"line_number":377,"context_line":"                    \u0027the volume create request will fail and the instance \u0027"},{"line_number":378,"context_line":"                    \u0027will fail the build request.\u0027),"},{"line_number":379,"context_line":"    cfg.BoolOpt(\u0027soft_delete_server\u0027,"},{"line_number":380,"context_line":"               default\u003dFalse,"},{"line_number":381,"context_line":"               help\u003d\u0027Does the test environment enable soft deletion of \u0027"},{"line_number":382,"context_line":"                    \u0027virtual machines? Set True if \u0027"},{"line_number":383,"context_line":"                    \u0027reclaim_instance_interval \u003e 0 in nova.conf.\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_3344b273","line":380,"updated":"2020-01-13 05:50:45.000000000","message":"nit: not aligned with L379 above","commit_id":"3c55b0f750e9bf113562162fc57954d8bd3408cc"},{"author":{"_account_id":23950,"name":"Eric Xie","email":"eric_xiett@163.com","username":"ericxie"},"change_message_id":"ee499032437204b4d972e4ce05ea47dba1e30023","unresolved":false,"context_lines":[{"line_number":377,"context_line":"                    \u0027the volume create request will fail and the instance \u0027"},{"line_number":378,"context_line":"                    \u0027will fail the build request.\u0027),"},{"line_number":379,"context_line":"    cfg.BoolOpt(\u0027soft_delete_server\u0027,"},{"line_number":380,"context_line":"               default\u003dFalse,"},{"line_number":381,"context_line":"               help\u003d\u0027Does the test environment enable soft deletion of \u0027"},{"line_number":382,"context_line":"                    \u0027virtual machines? Set True if \u0027"},{"line_number":383,"context_line":"                    \u0027reclaim_instance_interval \u003e 0 in nova.conf.\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_9e8a4d63","line":380,"in_reply_to":"3fa7e38b_3344b273","updated":"2020-01-13 06:52:02.000000000","message":"Done","commit_id":"3c55b0f750e9bf113562162fc57954d8bd3408cc"}]}
