)]}'
{"tempest/api/compute/base.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"a7d2831306cc02695746a8535c049cf74be4493a","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        return body"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"    @classmethod"},{"line_number":280,"context_line":"    def create_volume(cls, name\u003dNone, **kwargs):"},{"line_number":281,"context_line":"        \"\"\"Wrapper utility that returns a test volume.\"\"\""},{"line_number":282,"context_line":"        name \u003d name or data_utils.rand_name(cls.__name__ + \u0027-Volume\u0027)"},{"line_number":283,"context_line":"        volume \u003d cls.volumes_client.create_volume("}],"source_content_type":"text/x-python","patch_set":5,"id":"1ac06dbe_8177f69e","line":280,"updated":"2016-08-23 15:14:59.000000000","message":"We try to get rid of class level fixtures. You should make this \u0027create_volume\u0027 method a instance method (not a class method) and use self.addCleanup(test_utils.call_and_ignore_notfound_exc(self.volumes_client.delete_volume, volume[\u0027id\u0027])\n\nThis way, no need to introduce a clear_volumes() class method.","commit_id":"8fe16a8948c584d891dd1a4bbb1dda3ca13e6676"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"083d9c1baa37146a5e22527f2d45f9e94662c3a0","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        return body"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"    @classmethod"},{"line_number":280,"context_line":"    def create_volume(cls, name\u003dNone, **kwargs):"},{"line_number":281,"context_line":"        \"\"\"Wrapper utility that returns a test volume.\"\"\""},{"line_number":282,"context_line":"        name \u003d name or data_utils.rand_name(cls.__name__ + \u0027-Volume\u0027)"},{"line_number":283,"context_line":"        volume \u003d cls.volumes_client.create_volume("}],"source_content_type":"text/x-python","patch_set":5,"id":"1ac06dbe_89a1d0fa","line":280,"in_reply_to":"1ac06dbe_8177f69e","updated":"2016-08-23 17:45:26.000000000","message":"I\u0027ll fix it","commit_id":"8fe16a8948c584d891dd1a4bbb1dda3ca13e6676"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"5efdbd0bdd95786950c869b2daef42abc55cdcdb","unresolved":false,"context_lines":[{"line_number":255,"context_line":"        cls.server_groups.append(body[\u0027id\u0027])"},{"line_number":256,"context_line":"        return body"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    def create_volume(self, name\u003dNone, **kwargs):"},{"line_number":259,"context_line":"        \"\"\"Wrapper utility that returns a test volume.\"\"\""},{"line_number":260,"context_line":"        name \u003d name or data_utils.rand_name("},{"line_number":261,"context_line":"            self.__class__.__name__ + \u0027-Volume\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa7ab95a_eb1ae86d","line":258,"updated":"2016-08-26 09:04:58.000000000","message":"This is the exact same method that is already in api/volume/base.py.\n\nWe can\u0027t duplicate code like this. It makes the code hard to maintain. \n\nI suggest you move that method into a new file tempest/common/volume.py. And remove that method from api/volume/base.py.\n\nI know it\u0027s a lot of work :) But it will be very good for Tempest.","commit_id":"a3c7cd269c3b3a240ce3488de755a3fbc50d8b07"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"71e8fd02ffbde4d08cba244b9c824315a466493a","unresolved":false,"context_lines":[{"line_number":255,"context_line":"        cls.server_groups.append(body[\u0027id\u0027])"},{"line_number":256,"context_line":"        return body"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    def create_volume(self, name\u003dNone, **kwargs):"},{"line_number":259,"context_line":"        \"\"\"Wrapper utility that returns a test volume.\"\"\""},{"line_number":260,"context_line":"        name \u003d name or data_utils.rand_name("},{"line_number":261,"context_line":"            self.__class__.__name__ + \u0027-Volume\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa7ab95a_388edd78","line":258,"in_reply_to":"fa7ab95a_eb1ae86d","updated":"2016-08-26 11:20:18.000000000","message":"Thanks I agree with you. I\u0027ll work on it","commit_id":"a3c7cd269c3b3a240ce3488de755a3fbc50d8b07"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"d9b36b94360d7e43acf31c33fcb3e750344e8527","unresolved":false,"context_lines":[{"line_number":256,"context_line":"        cls.server_groups.append(body[\u0027id\u0027])"},{"line_number":257,"context_line":"        return body"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    def create_volume(self, name\u003dNone, **kwargs):"},{"line_number":260,"context_line":"        \"\"\"Wrapper utility that returns a test volume.\"\"\""},{"line_number":261,"context_line":"        name \u003d name or data_utils.rand_name("},{"line_number":262,"context_line":"            self.__class__.__name__ + \u0027-Volume\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa7ab95a_01fc483d","line":259,"updated":"2016-08-31 12:01:06.000000000","message":"That\u0027s a nice addition, thanks !","commit_id":"c7c130bfa391b5892abd2822e1b23d35268d3ad1"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"6761abf7ae2ac282866e06d385ecf888566ec24c","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        if CONF.volume_feature_enabled.api_v1:"},{"line_number":100,"context_line":"            cls.volumes_client \u003d cls.os.volumes_client"},{"line_number":101,"context_line":"            cls._api_version \u003d 1"},{"line_number":102,"context_line":"        else:"},{"line_number":103,"context_line":"            cls.volumes_client \u003d cls.os.volumes_v2_client"},{"line_number":104,"context_line":"            cls._api_version \u003d 2"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa7ab95a_df6ab0b4","line":101,"updated":"2016-09-02 12:15:44.000000000","message":"This attribute should be named \"volume_api_version\". Because  here you are in the compute tests directory, so _api_version could be misunderstood as the api version for Nova.","commit_id":"3458ac823615ace3d0a44f3bbe86a3dd480256f4"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"5b6e57576830aa412646be701fa5efc7b6b5cd87","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        if CONF.volume_feature_enabled.api_v1:"},{"line_number":100,"context_line":"            cls.volumes_client \u003d cls.os.volumes_client"},{"line_number":101,"context_line":"            cls._api_version \u003d 1"},{"line_number":102,"context_line":"        else:"},{"line_number":103,"context_line":"            cls.volumes_client \u003d cls.os.volumes_v2_client"},{"line_number":104,"context_line":"            cls._api_version \u003d 2"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a89bdaa_7425e4c0","line":101,"in_reply_to":"fa7ab95a_df6ab0b4","updated":"2016-09-03 18:54:54.000000000","message":"Right, I\u0027ll fix it","commit_id":"3458ac823615ace3d0a44f3bbe86a3dd480256f4"}],"tempest/api/compute/servers/test_servers.py":[{"author":{"_account_id":11075,"name":"Benny Kopilov","email":"bkopilov@redhat.com","username":"bkopilov"},"change_message_id":"1b13d3f87e79514006e65d93975a08fc65d202d5","unresolved":false,"context_lines":[{"line_number":154,"context_line":"         \"\"\""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        # Create a volume from image"},{"line_number":157,"context_line":"        img_uuid \u003d CONF.compute.image_ref"},{"line_number":158,"context_line":"        vol_name \u003d data_utils.rand_name(\u0027volume-origin\u0027)"},{"line_number":159,"context_line":"        volume \u003d self.volumes_client.create_volume(name\u003dvol_name,"},{"line_number":160,"context_line":"                                                   imageRef\u003dimg_uuid)[\u0027volume\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ac06dbe_67767307","line":157,"range":{"start_line":157,"start_character":8,"end_line":157,"end_character":16},"updated":"2016-08-23 06:09:56.000000000","message":"Could you fix name to image_uuid ?","commit_id":"e297d6aab8d1a7df3d164562afb02c1eb02f6b9e"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"4eacd988660a3da7512af970f0ca26a48e7e88f2","unresolved":false,"context_lines":[{"line_number":154,"context_line":"         \"\"\""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        # Create a volume from image"},{"line_number":157,"context_line":"        img_uuid \u003d CONF.compute.image_ref"},{"line_number":158,"context_line":"        vol_name \u003d data_utils.rand_name(\u0027volume-origin\u0027)"},{"line_number":159,"context_line":"        volume \u003d self.volumes_client.create_volume(name\u003dvol_name,"},{"line_number":160,"context_line":"                                                   imageRef\u003dimg_uuid)[\u0027volume\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ac06dbe_d166f84f","line":157,"range":{"start_line":157,"start_character":8,"end_line":157,"end_character":16},"in_reply_to":"1ac06dbe_67767307","updated":"2016-08-23 09:40:02.000000000","message":"Thanks for your comment\nDone","commit_id":"e297d6aab8d1a7df3d164562afb02c1eb02f6b9e"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"72e7b9b272cb61b223c355899e2bdbee0afd92e2","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        # Create a volume from image"},{"line_number":157,"context_line":"        img_uuid \u003d CONF.compute.image_ref"},{"line_number":158,"context_line":"        vol_name \u003d data_utils.rand_name(\u0027volume-origin\u0027)"},{"line_number":159,"context_line":"        volume \u003d self.volumes_client.create_volume(name\u003dvol_name,"},{"line_number":160,"context_line":"                                                   imageRef\u003dimg_uuid)[\u0027volume\u0027]"},{"line_number":161,"context_line":"        self.addCleanup(self._delete_volume, self.volumes_client, volume[\u0027id\u0027])"},{"line_number":162,"context_line":"        waiters.wait_for_volume_status(self.volumes_client, volume[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ac06dbe_3af7698c","line":159,"updated":"2016-08-23 08:13:06.000000000","message":"Now is a good time to introduce a \"create_volume\" helper in the BaseV2ComputeTest class that creates a volume, add the cleanup and take a \u0027status\u0027 parameter to wait for. We can\u0027t keep on duplicating these 3 lines.","commit_id":"e297d6aab8d1a7df3d164562afb02c1eb02f6b9e"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"4eacd988660a3da7512af970f0ca26a48e7e88f2","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        # Create a volume from image"},{"line_number":157,"context_line":"        img_uuid \u003d CONF.compute.image_ref"},{"line_number":158,"context_line":"        vol_name \u003d data_utils.rand_name(\u0027volume-origin\u0027)"},{"line_number":159,"context_line":"        volume \u003d self.volumes_client.create_volume(name\u003dvol_name,"},{"line_number":160,"context_line":"                                                   imageRef\u003dimg_uuid)[\u0027volume\u0027]"},{"line_number":161,"context_line":"        self.addCleanup(self._delete_volume, self.volumes_client, volume[\u0027id\u0027])"},{"line_number":162,"context_line":"        waiters.wait_for_volume_status(self.volumes_client, volume[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ac06dbe_31b4ac80","line":159,"in_reply_to":"1ac06dbe_3af7698c","updated":"2016-08-23 09:40:02.000000000","message":"Thanks for your comment, I agree with you\nI\u0027ll update other tests to use the generic method in the next patch","commit_id":"e297d6aab8d1a7df3d164562afb02c1eb02f6b9e"},{"author":{"_account_id":11075,"name":"Benny Kopilov","email":"bkopilov@redhat.com","username":"bkopilov"},"change_message_id":"1b13d3f87e79514006e65d93975a08fc65d202d5","unresolved":false,"context_lines":[{"line_number":172,"context_line":"        self.assertEqual(\u0027false\u0027, nonbootable_vol[\u0027bootable\u0027])"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        # Block device mapping"},{"line_number":175,"context_line":"        bd_map \u003d [{\u0027device_name\u0027: \u0027vda\u0027,"},{"line_number":176,"context_line":"                   \u0027volume_id\u0027: volume[\u0027id\u0027],"},{"line_number":177,"context_line":"                   \u0027delete_on_termination\u0027: False}]"},{"line_number":178,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1ac06dbe_423085e8","line":175,"range":{"start_line":175,"start_character":20,"end_line":175,"end_character":31},"updated":"2016-08-23 06:09:56.000000000","message":"Do we need here device_name as hardcoded valume ?\nBenny","commit_id":"e297d6aab8d1a7df3d164562afb02c1eb02f6b9e"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"4eacd988660a3da7512af970f0ca26a48e7e88f2","unresolved":false,"context_lines":[{"line_number":172,"context_line":"        self.assertEqual(\u0027false\u0027, nonbootable_vol[\u0027bootable\u0027])"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        # Block device mapping"},{"line_number":175,"context_line":"        bd_map \u003d [{\u0027device_name\u0027: \u0027vda\u0027,"},{"line_number":176,"context_line":"                   \u0027volume_id\u0027: volume[\u0027id\u0027],"},{"line_number":177,"context_line":"                   \u0027delete_on_termination\u0027: False}]"},{"line_number":178,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1ac06dbe_917c80b6","line":175,"range":{"start_line":175,"start_character":20,"end_line":175,"end_character":31},"in_reply_to":"1ac06dbe_423085e8","updated":"2016-08-23 09:40:02.000000000","message":"It is not mandatory I can remove it","commit_id":"e297d6aab8d1a7df3d164562afb02c1eb02f6b9e"},{"author":{"_account_id":11075,"name":"Benny Kopilov","email":"bkopilov@redhat.com","username":"bkopilov"},"change_message_id":"2d3d8dd75f7c48f682e0862ce422b69553b44c70","unresolved":false,"context_lines":[{"line_number":166,"context_line":"            volume[\u0027id\u0027])[\u0027volume\u0027]"},{"line_number":167,"context_line":"        self.assertEqual(\u0027false\u0027, nonbootable_vol[\u0027bootable\u0027])"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        # Block device mapping"},{"line_number":170,"context_line":"        bd_map \u003d [{\u0027volume_id\u0027: volume[\u0027id\u0027],"},{"line_number":171,"context_line":"                   \u0027delete_on_termination\u0027: False}]"},{"line_number":172,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1ac06dbe_74d60df2","line":169,"range":{"start_line":169,"start_character":10,"end_line":169,"end_character":15},"updated":"2016-08-23 11:08:05.000000000","message":"Hi Liron , i run the command manually:\n\"block_device_mapping_v2\": [{\"source_type\": \"volume\", \"delete_on_termination\": false, \"boot_index\": 0, \"uuid\": \"0dede7d3-b748-4064-8046-efb3832e4de9\", \"destination_type\": \"volume\"}","commit_id":"8fe16a8948c584d891dd1a4bbb1dda3ca13e6676"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"a7d2831306cc02695746a8535c049cf74be4493a","unresolved":false,"context_lines":[{"line_number":171,"context_line":"                   \u0027delete_on_termination\u0027: False}]"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        # Try creating a server from non-bootable volume"},{"line_number":174,"context_line":"        self.assertRaises(exceptions.BadRequest,"},{"line_number":175,"context_line":"                          self.create_test_server,"},{"line_number":176,"context_line":"                          image_id\u003d\u0027\u0027,"},{"line_number":177,"context_line":"                          wait_until\u003d\u0027ACTIVE\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ac06dbe_e1934a59","line":174,"updated":"2016-08-23 15:14:59.000000000","message":"So, this is a negative test and should be put into test_servers_negative.py","commit_id":"8fe16a8948c584d891dd1a4bbb1dda3ca13e6676"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"a7d2831306cc02695746a8535c049cf74be4493a","unresolved":false,"context_lines":[{"line_number":187,"context_line":"        self.assertEqual(\u0027true\u0027, bootable_vol[\u0027bootable\u0027])"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        # Create a server from bootable volume"},{"line_number":190,"context_line":"        server \u003d self.create_test_server(block_device_mapping\u003dbd_map)"},{"line_number":191,"context_line":"        waiters.wait_for_volume_status(self.volumes_client, volume[\u0027id\u0027],"},{"line_number":192,"context_line":"                                       \u0027in-use\u0027)"},{"line_number":193,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1ac06dbe_21ed62b7","line":190,"updated":"2016-08-23 15:14:59.000000000","message":"Here you are creating a server that boots from a volume. This is already tested in several places in Tempest. So unfortunately this looks like test duplication :(","commit_id":"8fe16a8948c584d891dd1a4bbb1dda3ca13e6676"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"0966604762e8b5d31d51e36a5d2d76a6e3889519","unresolved":false,"context_lines":[{"line_number":187,"context_line":"        self.assertEqual(\u0027true\u0027, bootable_vol[\u0027bootable\u0027])"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        # Create a server from bootable volume"},{"line_number":190,"context_line":"        server \u003d self.create_test_server(block_device_mapping\u003dbd_map)"},{"line_number":191,"context_line":"        waiters.wait_for_volume_status(self.volumes_client, volume[\u0027id\u0027],"},{"line_number":192,"context_line":"                                       \u0027in-use\u0027)"},{"line_number":193,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1ac06dbe_95e0ccce","line":190,"in_reply_to":"1ac06dbe_21ed62b7","updated":"2016-08-23 15:57:12.000000000","message":"Hi Jordan,\nThe purpose of the test is to verify updating bootable status of a volume and to validate that when volume bootable flag is false, server creation from a volume will failed and once the flag is update to true the server creation will succeed. I think this is the right way to test bootable flag updating and not just to verify that the bootable status of the volume is updated.","commit_id":"8fe16a8948c584d891dd1a4bbb1dda3ca13e6676"}],"tempest/api/compute/servers/test_servers_negative.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"d9b36b94360d7e43acf31c33fcb3e750344e8527","unresolved":false,"context_lines":[{"line_number":508,"context_line":"        self.assertEqual(\u0027false\u0027, nonbootable_vol[\u0027bootable\u0027])"},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"        # Block device mapping"},{"line_number":511,"context_line":"        bd_map \u003d [{\u0027volume_id\u0027: volume[\u0027id\u0027],"},{"line_number":512,"context_line":"                   \u0027delete_on_termination\u0027: False}]"},{"line_number":513,"context_line":""},{"line_number":514,"context_line":"        # Try creating a server from non-bootable volume"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa7ab95a_c153406b","line":511,"updated":"2016-08-31 12:01:06.000000000","message":"Could you use bd mapping v2: http://docs.openstack.org/developer/nova/block_device_mapping.html#block-device-mapping-v2 please ?","commit_id":"c7c130bfa391b5892abd2822e1b23d35268d3ad1"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"0e6439ba42e78d41446279021fc17791a1d3179a","unresolved":false,"context_lines":[{"line_number":508,"context_line":"        self.assertEqual(\u0027false\u0027, nonbootable_vol[\u0027bootable\u0027])"},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"        # Block device mapping"},{"line_number":511,"context_line":"        bd_map \u003d [{\u0027volume_id\u0027: volume[\u0027id\u0027],"},{"line_number":512,"context_line":"                   \u0027delete_on_termination\u0027: False}]"},{"line_number":513,"context_line":""},{"line_number":514,"context_line":"        # Try creating a server from non-bootable volume"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa7ab95a_c5c0a57f","line":511,"in_reply_to":"fa7ab95a_c153406b","updated":"2016-08-31 14:48:27.000000000","message":"Done","commit_id":"c7c130bfa391b5892abd2822e1b23d35268d3ad1"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"7b06c4d9bc91a855ce3cff4c72ae660dd265a5a1","unresolved":false,"context_lines":[{"line_number":496,"context_line":"    def test_create_server_from_non_bootable_volume(self):"},{"line_number":497,"context_line":"        # Create a volume from image"},{"line_number":498,"context_line":"        image_uuid \u003d CONF.compute.image_ref"},{"line_number":499,"context_line":"        volume \u003d self.create_volume(imageRef\u003dimage_uuid)"},{"line_number":500,"context_line":""},{"line_number":501,"context_line":"        # Update volume bootable status to false"},{"line_number":502,"context_line":"        self.volumes_client.set_bootable_volume(volume[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a98d1f4_75e17129","line":499,"updated":"2016-10-04 10:03:49.000000000","message":"You don\"t need to create a volume from an image. Just create an empty volume, the test will run much faster.","commit_id":"8122eccd17a0b2b6481e56c39d68eb50df5c77af"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"50ef5c114364b269bb15e1df1cac6b1fb35327c6","unresolved":false,"context_lines":[{"line_number":496,"context_line":"    def test_create_server_from_non_bootable_volume(self):"},{"line_number":497,"context_line":"        # Create a volume from image"},{"line_number":498,"context_line":"        image_uuid \u003d CONF.compute.image_ref"},{"line_number":499,"context_line":"        volume \u003d self.create_volume(imageRef\u003dimage_uuid)"},{"line_number":500,"context_line":""},{"line_number":501,"context_line":"        # Update volume bootable status to false"},{"line_number":502,"context_line":"        self.volumes_client.set_bootable_volume(volume[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a95cdbc_e893c3a1","line":499,"in_reply_to":"3a98d1f4_75e17129","updated":"2016-10-05 06:22:20.000000000","message":"But the idea is to create a bootable volume and then to update the bootable flag to false, so I should create a volume from an image.","commit_id":"8122eccd17a0b2b6481e56c39d68eb50df5c77af"}],"tempest/api/volume/base.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"7b06c4d9bc91a855ce3cff4c72ae660dd265a5a1","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        volume \u003d cls.volumes_client.create_volume(**kwargs)[\u0027volume\u0027]"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        cls.volumes.append(volume)"},{"line_number":124,"context_line":"        waiters.wait_for_volume_status(cls.volumes_client,"},{"line_number":125,"context_line":"                                       volume[\u0027id\u0027], \u0027available\u0027)"},{"line_number":126,"context_line":"        return volume"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"3a98d1f4_558f1574","side":"PARENT","line":124,"updated":"2016-10-04 10:03:49.000000000","message":"What about this line. Why was it removed ?","commit_id":"bbc8ec929382d327ad4ba450983dfc121ab825b8"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"50ef5c114364b269bb15e1df1cac6b1fb35327c6","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        volume \u003d cls.volumes_client.create_volume(**kwargs)[\u0027volume\u0027]"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        cls.volumes.append(volume)"},{"line_number":124,"context_line":"        waiters.wait_for_volume_status(cls.volumes_client,"},{"line_number":125,"context_line":"                                       volume[\u0027id\u0027], \u0027available\u0027)"},{"line_number":126,"context_line":"        return volume"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1a95cdbc_a8cffbae","side":"PARENT","line":124,"in_reply_to":"3a98d1f4_558f1574","updated":"2016-10-05 06:22:20.000000000","message":"It is implemented in tempest/common/volume.py line 42","commit_id":"bbc8ec929382d327ad4ba450983dfc121ab825b8"}],"tempest/common/volume.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"d9b36b94360d7e43acf31c33fcb3e750344e8527","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    name \u003d name or data_utils.rand_name(__name__ + \u0027-Volume\u0027)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    # Special fields and resp coder for cinder v1 \u0026 v2"},{"line_number":29,"context_line":"    if (CONF.volume_feature_enabled.api_v1 and api_version \u003d\u003d 1"},{"line_number":30,"context_line":"       or CONF.volume_feature_enabled.api_v1):"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        special_fields \u003d {\u0027name_field\u0027: \u0027display_name\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa7ab95a_e43db2bc","line":29,"updated":"2016-08-31 12:01:06.000000000","message":"That \u0027if\u0027 statement is weird. \n\n\"if (a and b or a)\" is equivalent to \"if a\". There\u0027s a bug here.","commit_id":"c7c130bfa391b5892abd2822e1b23d35268d3ad1"}]}
