)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"38ed32144c80959e1f2787d6a18637b038c2135d","unresolved":false,"context_lines":[{"line_number":22,"context_line":"already skipping this test), so there\u0027s no problem."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Related-Bug: #1476416"},{"line_number":25,"context_line":"Change-Id: I38e1a7b7d269278acd7963b990a263acd3d6e0d5"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ba0121b8_8d2ce04b","line":25,"updated":"2016-03-29 14:47:00.000000000","message":"You should add yourself as a coauthor with \"Co-Authored-By\"","commit_id":"4ec47ec28243d14b9b247a796641b1ac9914fffa"}],"tempest/api/volume/admin/test_volumes_backup.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"38ed32144c80959e1f2787d6a18637b038c2135d","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        waiters.wait_for_volume_status(self.admin_volume_client,"},{"line_number":81,"context_line":"                                       restore[\u0027volume_id\u0027], \u0027available\u0027)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    @test.idempotent_id(\u0027a99c54a1-dd80-4724-8a13-13bf58d4068d\u0027)"},{"line_number":84,"context_line":"    def test_volume_backup_export_import(self):"},{"line_number":85,"context_line":"        \"\"\"Test backup export import functionality."},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba0121b8_ad87240e","line":83,"updated":"2016-03-29 14:47:00.000000000","message":"If I remember correctly we need a patch in devstack to add a config option to set whether we are using old export/import mechanism (the one that had a bug) or the new one.\n\nAnd then depending on this flag we run the test as we did before or with this new code.\n\nThat\u0027s the only way we are going to get Jenkins to pass.","commit_id":"4ec47ec28243d14b9b247a796641b1ac9914fffa"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2d07a3bd19439e32b4b254011a692f22fae9687f","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                                       restore[\u0027volume_id\u0027], \u0027available\u0027)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    @test.idempotent_id(\u0027a99c54a1-dd80-4724-8a13-13bf58d4068d\u0027)"},{"line_number":85,"context_line":"    @testtools.skipIf(CONF.volume_feature_enabled.backup_import,"},{"line_number":86,"context_line":"                      \"Skip. Bug #1476416 is not fixed on Kilo.\")"},{"line_number":87,"context_line":"    def test_volume_backup_export_import(self):"},{"line_number":88,"context_line":"        \"\"\"Test backup export import functionality."}],"source_content_type":"text/x-python","patch_set":12,"id":"1a122d0e_6a2e2d44","line":85,"range":{"start_line":85,"start_character":22,"end_line":85,"end_character":63},"updated":"2016-04-19 18:04:01.000000000","message":"I am a little confused..\nMaybe you want to make this test skip for kilo, right?\nIf so, here should be\n\n  @testtools.skipUnless(CONF.volume_feature_enabled.backup_import,\n                        \u0027...\u0027)\n\nbecause the option group name is \u0027volume_feature_enabled\u0027.\nCurrent value meaning seems opposite against the existing options. That makes confusions.","commit_id":"f3c7b0f1457b14a1efa2b34b6771e3dd11f19f56"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"aef20c3cceb85fc249a3596a82dc8db98c0e8002","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                                       restore[\u0027volume_id\u0027], \u0027available\u0027)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    @test.idempotent_id(\u0027a99c54a1-dd80-4724-8a13-13bf58d4068d\u0027)"},{"line_number":85,"context_line":"    @testtools.skipIf(CONF.volume_feature_enabled.backup_import,"},{"line_number":86,"context_line":"                      \"Skip. Bug #1476416 is not fixed on Kilo.\")"},{"line_number":87,"context_line":"    def test_volume_backup_export_import(self):"},{"line_number":88,"context_line":"        \"\"\"Test backup export import functionality."}],"source_content_type":"text/x-python","patch_set":12,"id":"1a122d0e_ec7a6ab9","line":85,"range":{"start_line":85,"start_character":22,"end_line":85,"end_character":63},"in_reply_to":"1a122d0e_4eb24507","updated":"2016-05-04 22:55:21.000000000","message":"That is wrong usage of skipIf.\n\nCONF.volume_feature_enabled.backup_import SHOULD mean \"backup_import feature is enabled\" as the name.\nBut current usage is opposite against that.","commit_id":"f3c7b0f1457b14a1efa2b34b6771e3dd11f19f56"},{"author":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"change_message_id":"8a994e6ca87f27248139466ca5467918cfc68633","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                                       restore[\u0027volume_id\u0027], \u0027available\u0027)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    @test.idempotent_id(\u0027a99c54a1-dd80-4724-8a13-13bf58d4068d\u0027)"},{"line_number":85,"context_line":"    @testtools.skipIf(CONF.volume_feature_enabled.backup_import,"},{"line_number":86,"context_line":"                      \"Skip. Bug #1476416 is not fixed on Kilo.\")"},{"line_number":87,"context_line":"    def test_volume_backup_export_import(self):"},{"line_number":88,"context_line":"        \"\"\"Test backup export import functionality."}],"source_content_type":"text/x-python","patch_set":12,"id":"1a122d0e_4eb24507","line":85,"range":{"start_line":85,"start_character":22,"end_line":85,"end_character":63},"in_reply_to":"1a122d0e_6a2e2d44","updated":"2016-04-20 09:24:15.000000000","message":"The flag volume_feature_enabled.backup_import is set only on kilo branch https://github.com/openstack-dev/devstack/blob/stable/kilo/lib/tempest#L506 So in such a way using\n\n@testtools.skipIf(CONF.volume_feature_enabled.backup_import,\n                  \u0027....\u0027)\n\nwe skip the test_volume_backup_export_import only for Kilo gate.","commit_id":"f3c7b0f1457b14a1efa2b34b6771e3dd11f19f56"},{"author":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"change_message_id":"56d557e5d3c83ff72ab162987549547ae63ccf58","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                                       restore[\u0027volume_id\u0027], \u0027available\u0027)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    @test.idempotent_id(\u0027a99c54a1-dd80-4724-8a13-13bf58d4068d\u0027)"},{"line_number":85,"context_line":"    @testtools.skipIf(CONF.volume_feature_enabled.backup_import,"},{"line_number":86,"context_line":"                      \"Skip. Bug #1476416 is not fixed on Kilo.\")"},{"line_number":87,"context_line":"    def test_volume_backup_export_import(self):"},{"line_number":88,"context_line":"        \"\"\"Test backup export import functionality."}],"source_content_type":"text/x-python","patch_set":12,"id":"dab17558_582b5e94","line":85,"range":{"start_line":85,"start_character":22,"end_line":85,"end_character":63},"in_reply_to":"1a122d0e_ec7a6ab9","updated":"2016-05-10 12:37:58.000000000","message":"I agree that option name \"backup_import_skip_test\" would be more correct, but the option backup_import is merged in devstack and we can use it in order to save time for fixing bug.","commit_id":"f3c7b0f1457b14a1efa2b34b6771e3dd11f19f56"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2d07a3bd19439e32b4b254011a692f22fae9687f","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        # ID already exists.  So we\u0027ll fake the data by changing the backup id"},{"line_number":115,"context_line":"        # in the exported backup DB info we have retrieved before importing it"},{"line_number":116,"context_line":"        # back."},{"line_number":117,"context_line":"        new_id \u003d six.text_type(uuid.uuid4())"},{"line_number":118,"context_line":"        new_url \u003d self.backups_adm_client.modify_backup_url("},{"line_number":119,"context_line":"            export_backup[\u0027backup_url\u0027], {\u0027id\u0027: new_id})"},{"line_number":120,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"1a122d0e_ef6fef28","line":117,"range":{"start_line":117,"start_character":17,"end_line":117,"end_character":44},"updated":"2016-04-19 18:04:01.000000000","message":"nit: we can use data_utils.rand_uuid instead.","commit_id":"f3c7b0f1457b14a1efa2b34b6771e3dd11f19f56"}],"tempest/services/volume/base/base_backups_client.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2d07a3bd19439e32b4b254011a692f22fae9687f","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        self.expected_success(201, resp.status)"},{"line_number":84,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def _decode_url(self, backup_url):"},{"line_number":87,"context_line":"        return json.loads(base64.decodestring(backup_url))"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def _encode_backup(self, backup):"},{"line_number":90,"context_line":"        retval \u003d json.dumps(backup)"},{"line_number":91,"context_line":"        if six.PY3:"},{"line_number":92,"context_line":"            retval \u003d retval.encode(\u0027utf-8\u0027)"},{"line_number":93,"context_line":"        return base64.encodestring(retval)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def modify_backup_url(self, backup_url, changes):"},{"line_number":96,"context_line":"        backup \u003d self._decode_url(backup_url)"},{"line_number":97,"context_line":"        backup.update(changes)"},{"line_number":98,"context_line":"        return self._encode_backup(backup)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    def wait_for_backup_status(self, backup_id, status):"},{"line_number":101,"context_line":"        \"\"\"Waits for a Backup to reach a given status.\"\"\""}],"source_content_type":"text/x-python","patch_set":12,"id":"1a122d0e_2a76f505","line":98,"range":{"start_line":86,"start_character":0,"end_line":98,"end_character":42},"updated":"2016-04-19 18:04:01.000000000","message":"All new methods don\u0027t seem to take action on REST API, right?\nThey just change the data instead.\n\nIf this point is right, please don\u0027t add these methods into this service client. All service clients are for operating on each REAT APIs. It is invalid to implement these methods on this client.","commit_id":"f3c7b0f1457b14a1efa2b34b6771e3dd11f19f56"}]}
