)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":35840,"name":"Roman Bubyr","email":"rbubyr@mirantis.com","username":"rbubyr","status":"Mirantis"},"change_message_id":"93d589fd8ca9cbced31adcf7872b9112d851ec82","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"bfe698cf_c8eaf87c","updated":"2026-05-28 11:17:11.000000000","message":"rebuild","commit_id":"8fbc2372632a399659e110f6d2b8aad95e9b7d64"},{"author":{"_account_id":32704,"name":"Alfredo Garcia","display_name":"Alfredo Garcia","email":"alfrgarc@redhat.com","username":"alfrgarc","status":"Senior Software Quality Engineer @ Red Hat"},"change_message_id":"332cc4b1e456fb460d1552c9a5a25763164535fc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"78f3f36c_2ed06f0a","updated":"2026-05-28 13:32:58.000000000","message":"recheck","commit_id":"8fbc2372632a399659e110f6d2b8aad95e9b7d64"}],"tempest/scenario/test_server_basic_ops.py":[{"author":{"_account_id":32704,"name":"Alfredo Garcia","display_name":"Alfredo Garcia","email":"alfrgarc@redhat.com","username":"alfrgarc","status":"Senior Software Quality Engineer @ Red Hat"},"change_message_id":"620b61fb1913d5cd48fb9611d481658e6bd1571b","unresolved":true,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":"        # Check test data and user_data script created upon instance boot"},{"line_number":181,"context_line":"        output \u003d ssh_client.exec_command("},{"line_number":182,"context_line":"            \u0027cat /tmp/test\u0027"},{"line_number":183,"context_line":"        )"},{"line_number":184,"context_line":"        self.assertEqual(\u0027gzipped user data\\n\u0027, output,"},{"line_number":185,"context_line":"                         \u0027Failed to check gzipped user data\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1586d700_3e3dde8c","line":182,"updated":"2026-05-28 14:22:38.000000000","message":"This step may be flakey because of the variable amount of time it would take for cloud-init to finish executing. There may be times where cat fails to find /tmp/test. \n\nMy recommendation is using something like a \"try / except\" block so that we can deal with the situation where cat fails to find /tmp/test. \n\nPerhaps there could be some sort of timeout, or a certain amount of re-tries before an error is thrown","commit_id":"8fbc2372632a399659e110f6d2b8aad95e9b7d64"},{"author":{"_account_id":35840,"name":"Roman Bubyr","email":"rbubyr@mirantis.com","username":"rbubyr","status":"Mirantis"},"change_message_id":"38dcf2093fb57acbb209cd4b6f2db6548dad3615","unresolved":false,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":"        # Check test data and user_data script created upon instance boot"},{"line_number":181,"context_line":"        output \u003d ssh_client.exec_command("},{"line_number":182,"context_line":"            \u0027cat /tmp/test\u0027"},{"line_number":183,"context_line":"        )"},{"line_number":184,"context_line":"        self.assertEqual(\u0027gzipped user data\\n\u0027, output,"},{"line_number":185,"context_line":"                         \u0027Failed to check gzipped user data\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"e36f6edf_3082fbf8","line":182,"in_reply_to":"1586d700_3e3dde8c","updated":"2026-08-06 09:06:59.000000000","message":"Done","commit_id":"8fbc2372632a399659e110f6d2b8aad95e9b7d64"},{"author":{"_account_id":38173,"name":"Tanvi Nautiyal","email":"tnautiya@redhat.com","username":"tnautiyal"},"change_message_id":"6d7df5e72e1200308bc09b7c99695e8726ed7bed","unresolved":true,"context_lines":[{"line_number":184,"context_line":"        self.assertEqual(\u0027gzipped user data\\n\u0027, output,"},{"line_number":185,"context_line":"                         \u0027Failed to check gzipped user data\u0027)"},{"line_number":186,"context_line":"        curl_request \u003d ssh_client.exec_command("},{"line_number":187,"context_line":"            \u0027curl http://169.254.169.254/openstack/latest/user_data\u0027)"},{"line_number":188,"context_line":"        self.assertEqual(user_data_script, curl_request,"},{"line_number":189,"context_line":"                         \u0027Failed to check user_data script\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"d11d754e_a4e4a9d0","line":187,"updated":"2026-06-25 14:36:10.000000000","message":"Just a small suggestion: This assertion assumes the metadata service returns uncompressed user_data, but OpenStack typically returns it as stored (gzipped bytes).\n\nVerify what the metadata service actually returns before implementing:\n- If it returns gzipped data, the assertion needs to decompress it first\n- If it returns plain text, the current assertion is correct\n\nSuggested fix if gzipped:\ncurl_request \u003d ssh_client.exec_command(\n    \u0027curl http://169.254.169.254/openstack/latest/user_data | base64\u0027)\ngzipped_data \u003d base64.b64decode(curl_request.strip())\ndecompressed \u003d gzip.decompress(gzipped_data).decode(\u0027utf-8\u0027)\nself.assertEqual(user_data_script, decompressed)","commit_id":"8fbc2372632a399659e110f6d2b8aad95e9b7d64"},{"author":{"_account_id":35840,"name":"Roman Bubyr","email":"rbubyr@mirantis.com","username":"rbubyr","status":"Mirantis"},"change_message_id":"38dcf2093fb57acbb209cd4b6f2db6548dad3615","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        self.assertEqual(\u0027gzipped user data\\n\u0027, output,"},{"line_number":185,"context_line":"                         \u0027Failed to check gzipped user data\u0027)"},{"line_number":186,"context_line":"        curl_request \u003d ssh_client.exec_command("},{"line_number":187,"context_line":"            \u0027curl http://169.254.169.254/openstack/latest/user_data\u0027)"},{"line_number":188,"context_line":"        self.assertEqual(user_data_script, curl_request,"},{"line_number":189,"context_line":"                         \u0027Failed to check user_data script\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"6ca8663b_8ea30603","line":187,"in_reply_to":"d11d754e_a4e4a9d0","updated":"2026-08-06 09:06:59.000000000","message":"it returns plain text\ngzipped data stored on the remote agent to save space","commit_id":"8fbc2372632a399659e110f6d2b8aad95e9b7d64"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"69d19b280feda803c0c335bb5c9dcdfc5f730c93","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        # Check test data and user_data script created upon instance boot"},{"line_number":181,"context_line":"        try:"},{"line_number":182,"context_line":"            output \u003d ssh_client.exec_command(\u0027cat /tmp/test\u0027)"},{"line_number":183,"context_line":"        except lib_exc.SSHExecCommandFailed:"},{"line_number":184,"context_line":"            LOG.exception(\u0027test data is not found\u0027)"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        self.assertEqual(\u0027gzipped user data\\n\u0027, output,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9399ed43_6560230e","line":183,"updated":"2026-08-05 18:19:42.000000000","message":"pep8: F821 undefined name \u0027lib_exc\u0027","commit_id":"e804d118b84893aabe66fd14fe6b549f100e4bad"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"69d19b280feda803c0c335bb5c9dcdfc5f730c93","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        try:"},{"line_number":182,"context_line":"            output \u003d ssh_client.exec_command(\u0027cat /tmp/test\u0027)"},{"line_number":183,"context_line":"        except lib_exc.SSHExecCommandFailed:"},{"line_number":184,"context_line":"            LOG.exception(\u0027test data is not found\u0027)"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        self.assertEqual(\u0027gzipped user data\\n\u0027, output,"},{"line_number":187,"context_line":"                         \u0027Failed to check gzipped user data\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a7d6090_32af9c6e","line":184,"updated":"2026-08-05 18:19:42.000000000","message":"pep8: F821 undefined name \u0027LOG\u0027","commit_id":"e804d118b84893aabe66fd14fe6b549f100e4bad"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"ce5e3798c111e53a6dc2547ee07c53788d3eb190","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        try:"},{"line_number":182,"context_line":"            output \u003d ssh_client.exec_command(\u0027cat /tmp/test\u0027)"},{"line_number":183,"context_line":"        except exceptions.SSHExecCommandFailed:"},{"line_number":184,"context_line":"            LOG.debug(\u0027test data is not found\u0027)"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        self.assertEqual(\u0027gzipped user data\\n\u0027, output,"},{"line_number":187,"context_line":"                         \u0027Failed to check gzipped user data\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"215322fd_344dd84f","line":184,"updated":"2026-08-06 11:59:03.000000000","message":"pep8: F821 undefined name \u0027LOG\u0027","commit_id":"2b2ae3f348b7fdccaa78d8b237fdb06a9632d619"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"fcd9ff6c738cef3d73523e6bbacfc5950d2360bf","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from tempest.scenario import manager"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"CONF \u003d config.CONF"},{"line_number":32,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class TestServerBasicOps(manager.ScenarioTest):"}],"source_content_type":"text/x-python","patch_set":4,"id":"42067b1c_dddefb31","line":32,"updated":"2026-08-06 16:43:22.000000000","message":"pep8: F821 undefined name \u0027logging\u0027","commit_id":"c173193ab6e4d24e9250a4feae0590ed5ab3d4d5"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0f05e22d144e7c2467a774883b7bb3e065cb99d7","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import testtools"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from oslo_serialization import jsonutils as json"},{"line_number":21,"context_line":"from oslo_log import log as logging"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from tempest.common import utils"},{"line_number":24,"context_line":"from tempest.common import waiters"}],"source_content_type":"text/x-python","patch_set":5,"id":"4885b450_82d8f6e4","line":21,"updated":"2026-08-10 14:27:39.000000000","message":"pep8: H306: imports not in alphabetical order (oslo_serialization.jsonutils, oslo_log.log)","commit_id":"2d389a9ae3aca086a3421346906f804d24b667b1"}]}
