)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":22257,"name":"Manish","email":"deolalkar.manish@hpe.com","username":"manishd"},"change_message_id":"4d0ed59d26d2ed9d2592b17d8498e7fa66311481","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     obutenko \u003cobutenko@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-08-25 13:35:48 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Backup create from snapshot"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Cinder allow create backup from snapshot."},{"line_number":10,"context_line":"We need new test to cover this feature."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"1ac06dbe_19ee4e8b","line":7,"range":{"start_line":7,"start_character":7,"end_line":7,"end_character":13},"updated":"2016-08-25 11:22:40.000000000","message":"I think the topic \u0027Create backup from snapshot\u0027 would describe this better.","commit_id":"e6560600455e5a68645f9f1b939137b381dc2dba"},{"author":{"_account_id":14510,"name":"Oleksii Butenko","email":"apbutenko@gmail.com","username":"obutenko"},"change_message_id":"de359c02c39e7db3098a772d009d424dc2e8cc9d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     obutenko \u003cobutenko@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-08-25 13:35:48 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Backup create from snapshot"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Cinder allow create backup from snapshot."},{"line_number":10,"context_line":"We need new test to cover this feature."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"1ac06dbe_cc2231a3","line":7,"range":{"start_line":7,"start_character":7,"end_line":7,"end_character":13},"in_reply_to":"1ac06dbe_19ee4e8b","updated":"2016-08-25 12:56:54.000000000","message":"Done","commit_id":"e6560600455e5a68645f9f1b939137b381dc2dba"},{"author":{"_account_id":22257,"name":"Manish","email":"deolalkar.manish@hpe.com","username":"manishd"},"change_message_id":"4d0ed59d26d2ed9d2592b17d8498e7fa66311481","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Backup create from snapshot"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Cinder allow create backup from snapshot."},{"line_number":10,"context_line":"We need new test to cover this feature."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Add new test: test_volume_snapshot_backup"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"1ac06dbe_f9bed262","line":9,"range":{"start_line":9,"start_character":12,"end_line":9,"end_character":13},"updated":"2016-08-25 11:22:40.000000000","message":"\u0027allow+s\u0027 to create / allows creating","commit_id":"e6560600455e5a68645f9f1b939137b381dc2dba"},{"author":{"_account_id":14510,"name":"Oleksii Butenko","email":"apbutenko@gmail.com","username":"obutenko"},"change_message_id":"de359c02c39e7db3098a772d009d424dc2e8cc9d","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Backup create from snapshot"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Cinder allow create backup from snapshot."},{"line_number":10,"context_line":"We need new test to cover this feature."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Add new test: test_volume_snapshot_backup"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"1ac06dbe_0c3569da","line":9,"range":{"start_line":9,"start_character":12,"end_line":9,"end_character":13},"in_reply_to":"1ac06dbe_f9bed262","updated":"2016-08-25 12:56:54.000000000","message":"Done","commit_id":"e6560600455e5a68645f9f1b939137b381dc2dba"}],"tempest/api/volume/admin/test_volumes_backup.py":[{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"0280f50173d5dfad45cdbe370a8390e4652d5afd","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        @test.idempotent_id(\u0027885410c6-cd1d-452c-a409-7c32b7e0be15\u0027)"},{"line_number":170,"context_line":"        def test_volume_snapshot_backup(self):"},{"line_number":171,"context_line":"            \"\"\"create backup from snapshot\"\"\""},{"line_number":172,"context_line":"            # Create snapshot"},{"line_number":173,"context_line":"            snapshot \u003d self.create_snapshot(self.volume[\u0027id\u0027])"},{"line_number":174,"context_line":"            self.addCleanup(self.snapshots_client.delete_snapshot,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_9d070fc9","line":171,"range":{"start_line":171,"start_character":15,"end_line":171,"end_character":42},"updated":"2016-06-15 08:52:29.000000000","message":"Small tip for next patch-sets: Capitalize first letter and put dot at the end of single-line docstring.","commit_id":"92c8e1a3edc2d43c35895058830fc850e56d73ea"}],"tempest/api/volume/base.py":[{"author":{"_account_id":22257,"name":"Manish","email":"deolalkar.manish@hpe.com","username":"manishd"},"change_message_id":"4d0ed59d26d2ed9d2592b17d8498e7fa66311481","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        \"\"\"Wrapper utility that returns a test backup.\"\"\""},{"line_number":140,"context_line":"        backup \u003d cls.backup_client.create_backup("},{"line_number":141,"context_line":"            volume_id\u003dvolume_id, **kwargs)[\u0027backup\u0027]"},{"line_number":142,"context_line":"        cls.backup.append(backup)"},{"line_number":143,"context_line":"        waiters.wait_for_backup_status(cls.backup_client,"},{"line_number":144,"context_line":"                                       backup[\u0027id\u0027], \u0027available\u0027)"},{"line_number":145,"context_line":"        return backup"}],"source_content_type":"text/x-python","patch_set":23,"id":"1ac06dbe_de349cdf","line":142,"range":{"start_line":142,"start_character":12,"end_line":142,"end_character":18},"updated":"2016-08-25 11:22:40.000000000","message":"As we are appending to the list created in the resource setup above, and so it should be :\n\u0027cls.backups.append(backup)\u0027","commit_id":"e6560600455e5a68645f9f1b939137b381dc2dba"},{"author":{"_account_id":14510,"name":"Oleksii Butenko","email":"apbutenko@gmail.com","username":"obutenko"},"change_message_id":"de359c02c39e7db3098a772d009d424dc2e8cc9d","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        \"\"\"Wrapper utility that returns a test backup.\"\"\""},{"line_number":140,"context_line":"        backup \u003d cls.backup_client.create_backup("},{"line_number":141,"context_line":"            volume_id\u003dvolume_id, **kwargs)[\u0027backup\u0027]"},{"line_number":142,"context_line":"        cls.backup.append(backup)"},{"line_number":143,"context_line":"        waiters.wait_for_backup_status(cls.backup_client,"},{"line_number":144,"context_line":"                                       backup[\u0027id\u0027], \u0027available\u0027)"},{"line_number":145,"context_line":"        return backup"}],"source_content_type":"text/x-python","patch_set":23,"id":"1ac06dbe_6cb97d2e","line":142,"range":{"start_line":142,"start_character":12,"end_line":142,"end_character":18},"in_reply_to":"1ac06dbe_de349cdf","updated":"2016-08-25 12:56:54.000000000","message":"Done","commit_id":"e6560600455e5a68645f9f1b939137b381dc2dba"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"77e609d5d65078b25d0a1fe344c87833c42e23f3","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        return snapshot"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    @classmethod"},{"line_number":144,"context_line":"    def create_backup(cls, volume_id\u003d1, **kwargs):"},{"line_number":145,"context_line":"        \"\"\"Wrapper utility that returns a test backup.\"\"\""},{"line_number":146,"context_line":"        backup \u003d cls.backup_client.create_backup("},{"line_number":147,"context_line":"            volume_id\u003dvolume_id, **kwargs)[\u0027backup\u0027]"}],"source_content_type":"text/x-python","patch_set":31,"id":"7a8ec9b2_66b0d08c","line":144,"range":{"start_line":144,"start_character":48,"end_line":144,"end_character":50},"updated":"2016-09-14 04:35:36.000000000","message":"I think it should be an instance method instead of class method and I have already uploaded it: \nhttps://review.openstack.org/#/c/356350/","commit_id":"fa3794a9da3bcf481707f99858d73cf2894448c9"},{"author":{"_account_id":14510,"name":"Oleksii Butenko","email":"apbutenko@gmail.com","username":"obutenko"},"change_message_id":"c9c62aec77a00e8298baeaaa3f753abfefd31266","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        return snapshot"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    @classmethod"},{"line_number":144,"context_line":"    def create_backup(cls, volume_id\u003d1, **kwargs):"},{"line_number":145,"context_line":"        \"\"\"Wrapper utility that returns a test backup.\"\"\""},{"line_number":146,"context_line":"        backup \u003d cls.backup_client.create_backup("},{"line_number":147,"context_line":"            volume_id\u003dvolume_id, **kwargs)[\u0027backup\u0027]"}],"source_content_type":"text/x-python","patch_set":31,"id":"7a8ec9b2_4c82e001","line":144,"range":{"start_line":144,"start_character":48,"end_line":144,"end_character":50},"in_reply_to":"7a8ec9b2_66b0d08c","updated":"2016-09-20 14:21:54.000000000","message":"why? we can create create_backup like classmethod\nas create_volume and create_snapshot","commit_id":"fa3794a9da3bcf481707f99858d73cf2894448c9"}],"tempest/api/volume/test_volumes_backup.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"cc23cd6551e3a81476eea0b7602d858503ea8fb9","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        \"\"\"Create backup from snapshot.\"\"\""},{"line_number":77,"context_line":"        # Create snapshot"},{"line_number":78,"context_line":"        snapshot \u003d self.create_snapshot(self.volume[\u0027id\u0027])"},{"line_number":79,"context_line":"        self.addCleanup(self.snapshots_client.delete_snapshot,"},{"line_number":80,"context_line":"                        snapshot[\u0027id\u0027])"},{"line_number":81,"context_line":"        # Create backup"},{"line_number":82,"context_line":"        backup \u003d self.backups_client.create_backup("}],"source_content_type":"text/x-python","patch_set":14,"id":"3ac371cc_45c86fa8","line":79,"updated":"2016-08-17 20:33:41.000000000","message":"Isn\u0027t snapshot delete an async call, this should have an addCLeanup with the wait loop before this to make sure we actually delete the snapshot.","commit_id":"42db6fc554084ddc41aa73a4c48943e32ce1da79"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"cc23cd6551e3a81476eea0b7602d858503ea8fb9","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        backup \u003d self.backups_client.create_backup("},{"line_number":83,"context_line":"            volume_id\u003dself.volume[\u0027id\u0027],"},{"line_number":84,"context_line":"            snapshot_id\u003dsnapshot[\u0027id\u0027])[\u0027backup\u0027]"},{"line_number":85,"context_line":"        self.addCleanup(self.backups_client.delete_backup, backup[\u0027id\u0027])"},{"line_number":86,"context_line":"        self.backups_client.wait_for_backup_status("},{"line_number":87,"context_line":"            backup[\u0027id\u0027],"},{"line_number":88,"context_line":"            \u0027available\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"3ac371cc_85d38703","line":85,"updated":"2016-08-17 20:33:41.000000000","message":"Same thing here we need to wait on the volume backup delete","commit_id":"42db6fc554084ddc41aa73a4c48943e32ce1da79"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"321c02e600af2d1a01876a29250584b97ac717bc","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        \"\"\""},{"line_number":120,"context_line":"        # Create snapshot"},{"line_number":121,"context_line":"        snapshot \u003d self.create_snapshot(self.volume[\u0027id\u0027])"},{"line_number":122,"context_line":"        self.addCleanup("},{"line_number":123,"context_line":"            self.snapshots_client.delete_snapshot(snapshot[\u0027id\u0027]))"},{"line_number":124,"context_line":"        self.addCleanup("},{"line_number":125,"context_line":"            self.snapshots_client.wait_for_resource_deletion(snapshot[\u0027id\u0027]))"}],"source_content_type":"text/x-python","patch_set":20,"id":"1ac06dbe_5bf4cb59","line":122,"updated":"2016-08-23 15:01:57.000000000","message":"The cleanup should be already added by `create_snapshot`","commit_id":"58deff4d584fe962dbf16351bee2584e854845a7"},{"author":{"_account_id":14510,"name":"Oleksii Butenko","email":"apbutenko@gmail.com","username":"obutenko"},"change_message_id":"94e02d9c6c28658d96f6c17037a084647c945d0f","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        \"\"\""},{"line_number":120,"context_line":"        # Create snapshot"},{"line_number":121,"context_line":"        snapshot \u003d self.create_snapshot(self.volume[\u0027id\u0027])"},{"line_number":122,"context_line":"        self.addCleanup("},{"line_number":123,"context_line":"            self.snapshots_client.delete_snapshot(snapshot[\u0027id\u0027]))"},{"line_number":124,"context_line":"        self.addCleanup("},{"line_number":125,"context_line":"            self.snapshots_client.wait_for_resource_deletion(snapshot[\u0027id\u0027]))"}],"source_content_type":"text/x-python","patch_set":20,"id":"1ac06dbe_2c13055e","line":122,"in_reply_to":"1ac06dbe_5bf4cb59","updated":"2016-08-25 12:39:34.000000000","message":"Done","commit_id":"58deff4d584fe962dbf16351bee2584e854845a7"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"321c02e600af2d1a01876a29250584b97ac717bc","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        self.addCleanup("},{"line_number":125,"context_line":"            self.snapshots_client.wait_for_resource_deletion(snapshot[\u0027id\u0027]))"},{"line_number":126,"context_line":"        # Create backup"},{"line_number":127,"context_line":"        backup \u003d self.backups_client.create_backup("},{"line_number":128,"context_line":"            volume_id\u003dself.volume[\u0027id\u0027],"},{"line_number":129,"context_line":"            snapshot_id\u003dsnapshot[\u0027id\u0027])[\u0027backup\u0027]"},{"line_number":130,"context_line":"        self.addCleanup("}],"source_content_type":"text/x-python","patch_set":20,"id":"1ac06dbe_3bfc6f3d","line":127,"updated":"2016-08-23 15:01:57.000000000","message":"Use an existing or introduce a new \u0027create_backup\u0027 utility function in one of the base classes.","commit_id":"58deff4d584fe962dbf16351bee2584e854845a7"},{"author":{"_account_id":14510,"name":"Oleksii Butenko","email":"apbutenko@gmail.com","username":"obutenko"},"change_message_id":"94e02d9c6c28658d96f6c17037a084647c945d0f","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        self.addCleanup("},{"line_number":125,"context_line":"            self.snapshots_client.wait_for_resource_deletion(snapshot[\u0027id\u0027]))"},{"line_number":126,"context_line":"        # Create backup"},{"line_number":127,"context_line":"        backup \u003d self.backups_client.create_backup("},{"line_number":128,"context_line":"            volume_id\u003dself.volume[\u0027id\u0027],"},{"line_number":129,"context_line":"            snapshot_id\u003dsnapshot[\u0027id\u0027])[\u0027backup\u0027]"},{"line_number":130,"context_line":"        self.addCleanup("}],"source_content_type":"text/x-python","patch_set":20,"id":"1ac06dbe_0c0e0932","line":127,"in_reply_to":"1ac06dbe_3bfc6f3d","updated":"2016-08-25 12:39:34.000000000","message":"Done","commit_id":"58deff4d584fe962dbf16351bee2584e854845a7"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"77e609d5d65078b25d0a1fe344c87833c42e23f3","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        # Create snapshot"},{"line_number":125,"context_line":"        snapshot \u003d self.create_snapshot(volume[\u0027id\u0027])"},{"line_number":126,"context_line":"        # Create backup"},{"line_number":127,"context_line":"        backup \u003d self.backups_client.create_backup("},{"line_number":128,"context_line":"            volume_id\u003dvolume[\u0027id\u0027],"},{"line_number":129,"context_line":"            snapshot_id\u003dsnapshot[\u0027id\u0027])[\u0027backup\u0027]"},{"line_number":130,"context_line":"        # Get a given backup"}],"source_content_type":"text/x-python","patch_set":31,"id":"7a8ec9b2_e61140b1","line":127,"range":{"start_line":127,"start_character":50,"end_line":127,"end_character":51},"updated":"2016-09-14 04:35:36.000000000","message":"You have created a wrapper for backup create and you don\u0027t use it, therefore, the test does not delete the backup resource.","commit_id":"fa3794a9da3bcf481707f99858d73cf2894448c9"},{"author":{"_account_id":14510,"name":"Oleksii Butenko","email":"apbutenko@gmail.com","username":"obutenko"},"change_message_id":"c9c62aec77a00e8298baeaaa3f753abfefd31266","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        # Create snapshot"},{"line_number":125,"context_line":"        snapshot \u003d self.create_snapshot(volume[\u0027id\u0027])"},{"line_number":126,"context_line":"        # Create backup"},{"line_number":127,"context_line":"        backup \u003d self.backups_client.create_backup("},{"line_number":128,"context_line":"            volume_id\u003dvolume[\u0027id\u0027],"},{"line_number":129,"context_line":"            snapshot_id\u003dsnapshot[\u0027id\u0027])[\u0027backup\u0027]"},{"line_number":130,"context_line":"        # Get a given backup"}],"source_content_type":"text/x-python","patch_set":31,"id":"7a8ec9b2_cc6c309f","line":127,"range":{"start_line":127,"start_character":50,"end_line":127,"end_character":51},"in_reply_to":"7a8ec9b2_e61140b1","updated":"2016-09-20 14:21:54.000000000","message":"Done","commit_id":"fa3794a9da3bcf481707f99858d73cf2894448c9"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"e45bc0677c256ebd131d561071a9c0a216d3d2b7","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from tempest.common import waiters"},{"line_number":19,"context_line":"from tempest import config"},{"line_number":20,"context_line":"from tempest import test"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"CONF \u003d config.CONF"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":42,"id":"3a71b18c_e8bab009","side":"PARENT","line":21,"updated":"2016-12-02 12:04:04.000000000","message":"Why did you remove that blank line ? Please add it back.","commit_id":"742c7ee2ef901f7ba2d2310414d71044cc935ba6"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"e80180108328b1a1ad08e871e3f54ff18fae337a","unresolved":false,"context_lines":[{"line_number":103,"context_line":"    def test_volume_snapshot_backup(self):"},{"line_number":104,"context_line":"        \"\"\"Create backup from snapshot."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        Cinder allows create backup from snapshot."},{"line_number":107,"context_line":"        \"\"\""},{"line_number":108,"context_line":"        volume \u003d self.create_volume()"},{"line_number":109,"context_line":"        # Create snapshot"}],"source_content_type":"text/x-python","patch_set":42,"id":"5a74a57a_dfd68ef0","line":106,"updated":"2016-11-30 21:28:54.000000000","message":"nit: to create","commit_id":"a5c1d057abaf433f9a321acdfcb384fe2ffd1122"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"e45bc0677c256ebd131d561071a9c0a216d3d2b7","unresolved":false,"context_lines":[{"line_number":103,"context_line":"    def test_volume_snapshot_backup(self):"},{"line_number":104,"context_line":"        \"\"\"Create backup from snapshot."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        Cinder allows create backup from snapshot."},{"line_number":107,"context_line":"        \"\"\""},{"line_number":108,"context_line":"        volume \u003d self.create_volume()"},{"line_number":109,"context_line":"        # Create snapshot"}],"source_content_type":"text/x-python","patch_set":42,"id":"3a71b18c_a8f518cc","line":106,"in_reply_to":"5a74a57a_dfd68ef0","updated":"2016-12-02 12:04:04.000000000","message":"That second line of code comment doesn\u0027t help. It\u0027s a bit obvious it \"allows\" this given that\u0027s what we are testing here. Also, we don\u0027t add a comment \"Nova allows to create a server\" in every test that creates a Nova server.","commit_id":"a5c1d057abaf433f9a321acdfcb384fe2ffd1122"}],"tempest/common/waiters.py":[{"author":{"_account_id":22257,"name":"Manish","email":"deolalkar.manish@hpe.com","username":"manishd"},"change_message_id":"4d0ed59d26d2ed9d2592b17d8498e7fa66311481","unresolved":false,"context_lines":[{"line_number":219,"context_line":"    while backup_status !\u003d status:"},{"line_number":220,"context_line":"        time.sleep(client.build_interval)"},{"line_number":221,"context_line":"        body \u003d client.show_backup(backup_id)[\u0027backup\u0027]"},{"line_number":222,"context_line":"        backup_status \u003d body[\u0027status\u0027]"},{"line_number":223,"context_line":"        if backup_status \u003d\u003d \u0027error\u0027:"},{"line_number":224,"context_line":"            raise exceptions.VolumeBackupException("},{"line_number":225,"context_line":"                backup_id\u003dbackup_id)"}],"source_content_type":"text/x-python","patch_set":23,"id":"1ac06dbe_19048e7c","line":222,"range":{"start_line":222,"start_character":0,"end_line":222,"end_character":8},"updated":"2016-08-25 11:22:40.000000000","message":"I think it would be good to add a comparison here to check if got the desired status, to avoid further checks. \nif backup_status \u003d\u003d status:\n    return","commit_id":"e6560600455e5a68645f9f1b939137b381dc2dba"},{"author":{"_account_id":14510,"name":"Oleksii Butenko","email":"apbutenko@gmail.com","username":"obutenko"},"change_message_id":"de359c02c39e7db3098a772d009d424dc2e8cc9d","unresolved":false,"context_lines":[{"line_number":219,"context_line":"    while backup_status !\u003d status:"},{"line_number":220,"context_line":"        time.sleep(client.build_interval)"},{"line_number":221,"context_line":"        body \u003d client.show_backup(backup_id)[\u0027backup\u0027]"},{"line_number":222,"context_line":"        backup_status \u003d body[\u0027status\u0027]"},{"line_number":223,"context_line":"        if backup_status \u003d\u003d \u0027error\u0027:"},{"line_number":224,"context_line":"            raise exceptions.VolumeBackupException("},{"line_number":225,"context_line":"                backup_id\u003dbackup_id)"}],"source_content_type":"text/x-python","patch_set":23,"id":"1ac06dbe_9784c25d","line":222,"range":{"start_line":222,"start_character":0,"end_line":222,"end_character":8},"in_reply_to":"1ac06dbe_19048e7c","updated":"2016-08-25 12:56:54.000000000","message":"Why we need this?\nif backup_status \u003d\u003d status \ncycle condition will be false","commit_id":"e6560600455e5a68645f9f1b939137b381dc2dba"},{"author":{"_account_id":22257,"name":"Manish","email":"deolalkar.manish@hpe.com","username":"manishd"},"change_message_id":"c91cf611df7f0561f4f438c1389a72ccec5c91fd","unresolved":false,"context_lines":[{"line_number":219,"context_line":"    while backup_status !\u003d status:"},{"line_number":220,"context_line":"        time.sleep(client.build_interval)"},{"line_number":221,"context_line":"        body \u003d client.show_backup(backup_id)[\u0027backup\u0027]"},{"line_number":222,"context_line":"        backup_status \u003d body[\u0027status\u0027]"},{"line_number":223,"context_line":"        if backup_status \u003d\u003d \u0027error\u0027:"},{"line_number":224,"context_line":"            raise exceptions.VolumeBackupException("},{"line_number":225,"context_line":"                backup_id\u003dbackup_id)"}],"source_content_type":"text/x-python","patch_set":23,"id":"fa7ab95a_99238105","line":222,"range":{"start_line":222,"start_character":0,"end_line":222,"end_character":8},"in_reply_to":"1ac06dbe_9784c25d","updated":"2016-08-26 06:53:42.000000000","message":"This condition is to be checked after \u0027sleep\u0027 is completed, as the status might change by this time, so, this can be true or false.\nAfter a \u0027client.build_interval\u0027 amount of time, there is a likelihood that we would get the expected backup_status which we are waiting for. So, in my opinion, we can skip the checks for \u0027error\u0027 and timeout for above condition true.\nThe way it is implemented shall yeild us correct result, but still it will always perform the extra checks,while condition check before exiting function.","commit_id":"e6560600455e5a68645f9f1b939137b381dc2dba"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"77e609d5d65078b25d0a1fe344c87833c42e23f3","unresolved":false,"context_lines":[{"line_number":210,"context_line":"            raise exceptions.TimeoutException(message)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"def wait_for_backup_status(client, backup_id, status):"},{"line_number":214,"context_line":"    \"\"\"Waits for a Backup to reach a given status.\"\"\""},{"line_number":215,"context_line":"    body \u003d client.show_backup(backup_id)[\u0027backup\u0027]"},{"line_number":216,"context_line":"    backup_status \u003d body[\u0027status\u0027]"}],"source_content_type":"text/x-python","patch_set":31,"id":"7a8ec9b2_c6e2849f","line":213,"range":{"start_line":213,"start_character":52,"end_line":213,"end_character":54},"updated":"2016-09-14 04:35:36.000000000","message":"There is already wait_for_backup_status under services/volume/base/base_backups_client.py \nI agree it should reside under common/waiters.py","commit_id":"fa3794a9da3bcf481707f99858d73cf2894448c9"},{"author":{"_account_id":14510,"name":"Oleksii Butenko","email":"apbutenko@gmail.com","username":"obutenko"},"change_message_id":"c9c62aec77a00e8298baeaaa3f753abfefd31266","unresolved":false,"context_lines":[{"line_number":210,"context_line":"            raise exceptions.TimeoutException(message)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"def wait_for_backup_status(client, backup_id, status):"},{"line_number":214,"context_line":"    \"\"\"Waits for a Backup to reach a given status.\"\"\""},{"line_number":215,"context_line":"    body \u003d client.show_backup(backup_id)[\u0027backup\u0027]"},{"line_number":216,"context_line":"    backup_status \u003d body[\u0027status\u0027]"}],"source_content_type":"text/x-python","patch_set":31,"id":"7a8ec9b2_0c8ff823","line":213,"range":{"start_line":213,"start_character":52,"end_line":213,"end_character":54},"in_reply_to":"7a8ec9b2_c6e2849f","updated":"2016-09-20 14:21:54.000000000","message":"Done","commit_id":"fa3794a9da3bcf481707f99858d73cf2894448c9"}]}
