)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"a0e1533e70d7cf0221934efcfbc5af4dba2cb191","unresolved":false,"context_lines":[{"line_number":10,"context_line":"The function is a common function for volume, snapshot and backup"},{"line_number":11,"context_line":"resources."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Depends-On: I4780bf2a2bd8520fa720a06a7624db59615880fe"},{"line_number":14,"context_line":"Change-Id: I070a9f84b8b199df22765391482f7d69a5414db3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"5a3905b3_db6b681c","line":13,"updated":"2017-01-24 06:48:54.000000000","message":"Sorry I missed this in my previous review. I would say it\u0027s the other way around, I4780bf2a2bd8520fa720a06a7624db59615880fe depends on this patch.\n\nYou should remove the Depends-on from here and add it to I4780bf2a2bd8520fa720a06a7624db59615880fe, but point to this patch.\n\nBTW, why all other tests are update here, and only one is left for a dedicated patch?","commit_id":"8804e2cd097c37e19f2fc2a7e5c6c413541c4ae4"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"6a42a5ee4c04d6ea1ff72f200459898ebb2d26b1","unresolved":false,"context_lines":[{"line_number":10,"context_line":"The function is a common function for volume, snapshot and backup"},{"line_number":11,"context_line":"resources."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Depends-On: I4780bf2a2bd8520fa720a06a7624db59615880fe"},{"line_number":14,"context_line":"Change-Id: I070a9f84b8b199df22765391482f7d69a5414db3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"5a3905b3_79751b62","line":13,"in_reply_to":"5a3905b3_db6b681c","updated":"2017-01-24 08:15:40.000000000","message":"Hi Andrea,\nThanks for you comments,\nThe reason I\u0027ve created a separated test is that this specific test is under \u0027cinder\u0027 project and Jenkins check this test: cinder.tests.tempest.api.volume.test_volume_unicode.CinderUnicodeTest in gate: gate-tempest-dsvm-full-devstack-plugin-ceph-ubuntu-xenial. \nIf I\u0027ll change the Depends-on as you mentioned, this patch will fail.\nAnyway, as this gate is now \u0027non-voting\u0027, Depends-on is probably even more so unnecessary.","commit_id":"8804e2cd097c37e19f2fc2a7e5c6c413541c4ae4"}],"tempest/common/waiters.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"69e0b1f8b0807b0bbb5b40d67b1f61271f602a0f","unresolved":false,"context_lines":[{"line_number":173,"context_line":"    resources. The function extracts the name of the desired resource from"},{"line_number":174,"context_line":"    the client class name of the resource."},{"line_number":175,"context_line":"    \"\"\""},{"line_number":176,"context_line":"    resource_name \u003d re.findall(r\u0027(Volume|Snapshot|Backup)\u0027,"},{"line_number":177,"context_line":"                               client.__class__.__name__)[0].lower()"},{"line_number":178,"context_line":"    show_resource \u003d getattr(client, \u0027show_\u0027 + resource_name)"},{"line_number":179,"context_line":"    body \u003d show_resource(resource_id)[\u0027{}\u0027.format(resource_name)]"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a629dbe_09d48b45","line":176,"updated":"2016-11-14 08:49:02.000000000","message":"That\u0027s clever but maybe too much :) In a followup patch consider adding an explicit error message if findall(...) returns 0 result.","commit_id":"961c2210c13b20ea6cc8b939e94ee3461c06821d"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"65dbd4cd8d272c6b0f26aae9f618fef266e429f4","unresolved":false,"context_lines":[{"line_number":188,"context_line":"            raise exceptions.VolumeResourceBuildErrorException("},{"line_number":189,"context_line":"                resource_name\u003dresource_name, resource_id\u003dresource_id)"},{"line_number":190,"context_line":"        if resource_name \u003d\u003d \u0027volume\u0027 and resource_status \u003d\u003d \u0027error_restoring\u0027:"},{"line_number":191,"context_line":"            raise exceptions.VolumeRestoreErrorException(volume_id\u003dresource_id)"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        if int(time.time()) - start \u003e\u003d client.build_timeout:"},{"line_number":194,"context_line":"            message \u003d (\u0027%s %s failed to reach %s status (current %s) \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a3c09a3_5530e256","line":191,"range":{"start_line":191,"start_character":29,"end_line":191,"end_character":56},"updated":"2017-01-13 13:18:40.000000000","message":"NIT: This exception is not used and was never used since it\u0027s introduction in I8f6d0828a84ec5d4a5fa6332e55152bd67eaa605.\n\nWe do need to handle \u0027error_restoring\u0027, I\u0027m not sure we need to handle it as a separate exception, it should be enough to include the actual error status in the exception message...","commit_id":"961c2210c13b20ea6cc8b939e94ee3461c06821d"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"34925ca9d0add7cdf70413592aaf8177cb10854e","unresolved":false,"context_lines":[{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    while resource_status !\u003d status:"},{"line_number":184,"context_line":"        time.sleep(client.build_interval)"},{"line_number":185,"context_line":"        body \u003d show_resource(resource_id)[\u0027{}\u0027.format(resource_name)]"},{"line_number":186,"context_line":"        resource_status \u003d body[\u0027status\u0027]"},{"line_number":187,"context_line":"        if resource_status \u003d\u003d \u0027error\u0027 and resource_status !\u003d status:"},{"line_number":188,"context_line":"            raise exceptions.VolumeResourceBuildErrorException("}],"source_content_type":"text/x-python","patch_set":22,"id":"7a3c09a3_122d90a7","line":185,"range":{"start_line":185,"start_character":42,"end_line":185,"end_character":68},"updated":"2017-01-13 13:25:17.000000000","message":"Why do you need this and not just resource_name?","commit_id":"c20b5423df4810202d9557e8651c36a2d5f276de"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"2a9edbdabea361d25dc58f1dcadc1bcd02574533","unresolved":false,"context_lines":[{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    while resource_status !\u003d status:"},{"line_number":184,"context_line":"        time.sleep(client.build_interval)"},{"line_number":185,"context_line":"        body \u003d show_resource(resource_id)[\u0027{}\u0027.format(resource_name)]"},{"line_number":186,"context_line":"        resource_status \u003d body[\u0027status\u0027]"},{"line_number":187,"context_line":"        if resource_status \u003d\u003d \u0027error\u0027 and resource_status !\u003d status:"},{"line_number":188,"context_line":"            raise exceptions.VolumeResourceBuildErrorException("}],"source_content_type":"text/x-python","patch_set":22,"id":"5a3905b3_b5d8321f","line":185,"range":{"start_line":185,"start_character":42,"end_line":185,"end_character":68},"in_reply_to":"7a3c09a3_122d90a7","updated":"2017-01-19 11:39:28.000000000","message":"Oops, thanks","commit_id":"c20b5423df4810202d9557e8651c36a2d5f276de"},{"author":{"_account_id":23003,"name":"Gal Amado","email":"gamado@redhat.com","username":"gamado"},"change_message_id":"73e5b3b3d408b752bb1669639899a52685bcc4a2","unresolved":false,"context_lines":[{"line_number":176,"context_line":"    resource_name \u003d re.findall(r\u0027(Volume|Snapshot|Backup)\u0027,"},{"line_number":177,"context_line":"                               client.__class__.__name__)[0].lower()"},{"line_number":178,"context_line":"    show_resource \u003d getattr(client, \u0027show_\u0027 + resource_name)"},{"line_number":179,"context_line":"    body \u003d show_resource(resource_id)[resource_name]"},{"line_number":180,"context_line":"    resource_status \u003d body[\u0027status\u0027]"},{"line_number":181,"context_line":"    start \u003d int(time.time())"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    while resource_status !\u003d status:"}],"source_content_type":"text/x-python","patch_set":26,"id":"1a430d35_90e4a8e1","line":180,"range":{"start_line":179,"start_character":0,"end_line":180,"end_character":36},"updated":"2017-02-07 13:04:44.000000000","message":"Since you\u0027re not using the body in other context, would it still be readable to have it in 1 line ?\n\nresource_status \u003d show_resource(resource_id)[resource_name][\u0027status\u0027]\n\nIt appears in some 4 places in this file ...","commit_id":"c1e9c93f3718387795e1f445c9a442ef6c7b6d67"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"6efd691069ac9aad4180a794250a327f13cf6d5b","unresolved":false,"context_lines":[{"line_number":176,"context_line":"    resource_name \u003d re.findall(r\u0027(Volume|Snapshot|Backup)\u0027,"},{"line_number":177,"context_line":"                               client.__class__.__name__)[0].lower()"},{"line_number":178,"context_line":"    show_resource \u003d getattr(client, \u0027show_\u0027 + resource_name)"},{"line_number":179,"context_line":"    body \u003d show_resource(resource_id)[resource_name]"},{"line_number":180,"context_line":"    resource_status \u003d body[\u0027status\u0027]"},{"line_number":181,"context_line":"    start \u003d int(time.time())"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    while resource_status !\u003d status:"}],"source_content_type":"text/x-python","patch_set":26,"id":"1a430d35_36f04cc9","line":180,"range":{"start_line":179,"start_character":0,"end_line":180,"end_character":36},"in_reply_to":"1a430d35_90e4a8e1","updated":"2017-02-07 13:43:50.000000000","message":"Yes, thanks","commit_id":"c1e9c93f3718387795e1f445c9a442ef6c7b6d67"}],"tempest/exceptions.py":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"a27537e0102dff94dc4063a1f853d91bd93662c6","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    message \u003d \"Image %(image_id)s failed to become ACTIVE in the allotted time\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class VolumeBuildErrorException(exceptions.TempestException):"},{"line_number":37,"context_line":"    message \u003d \"Volume %(volume_id)s failed to build and is in ERROR status\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5a74a57a_48d98621","line":36,"updated":"2016-11-28 07:32:10.000000000","message":"This exception isn\u0027t used in Tempest repository anymore.","commit_id":"13aa9ecdab09c1425f1b4aa979378e1981025e29"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"fe8b378fa2b7d3d763581c8f054aef3bbf033c84","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    message \u003d \"Image %(image_id)s failed to become ACTIVE in the allotted time\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class VolumeBuildErrorException(exceptions.TempestException):"},{"line_number":37,"context_line":"    message \u003d \"Volume %(volume_id)s failed to build and is in ERROR status\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5a74a57a_0a71e7e0","line":36,"in_reply_to":"5a74a57a_48d98621","updated":"2016-11-29 17:59:51.000000000","message":"Thanks for your comment, I\u0027ll remove this exception","commit_id":"13aa9ecdab09c1425f1b4aa979378e1981025e29"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"a27537e0102dff94dc4063a1f853d91bd93662c6","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    message \u003d \"Volume %(volume_id)s failed to restore and is in ERROR status\""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"class SnapshotBuildErrorException(exceptions.TempestException):"},{"line_number":50,"context_line":"    message \u003d \"Snapshot %(snapshot_id)s failed to build and is in ERROR status\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5a74a57a_68d642f2","line":49,"updated":"2016-11-28 07:32:10.000000000","message":"ditto","commit_id":"13aa9ecdab09c1425f1b4aa979378e1981025e29"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"fe8b378fa2b7d3d763581c8f054aef3bbf033c84","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    message \u003d \"Volume %(volume_id)s failed to restore and is in ERROR status\""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"class SnapshotBuildErrorException(exceptions.TempestException):"},{"line_number":50,"context_line":"    message \u003d \"Snapshot %(snapshot_id)s failed to build and is in ERROR status\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5a74a57a_aa163356","line":49,"in_reply_to":"5a74a57a_68d642f2","updated":"2016-11-29 17:59:51.000000000","message":"ditto","commit_id":"13aa9ecdab09c1425f1b4aa979378e1981025e29"}]}
