)]}'
{"tempest/api/compute/admin/test_quotas.py":[{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"9feef4f7d3114c6bbc32665e9816efa4282c8f92","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            self.assertEqual(new_quota_set, quota_set)"},{"line_number":95,"context_line":"        except Exception as e:"},{"line_number":96,"context_line":"            self.fail(\"Admin could not update quota set \""},{"line_number":97,"context_line":"                      \"for the tenant: %s\" % e)"},{"line_number":98,"context_line":"        finally:"},{"line_number":99,"context_line":"            # Reset quota resource limits to default values"},{"line_number":100,"context_line":"            resp, quota_set \u003d self.adm_client.update_quota_set("}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2FNbE%3D","line":97,"updated":"2013-08-05 13:17:43.000000000","message":"This test is just a bit weird with both an addCleanup and a finally trying to do the same thing? I don\u0027t see that the self.fail is really adding anything useful. Also could this not be simplified quite a bit by removing the try block completely, retaining the addCleanup but dumping the finally?","commit_id":"4100ae688ce6d5dbc613e1ee75061704a9983a36"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d0b2257bbd8b9c60c817aa89d46a50db63f96675","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            self.assertEqual(new_quota_set, quota_set)"},{"line_number":95,"context_line":"        except Exception as e:"},{"line_number":96,"context_line":"            self.fail(\"Admin could not update quota set \""},{"line_number":97,"context_line":"                      \"for the tenant: %s\" % e)"},{"line_number":98,"context_line":"        finally:"},{"line_number":99,"context_line":"            # Reset quota resource limits to default values"},{"line_number":100,"context_line":"            resp, quota_set \u003d self.adm_client.update_quota_set("}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQ3%2F%2F4Fs%3D","line":97,"in_reply_to":"AAAAQn%2F%2FM0o%3D","updated":"2013-08-13 16:59:08.000000000","message":"Just a note to myself, after looking into addCleanup more and what the finally block is doing here, the cleanup will fail the test if the cleanup function raises an exception, and it will raise an exception if the response code is \u003e\u003d 400, so we should be just fine here with the existing addCleanup call.","commit_id":"4100ae688ce6d5dbc613e1ee75061704a9983a36"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5a417e37720f6f796989673910488d30e1ffb8a7","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            self.assertEqual(new_quota_set, quota_set)"},{"line_number":95,"context_line":"        except Exception as e:"},{"line_number":96,"context_line":"            self.fail(\"Admin could not update quota set \""},{"line_number":97,"context_line":"                      \"for the tenant: %s\" % e)"},{"line_number":98,"context_line":"        finally:"},{"line_number":99,"context_line":"            # Reset quota resource limits to default values"},{"line_number":100,"context_line":"            resp, quota_set \u003d self.adm_client.update_quota_set("}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2FM0o%3D","line":97,"in_reply_to":"AAAAQn%2F%2FNbE%3D","updated":"2013-08-05 15:38:35.000000000","message":"Good point.  I basically came into this later when doing some other cleanup, I don\u0027t have history on this test otherwise.  My guess is the addCleanup was put in after the finally was already there from the original author and it was just missed in review.  I can remove try/except/finally block altogether.","commit_id":"4100ae688ce6d5dbc613e1ee75061704a9983a36"}],"tempest/api/compute/volumes/test_attach_volume.py":[{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"9feef4f7d3114c6bbc32665e9816efa4282c8f92","unresolved":false,"context_lines":[{"line_number":109,"context_line":"            self.assertNotIn(self.device, partitions)"},{"line_number":110,"context_line":"        except Exception as e:"},{"line_number":111,"context_line":"            # save this since we want to do some cleanup in the finally block"},{"line_number":112,"context_line":"            first_failure \u003d e"},{"line_number":113,"context_line":"        finally:"},{"line_number":114,"context_line":"            if self.attached:"},{"line_number":115,"context_line":"                try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2FNZo%3D","line":112,"updated":"2013-08-05 13:17:43.000000000","message":"I think this is all a bit ugly. Is there any advantage of doing it this way over using addCleanup instead which I think more neatly separates test code from recovery/cleanup code?","commit_id":"4100ae688ce6d5dbc613e1ee75061704a9983a36"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d0b2257bbd8b9c60c817aa89d46a50db63f96675","unresolved":false,"context_lines":[{"line_number":109,"context_line":"            self.assertNotIn(self.device, partitions)"},{"line_number":110,"context_line":"        except Exception as e:"},{"line_number":111,"context_line":"            # save this since we want to do some cleanup in the finally block"},{"line_number":112,"context_line":"            first_failure \u003d e"},{"line_number":113,"context_line":"        finally:"},{"line_number":114,"context_line":"            if self.attached:"},{"line_number":115,"context_line":"                try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQ3%2F%2F4E8%3D","line":112,"in_reply_to":"AAAAQn%2F%2FM0U%3D","updated":"2013-08-13 16:59:08.000000000","message":"It looks like the _detach call should actually be done in the _create_and_attach() method if that fails, not in this test case.  This test case should be doing the delete of the volume with an addCleanup.","commit_id":"4100ae688ce6d5dbc613e1ee75061704a9983a36"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5a417e37720f6f796989673910488d30e1ffb8a7","unresolved":false,"context_lines":[{"line_number":109,"context_line":"            self.assertNotIn(self.device, partitions)"},{"line_number":110,"context_line":"        except Exception as e:"},{"line_number":111,"context_line":"            # save this since we want to do some cleanup in the finally block"},{"line_number":112,"context_line":"            first_failure \u003d e"},{"line_number":113,"context_line":"        finally:"},{"line_number":114,"context_line":"            if self.attached:"},{"line_number":115,"context_line":"                try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2FM0U%3D","line":112,"in_reply_to":"AAAAQn%2F%2FNZo%3D","updated":"2013-08-05 15:38:35.000000000","message":"addCleanup is new to me, I\u0027ll have to take a look at it.  I was originally just trying to remove these unnecessary except blocks that would mask the original exception w/o logging anything useful.","commit_id":"4100ae688ce6d5dbc613e1ee75061704a9983a36"}],"tempest/api/volume/admin/test_volume_types.py":[{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"50246fbedb89d5c62a6e68b3fa8df5239b193507","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        finally:"},{"line_number":91,"context_line":"            if volume:"},{"line_number":92,"context_line":"                # Delete the Volume if it was created"},{"line_number":93,"context_line":"                resp, _ \u003d self.volumes_client.delete_volume(volume[\u0027id\u0027])"},{"line_number":94,"context_line":"                self.assertEqual(202, resp.status)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"            if body:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FQhM%3D","line":93,"updated":"2013-08-03 06:22:02.000000000","message":"If the volume creation causes an error this block will fail, too. I think the original exception will be lost then.","commit_id":"085202fbbc03fc0db156b40fd2322dc35fd6f9e1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3f11c7f347c30f21262ed7bf4219085971df4297","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        finally:"},{"line_number":91,"context_line":"            if volume:"},{"line_number":92,"context_line":"                # Delete the Volume if it was created"},{"line_number":93,"context_line":"                resp, _ \u003d self.volumes_client.delete_volume(volume[\u0027id\u0027])"},{"line_number":94,"context_line":"                self.assertEqual(202, resp.status)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"            if body:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FQHQ%3D","line":93,"in_reply_to":"AAAAQn%2F%2FQTQ%3D","updated":"2013-08-03 19:43:36.000000000","message":"Looking at this some more, the cleanup sections have assertions too, so I probably can\u0027t simply catch an Exception here and pass, I probably need to save off the original exception and check it here.","commit_id":"085202fbbc03fc0db156b40fd2322dc35fd6f9e1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b8a1545966ac64e0c7563dbb95669a62167714bf","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        finally:"},{"line_number":91,"context_line":"            if volume:"},{"line_number":92,"context_line":"                # Delete the Volume if it was created"},{"line_number":93,"context_line":"                resp, _ \u003d self.volumes_client.delete_volume(volume[\u0027id\u0027])"},{"line_number":94,"context_line":"                self.assertEqual(202, resp.status)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"            if body:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FQTQ%3D","line":93,"in_reply_to":"AAAAQn%2F%2FQhM%3D","updated":"2013-08-03 15:56:15.000000000","message":"This is already the case today.  Since this is just cleanup in the finally block, do you suggest adding a try/except Exception: in the finally block and just pass if that fails so the original exception is still raised?","commit_id":"085202fbbc03fc0db156b40fd2322dc35fd6f9e1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d0b2257bbd8b9c60c817aa89d46a50db63f96675","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        except Exception as e:"},{"line_number":92,"context_line":"            # save this since we want to do some cleanup in the finally block"},{"line_number":93,"context_line":"            first_failure \u003d e"},{"line_number":94,"context_line":"        finally:"},{"line_number":95,"context_line":"            if volume:"},{"line_number":96,"context_line":"                # Delete the Volume if it was created"},{"line_number":97,"context_line":"                try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQ3%2F%2F3%2Fo%3D","line":94,"updated":"2013-08-13 16:59:08.000000000","message":"Will move these to addCleanup.","commit_id":"4100ae688ce6d5dbc613e1ee75061704a9983a36"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"efd9bece16801d886006b5c41be75a237c00642f","unresolved":false,"context_lines":[{"line_number":69,"context_line":"            extra_specs\u003dextra_specs)"},{"line_number":70,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":71,"context_line":"        self.assertIn(\u0027id\u0027, body)"},{"line_number":72,"context_line":"        self.addCleanup(self._delete_volume_type, body[\u0027id\u0027])"},{"line_number":73,"context_line":"        self.assertIn(\u0027name\u0027, body)"},{"line_number":74,"context_line":"        resp, volume \u003d self.volumes_client.create_volume("},{"line_number":75,"context_line":"            size\u003d1, display_name\u003dvol_name,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAQ3%2F%2F3mE%3D","line":72,"updated":"2013-08-13 18:28:44.000000000","message":"I think you should move this up to line 70 so we can make sure it is deleted even if remains in error state","commit_id":"9e76801ab3e4338033733732ad92335bd60224d3"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"0229096b0c778ae5dd47f8ed617354c7637bd2cd","unresolved":false,"context_lines":[{"line_number":69,"context_line":"            extra_specs\u003dextra_specs)"},{"line_number":70,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":71,"context_line":"        self.assertIn(\u0027id\u0027, body)"},{"line_number":72,"context_line":"        self.addCleanup(self._delete_volume_type, body[\u0027id\u0027])"},{"line_number":73,"context_line":"        self.assertIn(\u0027name\u0027, body)"},{"line_number":74,"context_line":"        resp, volume \u003d self.volumes_client.create_volume("},{"line_number":75,"context_line":"            size\u003d1, display_name\u003dvol_name,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAARH%2F%2F%2BdU%3D","line":72,"in_reply_to":"AAAAQ3%2F%2F3UI%3D","updated":"2013-08-14 10:13:40.000000000","message":"actually my only concern was about the resp.status assertion but I think there won\u0027t be any volume left around if the resp.status is \u003e 4xx so it\u0027s okay to leave the addCleanup after the assertEqual\n\nso I regret my initial comment","commit_id":"9e76801ab3e4338033733732ad92335bd60224d3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f7741a188756f9007c7ec1b72f9633c4d77af9c1","unresolved":false,"context_lines":[{"line_number":69,"context_line":"            extra_specs\u003dextra_specs)"},{"line_number":70,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":71,"context_line":"        self.assertIn(\u0027id\u0027, body)"},{"line_number":72,"context_line":"        self.addCleanup(self._delete_volume_type, body[\u0027id\u0027])"},{"line_number":73,"context_line":"        self.assertIn(\u0027name\u0027, body)"},{"line_number":74,"context_line":"        resp, volume \u003d self.volumes_client.create_volume("},{"line_number":75,"context_line":"            size\u003d1, display_name\u003dvol_name,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAQ3%2F%2F3UI%3D","line":72,"in_reply_to":"AAAAQ3%2F%2F3mE%3D","updated":"2013-08-13 19:34:04.000000000","message":"The reason I have it here is because of the assertion on the id key being in the body, if that\u0027s not there and I try to call addCleanup with body[\u0027id\u0027], I\u0027ll get a KeyError.  If the assertion for \u0027id\u0027 in body is pointless, maybe it shouldn\u0027t be here?","commit_id":"9e76801ab3e4338033733732ad92335bd60224d3"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"efd9bece16801d886006b5c41be75a237c00642f","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            volume_type\u003dvol_type_name)"},{"line_number":77,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":78,"context_line":"        self.assertIn(\u0027id\u0027, volume)"},{"line_number":79,"context_line":"        self.addCleanup(self._delete_volume, volume[\u0027id\u0027])"},{"line_number":80,"context_line":"        self.assertIn(\u0027display_name\u0027, volume)"},{"line_number":81,"context_line":"        self.assertEqual(volume[\u0027display_name\u0027], vol_name,"},{"line_number":82,"context_line":"                         \"The created volume name is not equal \""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAQ3%2F%2F3l8%3D","line":79,"updated":"2013-08-13 18:28:44.000000000","message":"as per previous comment, I\u0027d move this up to line 77","commit_id":"9e76801ab3e4338033733732ad92335bd60224d3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f7741a188756f9007c7ec1b72f9633c4d77af9c1","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            volume_type\u003dvol_type_name)"},{"line_number":77,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":78,"context_line":"        self.assertIn(\u0027id\u0027, volume)"},{"line_number":79,"context_line":"        self.addCleanup(self._delete_volume, volume[\u0027id\u0027])"},{"line_number":80,"context_line":"        self.assertIn(\u0027display_name\u0027, volume)"},{"line_number":81,"context_line":"        self.assertEqual(volume[\u0027display_name\u0027], vol_name,"},{"line_number":82,"context_line":"                         \"The created volume name is not equal \""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAQ3%2F%2F3UE%3D","line":79,"in_reply_to":"AAAAQ3%2F%2F3l8%3D","updated":"2013-08-13 19:34:04.000000000","message":"Same response.","commit_id":"9e76801ab3e4338033733732ad92335bd60224d3"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"efd9bece16801d886006b5c41be75a237c00642f","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                         \"to the requested name\")"},{"line_number":115,"context_line":"        self.assertTrue(body[\u0027id\u0027] is not None,"},{"line_number":116,"context_line":"                        \"Field volume_type id is empty or not found.\")"},{"line_number":117,"context_line":"        self.addCleanup(self._delete_volume_type, body[\u0027id\u0027])"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":120,"context_line":"    def test_volume_type_create_get(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAQ3%2F%2F3lw%3D","line":117,"updated":"2013-08-13 18:28:44.000000000","message":"I\u0027d move this to line 109","commit_id":"9e76801ab3e4338033733732ad92335bd60224d3"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"0229096b0c778ae5dd47f8ed617354c7637bd2cd","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                         \"to the requested name\")"},{"line_number":115,"context_line":"        self.assertTrue(body[\u0027id\u0027] is not None,"},{"line_number":116,"context_line":"                        \"Field volume_type id is empty or not found.\")"},{"line_number":117,"context_line":"        self.addCleanup(self._delete_volume_type, body[\u0027id\u0027])"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":120,"context_line":"    def test_volume_type_create_get(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAARH%2F%2F%2Bc8%3D","line":117,"in_reply_to":"AAAAQ3%2F%2F3Tw%3D","updated":"2013-08-14 10:13:40.000000000","message":"agreed!","commit_id":"9e76801ab3e4338033733732ad92335bd60224d3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f7741a188756f9007c7ec1b72f9633c4d77af9c1","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                         \"to the requested name\")"},{"line_number":115,"context_line":"        self.assertTrue(body[\u0027id\u0027] is not None,"},{"line_number":116,"context_line":"                        \"Field volume_type id is empty or not found.\")"},{"line_number":117,"context_line":"        self.addCleanup(self._delete_volume_type, body[\u0027id\u0027])"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":120,"context_line":"    def test_volume_type_create_get(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAQ3%2F%2F3Tw%3D","line":117,"in_reply_to":"AAAAQ3%2F%2F3lw%3D","updated":"2013-08-13 19:34:04.000000000","message":"How about 111 to match my previous response of asserting \u0027id\u0027 in body?","commit_id":"9e76801ab3e4338033733732ad92335bd60224d3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9c087d4aa0c0dad10a89f812804296ab19dae561","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                         \"to the requested name\")"},{"line_number":115,"context_line":"        self.assertTrue(body[\u0027id\u0027] is not None,"},{"line_number":116,"context_line":"                        \"Field volume_type id is empty or not found.\")"},{"line_number":117,"context_line":"        self.addCleanup(self._delete_volume_type, body[\u0027id\u0027])"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":120,"context_line":"    def test_volume_type_create_get(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAARH%2F%2F9nM%3D","line":117,"in_reply_to":"AAAARH%2F%2F%2Bc8%3D","updated":"2013-08-14 15:02:46.000000000","message":"I\u0027m going to move this to line 111.","commit_id":"9e76801ab3e4338033733732ad92335bd60224d3"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"efd9bece16801d886006b5c41be75a237c00642f","unresolved":false,"context_lines":[{"line_number":128,"context_line":"            extra_specs\u003dextra_specs)"},{"line_number":129,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":130,"context_line":"        self.assertIn(\u0027id\u0027, body)"},{"line_number":131,"context_line":"        self.addCleanup(self._delete_volume_type, body[\u0027id\u0027])"},{"line_number":132,"context_line":"        self.assertIn(\u0027name\u0027, body)"},{"line_number":133,"context_line":"        self.assertEqual(body[\u0027name\u0027], name,"},{"line_number":134,"context_line":"                         \"The created volume_type name is not equal \""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAQ3%2F%2F3lo%3D","line":131,"updated":"2013-08-13 18:28:44.000000000","message":"I\u0027d move this to line 129","commit_id":"9e76801ab3e4338033733732ad92335bd60224d3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f7741a188756f9007c7ec1b72f9633c4d77af9c1","unresolved":false,"context_lines":[{"line_number":128,"context_line":"            extra_specs\u003dextra_specs)"},{"line_number":129,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":130,"context_line":"        self.assertIn(\u0027id\u0027, body)"},{"line_number":131,"context_line":"        self.addCleanup(self._delete_volume_type, body[\u0027id\u0027])"},{"line_number":132,"context_line":"        self.assertIn(\u0027name\u0027, body)"},{"line_number":133,"context_line":"        self.assertEqual(body[\u0027name\u0027], name,"},{"line_number":134,"context_line":"                         \"The created volume_type name is not equal \""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAQ3%2F%2F3Ts%3D","line":131,"in_reply_to":"AAAAQ3%2F%2F3lo%3D","updated":"2013-08-13 19:34:04.000000000","message":"Same response as before.","commit_id":"9e76801ab3e4338033733732ad92335bd60224d3"}],"tempest/api/volume/admin/test_volume_types_extra_specs.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d0b2257bbd8b9c60c817aa89d46a50db63f96675","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                            \"Volume type extra spec incorrectly updated\")"},{"line_number":72,"context_line":"            self.assertEqual(extra_spec[\u0027spec2\u0027], body[\u0027spec2\u0027],"},{"line_number":73,"context_line":"                             \"Volume type extra spec incorrectly updated\")"},{"line_number":74,"context_line":"        except Exception as e:"},{"line_number":75,"context_line":"            self.fail(\"Could not update volume type extra spec: %s\" % e)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQ3%2F%2F3%2B4%3D","line":74,"updated":"2013-08-13 16:59:08.000000000","message":"Will remove this as it\u0027s not really adding anything useful.","commit_id":"4100ae688ce6d5dbc613e1ee75061704a9983a36"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d0b2257bbd8b9c60c817aa89d46a50db63f96675","unresolved":false,"context_lines":[{"line_number":97,"context_line":"                self.volume_type[\u0027id\u0027],"},{"line_number":98,"context_line":"                extra_specs.keys()[0])"},{"line_number":99,"context_line":"            self.assertEqual(202, resp.status)"},{"line_number":100,"context_line":"        except Exception as e:"},{"line_number":101,"context_line":"            self.fail(\"Could not create a volume_type extra spec: %s\" % e)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQ3%2F%2F3%2Bw%3D","line":100,"updated":"2013-08-13 16:59:08.000000000","message":"Will remove this as it\u0027s not really adding anything useful.","commit_id":"4100ae688ce6d5dbc613e1ee75061704a9983a36"}],"tempest/api/volume/test_volumes_get.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c1826a2f1ea39cb82fa27d6bb2e3b94dbe90f078","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                             fetched_volume[\u0027metadata\u0027],"},{"line_number":67,"context_line":"                             \u0027The fetched Volume is different \u0027"},{"line_number":68,"context_line":"                             \u0027from the created Volume\u0027)"},{"line_number":69,"context_line":"        except Exception as e:"},{"line_number":70,"context_line":"            LOG.exception(e)"},{"line_number":71,"context_line":"            self.fail(\"Could not create a volume. Error: %s\" % e)"},{"line_number":72,"context_line":"        finally:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2FRDY%3D","line":69,"updated":"2013-08-02 21:41:09.000000000","message":"David Kranz pointed out in IRC that we don\u0027t even need to catch the exception here as it doesn\u0027t do anything, it just masks the stack trace so we can simply remove it.","commit_id":"59e4547521508e9de3f60967b5c89e49bbd36a1c"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"50246fbedb89d5c62a6e68b3fa8df5239b193507","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            if volume:"},{"line_number":68,"context_line":"                # Delete the Volume if it was created"},{"line_number":69,"context_line":"                resp, _ \u003d self.client.delete_volume(volume[\u0027id\u0027])"},{"line_number":70,"context_line":"                self.assertEqual(202, resp.status)"},{"line_number":71,"context_line":"                self.client.wait_for_resource_deletion(volume[\u0027id\u0027])"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    @attr(type\u003d\u0027gate\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FQhI%3D","line":70,"updated":"2013-08-03 06:22:02.000000000","message":"See above. Same here.","commit_id":"085202fbbc03fc0db156b40fd2322dc35fd6f9e1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b8a1545966ac64e0c7563dbb95669a62167714bf","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            if volume:"},{"line_number":68,"context_line":"                # Delete the Volume if it was created"},{"line_number":69,"context_line":"                resp, _ \u003d self.client.delete_volume(volume[\u0027id\u0027])"},{"line_number":70,"context_line":"                self.assertEqual(202, resp.status)"},{"line_number":71,"context_line":"                self.client.wait_for_resource_deletion(volume[\u0027id\u0027])"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    @attr(type\u003d\u0027gate\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FQTM%3D","line":70,"in_reply_to":"AAAAQn%2F%2FQhI%3D","updated":"2013-08-03 15:56:15.000000000","message":"Same as previous response.","commit_id":"085202fbbc03fc0db156b40fd2322dc35fd6f9e1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d0b2257bbd8b9c60c817aa89d46a50db63f96675","unresolved":false,"context_lines":[{"line_number":71,"context_line":"            if volume:"},{"line_number":72,"context_line":"                # Delete the Volume if it was created"},{"line_number":73,"context_line":"                try:"},{"line_number":74,"context_line":"                    resp, _ \u003d self.client.delete_volume(volume[\u0027id\u0027])"},{"line_number":75,"context_line":"                    self.assertEqual(202, resp.status)"},{"line_number":76,"context_line":"                    self.client.wait_for_resource_deletion(volume[\u0027id\u0027])"},{"line_number":77,"context_line":"                except Exception as e:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQ3%2F%2F39g%3D","line":74,"updated":"2013-08-13 16:59:08.000000000","message":"So apparently this is actually part of the test, it\u0027s trying to test create/get/delete of a volume and it\u0027s doing the delete portion of the test in the finally block.  I think that could still be done with addCleanup since the test will fail if the cleanup fails, and the cleanup would fail if the delete_volume has a response code \u003e\u003d 400.","commit_id":"4100ae688ce6d5dbc613e1ee75061704a9983a36"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d0b2257bbd8b9c60c817aa89d46a50db63f96675","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        except Exception:"},{"line_number":103,"context_line":"            self.fail(\"Could not get volume metadata\")"},{"line_number":104,"context_line":"        finally:"},{"line_number":105,"context_line":"            if volume:"},{"line_number":106,"context_line":"                # Delete the Volume if it was created"},{"line_number":107,"context_line":"                resp, _ \u003d self.client.delete_volume(volume[\u0027id\u0027])"},{"line_number":108,"context_line":"                self.assertEqual(202, resp.status)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQ3%2F%2F39Y%3D","line":105,"updated":"2013-08-13 16:59:08.000000000","message":"We could do the same here.","commit_id":"4100ae688ce6d5dbc613e1ee75061704a9983a36"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"efd9bece16801d886006b5c41be75a237c00642f","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                                                 **kwargs)"},{"line_number":46,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":47,"context_line":"        self.assertIn(\u0027id\u0027, volume)"},{"line_number":48,"context_line":"        self.addCleanup(self._delete_volume, volume[\u0027id\u0027])"},{"line_number":49,"context_line":"        self.assertIn(\u0027display_name\u0027, volume)"},{"line_number":50,"context_line":"        self.assertEqual(volume[\u0027display_name\u0027], v_name,"},{"line_number":51,"context_line":"                         \"The created volume name is not equal \""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAQ3%2F%2F3lY%3D","line":48,"updated":"2013-08-13 18:28:44.000000000","message":"I\u0027d move this to line 46","commit_id":"9e76801ab3e4338033733732ad92335bd60224d3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f7741a188756f9007c7ec1b72f9633c4d77af9c1","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                                                 **kwargs)"},{"line_number":46,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":47,"context_line":"        self.assertIn(\u0027id\u0027, volume)"},{"line_number":48,"context_line":"        self.addCleanup(self._delete_volume, volume[\u0027id\u0027])"},{"line_number":49,"context_line":"        self.assertIn(\u0027display_name\u0027, volume)"},{"line_number":50,"context_line":"        self.assertEqual(volume[\u0027display_name\u0027], v_name,"},{"line_number":51,"context_line":"                         \"The created volume name is not equal \""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAQ3%2F%2F3Tg%3D","line":48,"in_reply_to":"AAAAQ3%2F%2F3lY%3D","updated":"2013-08-13 19:34:04.000000000","message":"Same response as before.","commit_id":"9e76801ab3e4338033733732ad92335bd60224d3"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"efd9bece16801d886006b5c41be75a237c00642f","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                                                 metadata\u003d{})"},{"line_number":81,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":82,"context_line":"        self.assertIn(\u0027id\u0027, volume)"},{"line_number":83,"context_line":"        self.addCleanup(self._delete_volume, volume[\u0027id\u0027])"},{"line_number":84,"context_line":"        self.assertIn(\u0027display_name\u0027, volume)"},{"line_number":85,"context_line":"        self.client.wait_for_volume_status(volume[\u0027id\u0027], \u0027available\u0027)"},{"line_number":86,"context_line":"        # GET Volume"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAQ3%2F%2F3lU%3D","line":83,"updated":"2013-08-13 18:28:44.000000000","message":"I\u0027d move this to line 81","commit_id":"9e76801ab3e4338033733732ad92335bd60224d3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f7741a188756f9007c7ec1b72f9633c4d77af9c1","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                                                 metadata\u003d{})"},{"line_number":81,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":82,"context_line":"        self.assertIn(\u0027id\u0027, volume)"},{"line_number":83,"context_line":"        self.addCleanup(self._delete_volume, volume[\u0027id\u0027])"},{"line_number":84,"context_line":"        self.assertIn(\u0027display_name\u0027, volume)"},{"line_number":85,"context_line":"        self.client.wait_for_volume_status(volume[\u0027id\u0027], \u0027available\u0027)"},{"line_number":86,"context_line":"        # GET Volume"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAQ3%2F%2F3TU%3D","line":83,"in_reply_to":"AAAAQ3%2F%2F3lU%3D","updated":"2013-08-13 19:34:04.000000000","message":"Same response as before.","commit_id":"9e76801ab3e4338033733732ad92335bd60224d3"}]}
