)]}'
{"tempest/api/image/admin/__init__.py":[{"author":{"_account_id":11356,"name":"Louis Taylor","email":"louis@kragniz.eu","username":"kragniz"},"change_message_id":"24ff5ea63a1593f076d149e357e7d95bd9c5b23e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"__author__ \u003d \u0027bkopilov\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_ac48d9b3","line":1,"updated":"2015-05-22 05:47:35.000000000","message":"This file should just be empty.","commit_id":"c5a499577c60390b6f2328fa0e8571499e88e5b8"},{"author":{"_account_id":11075,"name":"Benny Kopilov","email":"bkopilov@redhat.com","username":"bkopilov"},"change_message_id":"16cd47487a3964387a0a3f1d71d594589cf89d41","unresolved":false,"context_lines":[{"line_number":1,"context_line":"__author__ \u003d \u0027bkopilov\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_8c4d1d9c","line":1,"in_reply_to":"7a016987_ac48d9b3","updated":"2015-05-22 06:02:25.000000000","message":"thanks  ! forgot to remove it","commit_id":"c5a499577c60390b6f2328fa0e8571499e88e5b8"}],"tempest/api/image/admin/v2/test_images.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"fad93a3f0c6e3a8ee290270a206f7dfd835b0b5b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2013 OpenStack Foundation"},{"line_number":2,"context_line":"# Copyright 2013 IBM Corp"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_2fccdbb9","line":2,"updated":"2015-05-22 06:27:57.000000000","message":"If you don\u0027t work for IBM you should\u0027t add their copyright.","commit_id":"c5a499577c60390b6f2328fa0e8571499e88e5b8"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"fad93a3f0c6e3a8ee290270a206f7dfd835b0b5b","unresolved":false,"context_lines":[{"line_number":43,"context_line":"                                        visibility\u003d\u0027private\u0027)"},{"line_number":44,"context_line":"        # upload an image file"},{"line_number":45,"context_line":"        image_id \u003d body[\u0027id\u0027]"},{"line_number":46,"context_line":"        image_file \u003d moves.cStringIO(data_utils.random_bytes())"},{"line_number":47,"context_line":"        self.admin_client.store_image(image_id, image_file)"},{"line_number":48,"context_line":"        self.addCleanup(self.client.delete_image, image_id)"},{"line_number":49,"context_line":"        # deactivate image"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_0f4fdf37","line":46,"updated":"2015-05-22 06:27:57.000000000","message":"I think you don\u0027t have to upload actual image content. You can just create a \"blank image\".","commit_id":"c5a499577c60390b6f2328fa0e8571499e88e5b8"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"0db1a2e3b909726b2ee89f35289bb97839b8ce61","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    @testtools.skipUnless(CONF.image.deactivate_image,"},{"line_number":34,"context_line":"                          \u0027deactivate-image is not available.\u0027)"},{"line_number":35,"context_line":"    @test.idempotent_id(\u0027951ebe01-969f-4ea9-9898-8a3f1f442ab0\u0027)"},{"line_number":36,"context_line":"    def test_deactivate_image(self):"},{"line_number":37,"context_line":"        # Create image by non-admin tenant"},{"line_number":38,"context_line":"        image_name \u003d data_utils.rand_name(\u0027image\u0027)"},{"line_number":39,"context_line":"        body \u003d self.client.create_image(name\u003dimage_name,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_97c60848","line":36,"updated":"2015-05-26 08:41:35.000000000","message":"why not add \"activate\" to this test as well? (deactivate_and_activate_image","commit_id":"cde7960e865b008cd11dfbb291b7295af96b813f"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"0db1a2e3b909726b2ee89f35289bb97839b8ce61","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        self.admin_client.store_image(image_id, image_file)"},{"line_number":47,"context_line":"        self.addCleanup(self.client.delete_image, image_id)"},{"line_number":48,"context_line":"        # deactivate image"},{"line_number":49,"context_line":"        self.admin_client.deactivate_image(image_id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_d79c805f","line":49,"updated":"2015-05-26 08:41:35.000000000","message":"need to verify status change","commit_id":"cde7960e865b008cd11dfbb291b7295af96b813f"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"7bbb444306634e8e5e9d1d972efe920194465692","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    @testtools.skipUnless(CONF.image_feature_enabled.deactivate_image,"},{"line_number":34,"context_line":"                          \u0027deactivate-image is not available.\u0027)"},{"line_number":35,"context_line":"    @test.idempotent_id(\u0027951ebe01-969f-4ea9-9898-8a3f1f442ab0\u0027)"},{"line_number":36,"context_line":"    def test_admin_deactivate_image(self):"},{"line_number":37,"context_line":"        # Create image by non-admin tenant"},{"line_number":38,"context_line":"        image_name \u003d data_utils.rand_name(\u0027image\u0027)"},{"line_number":39,"context_line":"        body \u003d self.client.create_image(name\u003dimage_name,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_7b16d2f2","line":36,"updated":"2015-05-26 12:26:07.000000000","message":"test_admin_deactivate_reactivate_image","commit_id":"14461ac89bd2d659351148bf97c4ebea165ef510"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"0f91d662328448bdfa77494eee71714218fe9dcb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2013 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_bacc0e62","line":1,"updated":"2015-05-27 15:38:09.000000000","message":"here should be updated with 2015 and your company or something","commit_id":"14d5f1a86bdb50106375532ec4da39767d9b2341"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"0f91d662328448bdfa77494eee71714218fe9dcb","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        image_id \u003d body[\u0027id\u0027]"},{"line_number":45,"context_line":"        image_file \u003d moves.cStringIO(data_utils.random_bytes())"},{"line_number":46,"context_line":"        self.client.store_image(image_id, image_file)"},{"line_number":47,"context_line":"        self.addCleanup(self.client.delete_image, image_id)"},{"line_number":48,"context_line":"        # deactivate image"},{"line_number":49,"context_line":"        self.admin_client.deactivate_image(image_id)"},{"line_number":50,"context_line":"        body \u003d self.client.get_image(image_id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_7aa8d677","line":47,"updated":"2015-05-27 15:38:09.000000000","message":"This addCeanup is necessary to be moved to line43 because the created image would remain if some error happens during storing image.","commit_id":"14d5f1a86bdb50106375532ec4da39767d9b2341"},{"author":{"_account_id":11075,"name":"Benny Kopilov","email":"bkopilov@redhat.com","username":"bkopilov"},"change_message_id":"279c9438b05d27eb120366a67f52886c4b320703","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        image_id \u003d body[\u0027id\u0027]"},{"line_number":45,"context_line":"        image_file \u003d moves.cStringIO(data_utils.random_bytes())"},{"line_number":46,"context_line":"        self.client.store_image(image_id, image_file)"},{"line_number":47,"context_line":"        self.addCleanup(self.client.delete_image, image_id)"},{"line_number":48,"context_line":"        # deactivate image"},{"line_number":49,"context_line":"        self.admin_client.deactivate_image(image_id)"},{"line_number":50,"context_line":"        body \u003d self.client.get_image(image_id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_c21fdc59","line":47,"in_reply_to":"7a016987_7aa8d677","updated":"2015-05-27 16:14:51.000000000","message":"Good point !!! will be fixed \n\nThanks","commit_id":"14d5f1a86bdb50106375532ec4da39767d9b2341"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"9e6c1b12f71f5d1a1b525509bdc11f9717ca81a8","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        self.client.store_image(image_id, image_file)"},{"line_number":48,"context_line":"        # deactivate image"},{"line_number":49,"context_line":"        self.admin_client.deactivate_image(image_id)"},{"line_number":50,"context_line":"        body \u003d self.client.get_image(image_id)"},{"line_number":51,"context_line":"        self.assertEqual(\"deactivated\", body[\u0027status\u0027])"},{"line_number":52,"context_line":"        # reactivate image"},{"line_number":53,"context_line":"        self.admin_client.reactivate_image(image_id)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5afe65bd_14f9024e","line":50,"updated":"2015-06-01 17:40:56.000000000","message":"I added the necessary devstack change to enable this option and made this patch dependent on that. The test was not running so this error was not seen.\n\ncommit 91217f15eb70e845abe9e85153631a12d6d24d7f changed get_image to show_image. Once this all merges, a devstack change to do the same on stable/kilo will be needed.","commit_id":"4e423927f6289c98a77fb433f814602c5dca14a2"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"7ae74656b12f6b49cfe1bf9577a3683638329799","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        self.client.store_image(image_id, image_file)"},{"line_number":48,"context_line":"        # deactivate image"},{"line_number":49,"context_line":"        self.admin_client.deactivate_image(image_id)"},{"line_number":50,"context_line":"        body \u003d self.client.get_image(image_id)"},{"line_number":51,"context_line":"        self.assertEqual(\"deactivated\", body[\u0027status\u0027])"},{"line_number":52,"context_line":"        # reactivate image"},{"line_number":53,"context_line":"        self.admin_client.reactivate_image(image_id)"}],"source_content_type":"text/x-python","patch_set":13,"id":"5afe65bd_075e6de9","line":50,"updated":"2015-06-01 20:22:03.000000000","message":"Missed this one.","commit_id":"0e3e258dea18ca7212ae33904bb3e2db7a940a00"}],"tempest/api/image/base.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"fad93a3f0c6e3a8ee290270a206f7dfd835b0b5b","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                pass"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        for image_id in cls.created_images:"},{"line_number":59,"context_line":"                cls.client.wait_for_resource_deletion(image_id)"},{"line_number":60,"context_line":"        super(BaseImageTest, cls).resource_cleanup()"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_4f5717ca","side":"PARENT","line":59,"updated":"2015-05-22 06:27:57.000000000","message":"Please don\u0027t touch files that are not related to your patch. You should leave the formatting as is.","commit_id":"8c60c38c38386025e8c085b9241d56d98568865a"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"a5720686722a121f4d84e6d7e74ff767dd79afb8","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"class BaseV1ImageTest(BaseImageTest):"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    @classmethod"},{"line_number":82,"context_line":"    def skip_checks(cls):"},{"line_number":83,"context_line":"        super(BaseV1ImageTest, cls).skip_checks()"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_709f04b5","side":"PARENT","line":80,"updated":"2015-05-26 16:10:25.000000000","message":"There\u0027s no need to remove these empty lines.","commit_id":"8c60c38c38386025e8c085b9241d56d98568865a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"0f91d662328448bdfa77494eee71714218fe9dcb","unresolved":false,"context_lines":[{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    @classmethod"},{"line_number":173,"context_line":"    def resource_setup(cls):"},{"line_number":174,"context_line":"        super(BaseV1ImageAdminTest, cls).resource_setup()"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    @classmethod"},{"line_number":177,"context_line":"    def resource_cleanup(cls):"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_fa85e6ce","line":174,"updated":"2015-05-27 15:38:09.000000000","message":"This resource_setup definition is not necessary because current one just calls original resource_setup() only.","commit_id":"14d5f1a86bdb50106375532ec4da39767d9b2341"},{"author":{"_account_id":11075,"name":"Benny Kopilov","email":"bkopilov@redhat.com","username":"bkopilov"},"change_message_id":"279c9438b05d27eb120366a67f52886c4b320703","unresolved":false,"context_lines":[{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    @classmethod"},{"line_number":173,"context_line":"    def resource_setup(cls):"},{"line_number":174,"context_line":"        super(BaseV1ImageAdminTest, cls).resource_setup()"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    @classmethod"},{"line_number":177,"context_line":"    def resource_cleanup(cls):"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_02ba94e1","line":174,"in_reply_to":"7a016987_fa85e6ce","updated":"2015-05-27 16:14:51.000000000","message":"Yep , you are right .\nBut i dont see here any logic problem . it will be the same without these function .","commit_id":"14d5f1a86bdb50106375532ec4da39767d9b2341"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"0f91d662328448bdfa77494eee71714218fe9dcb","unresolved":false,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    @classmethod"},{"line_number":191,"context_line":"    def resource_setup(cls):"},{"line_number":192,"context_line":"        super(BaseV2ImageAdminTest, cls).resource_setup()"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    @classmethod"},{"line_number":195,"context_line":"    def resource_cleanup(cls):"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_5a607a35","line":192,"updated":"2015-05-27 15:38:09.000000000","message":"ditto","commit_id":"14d5f1a86bdb50106375532ec4da39767d9b2341"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"0f91d662328448bdfa77494eee71714218fe9dcb","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    @classmethod"},{"line_number":195,"context_line":"    def resource_cleanup(cls):"},{"line_number":196,"context_line":"        super(BaseV2ImageAdminTest, cls).resource_cleanup()"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_9afcb23f","line":196,"updated":"2015-05-27 15:38:09.000000000","message":"ditto","commit_id":"14d5f1a86bdb50106375532ec4da39767d9b2341"}],"tempest/config.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"fad93a3f0c6e3a8ee290270a206f7dfd835b0b5b","unresolved":false,"context_lines":[{"line_number":410,"context_line":"               default\u003d1,"},{"line_number":411,"context_line":"               help\u003d\"Time in seconds between image operation status \""},{"line_number":412,"context_line":"                    \"checks.\"),"},{"line_number":413,"context_line":"    cfg.BoolOpt(\u0027deactivate_image\u0027,"},{"line_number":414,"context_line":"                default\u003dFalse,"},{"line_number":415,"context_line":"                help\u003d\"An Operation to Deactivate an Image in Glance,\""},{"line_number":416,"context_line":"                     \" Accepted for kilo.\"),"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_4f7b977b","line":413,"updated":"2015-05-22 06:27:57.000000000","message":"This should be move in the ImageFeatureGroup below","commit_id":"c5a499577c60390b6f2328fa0e8571499e88e5b8"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"a5720686722a121f4d84e6d7e74ff767dd79afb8","unresolved":false,"context_lines":[{"line_number":409,"context_line":"    cfg.IntOpt(\u0027build_interval\u0027,"},{"line_number":410,"context_line":"               default\u003d1,"},{"line_number":411,"context_line":"               help\u003d\"Time in seconds between image operation status \""},{"line_number":412,"context_line":"                    \"checks.\"),"},{"line_number":413,"context_line":"]"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"image_feature_group \u003d cfg.OptGroup(name\u003d\u0027image-feature-enabled\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_7003840e","line":412,"updated":"2015-05-26 16:10:25.000000000","message":"Please don\u0027t insert non related change in this patch. This confuses the git history.","commit_id":"14461ac89bd2d659351148bf97c4ebea165ef510"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"0f91d662328448bdfa77494eee71714218fe9dcb","unresolved":false,"context_lines":[{"line_number":425,"context_line":"    cfg.BoolOpt(\u0027deactivate_image\u0027,"},{"line_number":426,"context_line":"                default\u003dFalse,"},{"line_number":427,"context_line":"                help\u003d\"An Operation to Deactivate an Image in Glance,\""},{"line_number":428,"context_line":"                     \" Accepted for kilo.\"),"},{"line_number":429,"context_line":"]"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"network_group \u003d cfg.OptGroup(name\u003d\u0027network\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_fc9a83c4","line":428,"updated":"2015-05-27 15:38:09.000000000","message":"nit: not reason of -1\n\nhow about the following description for fitting to the other description:\n\n Is the deactivate-image feature enabled. The feature has been integrated since Kilo.","commit_id":"14d5f1a86bdb50106375532ec4da39767d9b2341"},{"author":{"_account_id":11075,"name":"Benny Kopilov","email":"bkopilov@redhat.com","username":"bkopilov"},"change_message_id":"279c9438b05d27eb120366a67f52886c4b320703","unresolved":false,"context_lines":[{"line_number":425,"context_line":"    cfg.BoolOpt(\u0027deactivate_image\u0027,"},{"line_number":426,"context_line":"                default\u003dFalse,"},{"line_number":427,"context_line":"                help\u003d\"An Operation to Deactivate an Image in Glance,\""},{"line_number":428,"context_line":"                     \" Accepted for kilo.\"),"},{"line_number":429,"context_line":"]"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"network_group \u003d cfg.OptGroup(name\u003d\u0027network\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_1f01d106","line":428,"in_reply_to":"7a016987_fc9a83c4","updated":"2015-05-27 16:14:51.000000000","message":"I will change it\nThanks,\nBenny","commit_id":"14d5f1a86bdb50106375532ec4da39767d9b2341"}],"tempest/services/image/v2/json/image_client.py":[{"author":{"_account_id":11356,"name":"Louis Taylor","email":"louis@kragniz.eu","username":"kragniz"},"change_message_id":"24ff5ea63a1593f076d149e357e7d95bd9c5b23e","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        resp, body \u003d self.post(url, None)"},{"line_number":108,"context_line":"        self.expected_success(204, resp.status)"},{"line_number":109,"context_line":"        return service_client.ResponseBody(resp, body)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    def delete_image(self, image_id):"},{"line_number":112,"context_line":"        url \u003d \u0027v2/images/%s\u0027 % image_id"},{"line_number":113,"context_line":"        resp, _ \u003d self.delete(url)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_8ccabd19","line":110,"updated":"2015-05-22 05:47:35.000000000","message":"Both these tests look good.","commit_id":"c5a499577c60390b6f2328fa0e8571499e88e5b8"}]}
