)]}'
{"nova/tests/unit/virt/libvirt/test_utils.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"244c209ae3ae80852a64e978f30b4fde5bcf8be3","unresolved":false,"context_lines":[{"line_number":336,"context_line":"                           \u0027/the/new/cow\u0027),)]"},{"line_number":337,"context_line":"        self.assertEqual(expected_args, mock_execute.call_args_list)"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"    @ddt.unpack"},{"line_number":340,"context_line":"    @ddt.data({\u0027fs_type\u0027: \u0027some_fs_type\u0027,"},{"line_number":341,"context_line":"               \u0027default_eph_format\u0027: None,"},{"line_number":342,"context_line":"               \u0027expected_fs_type\u0027: \u0027some_fs_type\u0027},"},{"line_number":343,"context_line":"              {\u0027fs_type\u0027: None,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a1ced50_7716ef4c","side":"PARENT","line":340,"range":{"start_line":339,"start_character":4,"end_line":340,"end_character":13},"updated":"2017-03-23 08:36:57.000000000","message":"These lines should not be removed.\nThey define 3 test cases(3 test data).","commit_id":"39cd54091747723a392dc33a2b5d6f5a28b537a7"},{"author":{"_account_id":15847,"name":"Mikhail Feoktistov","email":"mfeoktistov@virtuozzo.com","username":"mfeoktistov"},"change_message_id":"032dcd49b4f555eb6793de7963a5709ee1ef120d","unresolved":false,"context_lines":[{"line_number":336,"context_line":"                           \u0027/the/new/cow\u0027),)]"},{"line_number":337,"context_line":"        self.assertEqual(expected_args, mock_execute.call_args_list)"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"    @ddt.unpack"},{"line_number":340,"context_line":"    @ddt.data({\u0027fs_type\u0027: \u0027some_fs_type\u0027,"},{"line_number":341,"context_line":"               \u0027default_eph_format\u0027: None,"},{"line_number":342,"context_line":"               \u0027expected_fs_type\u0027: \u0027some_fs_type\u0027},"},{"line_number":343,"context_line":"              {\u0027fs_type\u0027: None,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a1ced50_b20235b2","side":"PARENT","line":340,"range":{"start_line":339,"start_character":4,"end_line":340,"end_character":13},"in_reply_to":"1a1ced50_7716ef4c","updated":"2017-03-23 09:02:01.000000000","message":"We don\u0027t need these three tests.\nNow create_ploop_image() doesn\u0027t have if-statement, so only one set of arguments is necessary.","commit_id":"39cd54091747723a392dc33a2b5d6f5a28b537a7"},{"author":{"_account_id":12408,"name":"Maxim Nestratov","email":"mnestratov@virtuozzo.com","username":"mnestratov"},"change_message_id":"2f7c1d5324e11645477ac1377cb93cbb08053c38","unresolved":false,"context_lines":[{"line_number":340,"context_line":"    def test_create_ploop_image(self, mock_execute):"},{"line_number":341,"context_line":"        libvirt_utils.create_ploop_image(\u0027expanded\u0027, \u0027/some/path\u0027, \u00275G\u0027)"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"        mock_execute.assert_has_calls(["},{"line_number":344,"context_line":"            mock.call(\u0027mkdir\u0027, \u0027-p\u0027, \u0027/some/path\u0027),"},{"line_number":345,"context_line":"            mock.call(\u0027ploop\u0027, \u0027init\u0027, \u0027-s\u0027, \u00275G\u0027,"},{"line_number":346,"context_line":"                      \u0027-f\u0027, \u0027expanded\u0027, \u0027/some/path/root.hds\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a1ced50_666b9a1e","line":343,"range":{"start_line":343,"start_character":37,"end_line":343,"end_character":39},"updated":"2017-03-23 12:32:51.000000000","message":"Doesn\u0027t it make sense still to check that setting default_ephemeral_format has no effect on ploop creation?","commit_id":"d6e66e8023bf3399c8df1fb9e0f50ca00417966d"},{"author":{"_account_id":15847,"name":"Mikhail Feoktistov","email":"mfeoktistov@virtuozzo.com","username":"mfeoktistov"},"change_message_id":"b55f39d9348e052ec992b39afdac61d68efcc884","unresolved":false,"context_lines":[{"line_number":340,"context_line":"    def test_create_ploop_image(self, mock_execute):"},{"line_number":341,"context_line":"        libvirt_utils.create_ploop_image(\u0027expanded\u0027, \u0027/some/path\u0027, \u00275G\u0027)"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"        mock_execute.assert_has_calls(["},{"line_number":344,"context_line":"            mock.call(\u0027mkdir\u0027, \u0027-p\u0027, \u0027/some/path\u0027),"},{"line_number":345,"context_line":"            mock.call(\u0027ploop\u0027, \u0027init\u0027, \u0027-s\u0027, \u00275G\u0027,"},{"line_number":346,"context_line":"                      \u0027-f\u0027, \u0027expanded\u0027, \u0027/some/path/root.hds\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7ffa3b31_024e4a96","line":343,"range":{"start_line":343,"start_character":37,"end_line":343,"end_character":39},"in_reply_to":"1a1ced50_666b9a1e","updated":"2017-04-19 16:13:51.000000000","message":"Ok. I agree, it\u0027s better to check default_ephemeral_format here","commit_id":"d6e66e8023bf3399c8df1fb9e0f50ca00417966d"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"88b7b45d2fdb1c29f5d4655e41bc9c1fd8417215","unresolved":false,"context_lines":[{"line_number":31,"context_line":"from nova import exception"},{"line_number":32,"context_line":"from nova import objects"},{"line_number":33,"context_line":"from nova.objects import fields as obj_fields"},{"line_number":34,"context_line":"import nova.privsep.fs"},{"line_number":35,"context_line":"from nova import test"},{"line_number":36,"context_line":"from nova.tests import fixtures as nova_fixtures"},{"line_number":37,"context_line":"from nova.tests.unit import fake_instance"}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa7e38b_5258a888","line":34,"range":{"start_line":34,"start_character":0,"end_line":34,"end_character":22},"updated":"2019-10-11 05:09:54.000000000","message":"It is unused.\nIt should be removed.","commit_id":"8a44d8f5668c61db11cfb574faeac4dfe1c9b5a3"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":12408,"name":"Maxim Nestratov","email":"mnestratov@virtuozzo.com","username":"mnestratov"},"change_message_id":"412f92aa102db948d791205440b5d221e1978c60","unresolved":false,"context_lines":[{"line_number":2900,"context_line":""},{"line_number":2901,"context_line":"                if (specified_fs is not None and"},{"line_number":2902,"context_line":"                        specified_fs !\u003d disk.FS_FORMAT_EXT4):"},{"line_number":2903,"context_line":"                    LOG.warning(_LW(\"Ploop supports only ext4 format.\"))"},{"line_number":2904,"context_line":""},{"line_number":2905,"context_line":"                libvirt_utils.create_ploop_image(\u0027expanded\u0027, target,"},{"line_number":2906,"context_line":"                                                 \u0027%dG\u0027 % ephemeral_size)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a1ced50_c7f2b905","line":2903,"range":{"start_line":2903,"start_character":37,"end_line":2903,"end_character":68},"updated":"2017-03-22 14:57:26.000000000","message":"I would state then explictly that we are ignoring specified image filesystem format in favor of ext4","commit_id":"503195d14d2dbf8535cfd672c5a323c9d8466f19"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"76834a658f8e2b26409cd6a1173d3c2f32017603","unresolved":false,"context_lines":[{"line_number":2898,"context_line":"            if (CONF.libvirt.virt_type \u003d\u003d \"parallels\" and"},{"line_number":2899,"context_line":"                    vm_mode \u003d\u003d fields.VMMode.EXE):"},{"line_number":2900,"context_line":""},{"line_number":2901,"context_line":"                if (specified_fs is not None and"},{"line_number":2902,"context_line":"                        specified_fs !\u003d disk_api.FS_FORMAT_EXT4):"},{"line_number":2903,"context_line":"                    LOG.warning(_LW(\"It\u0027s recommended to use ext4 for Ploop disks.\"))"},{"line_number":2904,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1a1ced50_544e4c3b","line":2901,"range":{"start_line":2901,"start_character":33,"end_line":2901,"end_character":45},"updated":"2017-03-23 10:05:08.000000000","message":"nit: this is unnecessary","commit_id":"69954c682edafaeb1213f7ac68b4a3948ea09a6b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"76834a658f8e2b26409cd6a1173d3c2f32017603","unresolved":false,"context_lines":[{"line_number":2900,"context_line":""},{"line_number":2901,"context_line":"                if (specified_fs is not None and"},{"line_number":2902,"context_line":"                        specified_fs !\u003d disk_api.FS_FORMAT_EXT4):"},{"line_number":2903,"context_line":"                    LOG.warning(_LW(\"It\u0027s recommended to use ext4 for Ploop disks.\"))"},{"line_number":2904,"context_line":""},{"line_number":2905,"context_line":"                libvirt_utils.create_ploop_image(\u0027expanded\u0027, target,"},{"line_number":2906,"context_line":"                                                 \u0027%dG\u0027 % ephemeral_size)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a1ced50_b466a0b8","line":2903,"range":{"start_line":2903,"start_character":20,"end_line":2903,"end_character":85},"updated":"2017-03-23 10:05:08.000000000","message":"Do we want to be a bit more forceful with this? Something like:\n\n  Only ext4 is supported for Ploop disks\n\n...and perhaps even fail?","commit_id":"69954c682edafaeb1213f7ac68b4a3948ea09a6b"},{"author":{"_account_id":12408,"name":"Maxim Nestratov","email":"mnestratov@virtuozzo.com","username":"mnestratov"},"change_message_id":"0a6ba7a759185337a1faecb1ea3c69ea3856c9c7","unresolved":false,"context_lines":[{"line_number":2900,"context_line":""},{"line_number":2901,"context_line":"                if (specified_fs is not None and"},{"line_number":2902,"context_line":"                        specified_fs !\u003d disk_api.FS_FORMAT_EXT4):"},{"line_number":2903,"context_line":"                    LOG.warning(_LW(\"It\u0027s recommended to use ext4 for Ploop disks.\"))"},{"line_number":2904,"context_line":""},{"line_number":2905,"context_line":"                libvirt_utils.create_ploop_image(\u0027expanded\u0027, target,"},{"line_number":2906,"context_line":"                                                 \u0027%dG\u0027 % ephemeral_size)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a1ced50_37a7120c","line":2903,"range":{"start_line":2903,"start_character":20,"end_line":2903,"end_character":85},"in_reply_to":"1a1ced50_b466a0b8","updated":"2017-03-23 10:22:11.000000000","message":"I think we have to say explicitly that we have just ignored what was specified and used ext4 as best option. Saying that ploop doesn\u0027t support anything but ext4 isn\u0027t technically correct as it supports raw and ext3. The truth is that we don\u0027t want use anything but ext4.\nSo, from my POV either ignore and say it clearly in warning message or more strictly just fail if we detect something different from ext4.","commit_id":"69954c682edafaeb1213f7ac68b4a3948ea09a6b"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"84739b92df670bb6c88bd8b0fb8b83f5e7fa5f1e","unresolved":false,"context_lines":[{"line_number":2898,"context_line":"            if (CONF.libvirt.virt_type \u003d\u003d \"parallels\" and"},{"line_number":2899,"context_line":"                    vm_mode \u003d\u003d fields.VMMode.EXE):"},{"line_number":2900,"context_line":""},{"line_number":2901,"context_line":"                if (specified_fs and"},{"line_number":2902,"context_line":"                        specified_fs !\u003d disk_api.FS_FORMAT_EXT4):"},{"line_number":2903,"context_line":"                    LOG.warning(_LW(\u0027Filesystem %(fs)s is ignored. \u0027"},{"line_number":2904,"context_line":"                                    \u0027Using ext4 instead.\u0027),"},{"line_number":2905,"context_line":"                                {\u0027fs\u0027: specified_fs})"},{"line_number":2906,"context_line":""},{"line_number":2907,"context_line":"                libvirt_utils.create_ploop_image(\u0027expanded\u0027, target,"},{"line_number":2908,"context_line":"                                                 \u0027%dG\u0027 % ephemeral_size)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ffe62b97_0073c9b2","line":2905,"range":{"start_line":2901,"start_character":0,"end_line":2905,"end_character":53},"updated":"2017-03-28 10:06:01.000000000","message":"The warning\u0027s good. However, this if block was always a wart here. I would much prefer if we could confine the wartiness rather than distributing it around. Could you please move this block into create_ploop_image() ? That would obviously require retaining the specified_fs argument to that function.","commit_id":"d6e66e8023bf3399c8df1fb9e0f50ca00417966d"},{"author":{"_account_id":15847,"name":"Mikhail Feoktistov","email":"mfeoktistov@virtuozzo.com","username":"mfeoktistov"},"change_message_id":"b55f39d9348e052ec992b39afdac61d68efcc884","unresolved":false,"context_lines":[{"line_number":2898,"context_line":"            if (CONF.libvirt.virt_type \u003d\u003d \"parallels\" and"},{"line_number":2899,"context_line":"                    vm_mode \u003d\u003d fields.VMMode.EXE):"},{"line_number":2900,"context_line":""},{"line_number":2901,"context_line":"                if (specified_fs and"},{"line_number":2902,"context_line":"                        specified_fs !\u003d disk_api.FS_FORMAT_EXT4):"},{"line_number":2903,"context_line":"                    LOG.warning(_LW(\u0027Filesystem %(fs)s is ignored. \u0027"},{"line_number":2904,"context_line":"                                    \u0027Using ext4 instead.\u0027),"},{"line_number":2905,"context_line":"                                {\u0027fs\u0027: specified_fs})"},{"line_number":2906,"context_line":""},{"line_number":2907,"context_line":"                libvirt_utils.create_ploop_image(\u0027expanded\u0027, target,"},{"line_number":2908,"context_line":"                                                 \u0027%dG\u0027 % ephemeral_size)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7ffa3b31_a2baf66a","line":2905,"range":{"start_line":2901,"start_character":0,"end_line":2905,"end_character":53},"in_reply_to":"dfeb2761_648b001f","updated":"2017-04-19 16:13:51.000000000","message":"Done","commit_id":"d6e66e8023bf3399c8df1fb9e0f50ca00417966d"},{"author":{"_account_id":12408,"name":"Maxim Nestratov","email":"mnestratov@virtuozzo.com","username":"mnestratov"},"change_message_id":"7fb743ea229552973f8c889304771f9387d404ef","unresolved":false,"context_lines":[{"line_number":2898,"context_line":"            if (CONF.libvirt.virt_type \u003d\u003d \"parallels\" and"},{"line_number":2899,"context_line":"                    vm_mode \u003d\u003d fields.VMMode.EXE):"},{"line_number":2900,"context_line":""},{"line_number":2901,"context_line":"                if (specified_fs and"},{"line_number":2902,"context_line":"                        specified_fs !\u003d disk_api.FS_FORMAT_EXT4):"},{"line_number":2903,"context_line":"                    LOG.warning(_LW(\u0027Filesystem %(fs)s is ignored. \u0027"},{"line_number":2904,"context_line":"                                    \u0027Using ext4 instead.\u0027),"},{"line_number":2905,"context_line":"                                {\u0027fs\u0027: specified_fs})"},{"line_number":2906,"context_line":""},{"line_number":2907,"context_line":"                libvirt_utils.create_ploop_image(\u0027expanded\u0027, target,"},{"line_number":2908,"context_line":"                                                 \u0027%dG\u0027 % ephemeral_size)"}],"source_content_type":"text/x-python","patch_set":7,"id":"dfeb2761_648b001f","line":2905,"range":{"start_line":2901,"start_character":0,"end_line":2905,"end_character":53},"in_reply_to":"ffe62b97_0073c9b2","updated":"2017-04-03 17:51:46.000000000","message":"I agree","commit_id":"d6e66e8023bf3399c8df1fb9e0f50ca00417966d"}],"nova/virt/libvirt/utils.py":[{"author":{"_account_id":12408,"name":"Maxim Nestratov","email":"mnestratov@virtuozzo.com","username":"mnestratov"},"change_message_id":"28f62617bc49dc20b809950e06b3cd8b43a52659","unresolved":false,"context_lines":[{"line_number":99,"context_line":"    execute(*cmd)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"def create_ploop_image(disk_format, path, size, fs_type\u003dNone):"},{"line_number":103,"context_line":"    \"\"\"Create ploop image"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    :param disk_format: Disk image format (as known by ploop)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_3060ca35","line":102,"range":{"start_line":102,"start_character":56,"end_line":102,"end_character":60},"updated":"2017-03-17 12:58:29.000000000","message":"I don\u0027t think it makes sense.  We recommend the only option to use - ext4, and instead of pretending we support whatever caller passed or config parameter is I would simply ignore fs_format here at all and explain that ploop images will always have ext4 format or whatever we prefer in future and we don\u0027t need to configure it explicitly. You can safely omit -f option while calling ploop tool.","commit_id":"8af64f1e1c4b4328ad9d2c27a941c645a46d323a"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"d6ddca39fd07f57674fd005f9f64c385985efd66","unresolved":false,"context_lines":[{"line_number":110,"context_line":"                 with an optional suffix (\u0027K\u0027 for Kibibytes,"},{"line_number":111,"context_line":"                 M for Mebibytes, \u0027G\u0027 for Gibibytes, \u0027T\u0027 for Tebibytes)."},{"line_number":112,"context_line":"                 If no suffix is given, it will be interpreted as bytes."},{"line_number":113,"context_line":"    :param fs_type: Filesystem type. If not specified than get"},{"line_number":114,"context_line":"                    default_ephemeral_format from nova config file"},{"line_number":115,"context_line":"                    otherwise use EXT4."},{"line_number":116,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a1ff146_90994022","line":113,"range":{"start_line":113,"start_character":54,"end_line":113,"end_character":58},"updated":"2017-03-16 12:56:27.000000000","message":"nit: then","commit_id":"8af64f1e1c4b4328ad9d2c27a941c645a46d323a"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"244c209ae3ae80852a64e978f30b4fde5bcf8be3","unresolved":false,"context_lines":[{"line_number":32,"context_line":"from nova.i18n import _LW"},{"line_number":33,"context_line":"from nova.objects import fields as obj_fields"},{"line_number":34,"context_line":"from nova import utils"},{"line_number":35,"context_line":"from nova.virt.disk import api as disk"},{"line_number":36,"context_line":"from nova.virt import images"},{"line_number":37,"context_line":"from nova.virt.libvirt import config as vconfig"},{"line_number":38,"context_line":"from nova.virt.libvirt.volume import remotefs"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a1ced50_9c8710b4","line":35,"range":{"start_line":35,"start_character":0,"end_line":35,"end_character":38},"updated":"2017-03-23 08:36:57.000000000","message":"This line should be removed.","commit_id":"b4967a1352acf885305301920384f2fcece5ad56"},{"author":{"_account_id":15847,"name":"Mikhail Feoktistov","email":"mfeoktistov@virtuozzo.com","username":"mfeoktistov"},"change_message_id":"032dcd49b4f555eb6793de7963a5709ee1ef120d","unresolved":false,"context_lines":[{"line_number":32,"context_line":"from nova.i18n import _LW"},{"line_number":33,"context_line":"from nova.objects import fields as obj_fields"},{"line_number":34,"context_line":"from nova import utils"},{"line_number":35,"context_line":"from nova.virt.disk import api as disk"},{"line_number":36,"context_line":"from nova.virt import images"},{"line_number":37,"context_line":"from nova.virt.libvirt import config as vconfig"},{"line_number":38,"context_line":"from nova.virt.libvirt.volume import remotefs"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a1ced50_f2282d88","line":35,"range":{"start_line":35,"start_character":0,"end_line":35,"end_character":38},"in_reply_to":"1a1ced50_9c8710b4","updated":"2017-03-23 09:02:01.000000000","message":"done","commit_id":"b4967a1352acf885305301920384f2fcece5ad56"}]}
