)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"7bdd400fe7eae558ad81532e0b69db410b09a947","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Davanum Srinivas \u003cdavanum@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-03-12 07:27:49 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"partial fix for live-migration with config drive"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In current version of nova, live-migration with config drive on"},{"line_number":10,"context_line":"local disk is forbbiden due to the bug of libvirt of copying readonly"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"9a80dd14_2a45f616","line":7,"updated":"2015-03-12 11:36:49.000000000","message":"can you please prefix with libvirt","commit_id":"0c589753a34c4735dc9e8e708c099b147f8d1461"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"072d405a3470aa411208a8b68ffc5fb92eb78bd5","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Davanum Srinivas \u003cdavanum@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-03-12 07:27:49 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"partial fix for live-migration with config drive"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In current version of nova, live-migration with config drive on"},{"line_number":10,"context_line":"local disk is forbbiden due to the bug of libvirt of copying readonly"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"9a80dd14_2d7190e0","line":7,"in_reply_to":"9a80dd14_2a45f616","updated":"2015-03-12 12:12:56.000000000","message":"Done","commit_id":"0c589753a34c4735dc9e8e708c099b147f8d1461"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"7bdd400fe7eae558ad81532e0b69db410b09a947","unresolved":false,"context_lines":[{"line_number":7,"context_line":"partial fix for live-migration with config drive"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In current version of nova, live-migration with config drive on"},{"line_number":10,"context_line":"local disk is forbbiden due to the bug of libvirt of copying readonly"},{"line_number":11,"context_line":"disk. However, if we use vfat as the format of config drive,"},{"line_number":12,"context_line":"the function of live-migration works well."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"9a80dd14_ea3afe96","line":10,"updated":"2015-03-12 11:36:49.000000000","message":"forbbiden  \u003d\u003e forbidden","commit_id":"0c589753a34c4735dc9e8e708c099b147f8d1461"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"072d405a3470aa411208a8b68ffc5fb92eb78bd5","unresolved":false,"context_lines":[{"line_number":7,"context_line":"partial fix for live-migration with config drive"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In current version of nova, live-migration with config drive on"},{"line_number":10,"context_line":"local disk is forbbiden due to the bug of libvirt of copying readonly"},{"line_number":11,"context_line":"disk. However, if we use vfat as the format of config drive,"},{"line_number":12,"context_line":"the function of live-migration works well."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"9a80dd14_4d77a4d4","line":10,"in_reply_to":"9a80dd14_ea3afe96","updated":"2015-03-12 12:12:56.000000000","message":"Done","commit_id":"0c589753a34c4735dc9e8e708c099b147f8d1461"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"bc1bfc3b34e2a30b87ae39b09911ba000ae4aa48","unresolved":false,"context_lines":[{"line_number":7115,"context_line":"        def fake_true(*args, **kwargs):"},{"line_number":7116,"context_line":"            return True"},{"line_number":7117,"context_line":""},{"line_number":7118,"context_line":"        self.stubs.Set(configdrive, \u0027required_by\u0027, fake_true)"},{"line_number":7119,"context_line":""},{"line_number":7120,"context_line":"        instance \u003d objects.Instance(**self.test_instance)"},{"line_number":7121,"context_line":"        c \u003d context.get_admin_context()"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_2f20db9a","line":7118,"updated":"2015-03-11 13:20:58.000000000","message":"In case this is new case, and it\u0027s not hard to change \ncan you use mock?","commit_id":"734d87f4a0e472cc490a41201441def6fb7e22fe"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"ff3fdec7409b079581b59e46cb0f15d696a13eee","unresolved":false,"context_lines":[{"line_number":7115,"context_line":"        def fake_true(*args, **kwargs):"},{"line_number":7116,"context_line":"            return True"},{"line_number":7117,"context_line":""},{"line_number":7118,"context_line":"        self.stubs.Set(configdrive, \u0027required_by\u0027, fake_true)"},{"line_number":7119,"context_line":""},{"line_number":7120,"context_line":"        instance \u003d objects.Instance(**self.test_instance)"},{"line_number":7121,"context_line":"        c \u003d context.get_admin_context()"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_aa5d6617","line":7118,"in_reply_to":"9a80dd14_2f20db9a","updated":"2015-03-12 11:28:10.000000000","message":"Done","commit_id":"734d87f4a0e472cc490a41201441def6fb7e22fe"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"bc1bfc3b34e2a30b87ae39b09911ba000ae4aa48","unresolved":false,"context_lines":[{"line_number":7118,"context_line":"        self.stubs.Set(configdrive, \u0027required_by\u0027, fake_true)"},{"line_number":7119,"context_line":""},{"line_number":7120,"context_line":"        instance \u003d objects.Instance(**self.test_instance)"},{"line_number":7121,"context_line":"        c \u003d context.get_admin_context()"},{"line_number":7122,"context_line":""},{"line_number":7123,"context_line":"        res_data \u003d drvr.pre_live_migration("},{"line_number":7124,"context_line":"            c, instance, vol, [], None,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_6f71f376","line":7121,"updated":"2015-03-11 13:20:58.000000000","message":"there is a self.context \u003d context.get_admin_context()\ncan be reused","commit_id":"734d87f4a0e472cc490a41201441def6fb7e22fe"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"ff3fdec7409b079581b59e46cb0f15d696a13eee","unresolved":false,"context_lines":[{"line_number":7118,"context_line":"        self.stubs.Set(configdrive, \u0027required_by\u0027, fake_true)"},{"line_number":7119,"context_line":""},{"line_number":7120,"context_line":"        instance \u003d objects.Instance(**self.test_instance)"},{"line_number":7121,"context_line":"        c \u003d context.get_admin_context()"},{"line_number":7122,"context_line":""},{"line_number":7123,"context_line":"        res_data \u003d drvr.pre_live_migration("},{"line_number":7124,"context_line":"            c, instance, vol, [], None,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_ca9b7ac7","line":7121,"in_reply_to":"9a80dd14_6f71f376","updated":"2015-03-12 11:28:10.000000000","message":"Done","commit_id":"734d87f4a0e472cc490a41201441def6fb7e22fe"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"7bdd400fe7eae558ad81532e0b69db410b09a947","unresolved":false,"context_lines":[{"line_number":7101,"context_line":"                                 \u0027is_shared_block_storage\u0027: False})"},{"line_number":7102,"context_line":""},{"line_number":7103,"context_line":"    @mock.patch(\u0027nova.virt.driver.block_device_info_get_mapping\u0027)"},{"line_number":7104,"context_line":"    @mock.patch(\u0027nova.virt.configdrive.required_by\u0027)"},{"line_number":7105,"context_line":"    def test_pre_live_migration_block_with_config_drive_mocked_with_vfat("},{"line_number":7106,"context_line":"            self, mock_required_by, block_device_info_get_mapping):"},{"line_number":7107,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_2ae176fe","line":7104,"updated":"2015-03-12 11:36:49.000000000","message":"@mock.patch(\u0027nova.virt.configdrive.required_by\u0027,\n            return_value\u003dTrue)\n\nand then can drop line 7108 (and same for block device)\n\n\nCan we also have a test where the required_by is false?","commit_id":"0c589753a34c4735dc9e8e708c099b147f8d1461"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"072d405a3470aa411208a8b68ffc5fb92eb78bd5","unresolved":false,"context_lines":[{"line_number":7101,"context_line":"                                 \u0027is_shared_block_storage\u0027: False})"},{"line_number":7102,"context_line":""},{"line_number":7103,"context_line":"    @mock.patch(\u0027nova.virt.driver.block_device_info_get_mapping\u0027)"},{"line_number":7104,"context_line":"    @mock.patch(\u0027nova.virt.configdrive.required_by\u0027)"},{"line_number":7105,"context_line":"    def test_pre_live_migration_block_with_config_drive_mocked_with_vfat("},{"line_number":7106,"context_line":"            self, mock_required_by, block_device_info_get_mapping):"},{"line_number":7107,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_0d13ec66","line":7104,"in_reply_to":"9a80dd14_2ae176fe","updated":"2015-03-12 12:12:56.000000000","message":"Done","commit_id":"0c589753a34c4735dc9e8e708c099b147f8d1461"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"7bdd400fe7eae558ad81532e0b69db410b09a947","unresolved":false,"context_lines":[{"line_number":7107,"context_line":""},{"line_number":7108,"context_line":"        mock_required_by.return_value \u003d True"},{"line_number":7109,"context_line":"        block_device_info_get_mapping.return_value \u003d ()"},{"line_number":7110,"context_line":"        self.flags(config_drive_format\u003d\u0027vfat\u0027)"},{"line_number":7111,"context_line":"        # Creating testdata"},{"line_number":7112,"context_line":"        vol \u003d {\u0027block_device_mapping\u0027: ["},{"line_number":7113,"context_line":"            {\u0027connection_info\u0027: \u0027dummy\u0027, \u0027mount_device\u0027: \u0027/dev/sda\u0027},"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_eaa4beba","line":7110,"updated":"2015-03-12 11:36:49.000000000","message":"Can we please have a test where this is not vfat?","commit_id":"0c589753a34c4735dc9e8e708c099b147f8d1461"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7695927f6c994eb9a1dfec335edf70372f3ac05c","unresolved":false,"context_lines":[{"line_number":7119,"context_line":"            self.context, instance, vol, [], None,"},{"line_number":7120,"context_line":"            {\u0027is_shared_instance_path\u0027: False,"},{"line_number":7121,"context_line":"             \u0027is_shared_block_storage\u0027: False})"},{"line_number":7122,"context_line":"        block_device_info_get_mapping.assert_has_calls("},{"line_number":7123,"context_line":"            ["},{"line_number":7124,"context_line":"                mock.call({\u0027block_device_mapping\u0027: ["},{"line_number":7125,"context_line":"                    {\u0027connection_info\u0027: \u0027dummy\u0027, \u0027mount_device\u0027: \u0027/dev/sda\u0027},"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a80dd14_f28e9e31","line":7122,"updated":"2015-03-17 18:54:55.000000000","message":"I think you can be a lot more specific here and use assert_called_once_with instead of assert_has_calls, which means it could have been called more than once, and with different arguments.","commit_id":"6dacd4a851b3e047054c12b44f56301f53106a5c"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"79974d3ecfbee19b2df708f65afb76c75ff91b4e","unresolved":false,"context_lines":[{"line_number":7119,"context_line":"            self.context, instance, vol, [], None,"},{"line_number":7120,"context_line":"            {\u0027is_shared_instance_path\u0027: False,"},{"line_number":7121,"context_line":"             \u0027is_shared_block_storage\u0027: False})"},{"line_number":7122,"context_line":"        block_device_info_get_mapping.assert_has_calls("},{"line_number":7123,"context_line":"            ["},{"line_number":7124,"context_line":"                mock.call({\u0027block_device_mapping\u0027: ["},{"line_number":7125,"context_line":"                    {\u0027connection_info\u0027: \u0027dummy\u0027, \u0027mount_device\u0027: \u0027/dev/sda\u0027},"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a80dd14_d5a18496","line":7122,"in_reply_to":"9a80dd14_f28e9e31","updated":"2015-03-17 19:09:15.000000000","message":"Done","commit_id":"6dacd4a851b3e047054c12b44f56301f53106a5c"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"7bdd400fe7eae558ad81532e0b69db410b09a947","unresolved":false,"context_lines":[{"line_number":5727,"context_line":"                    \u0027is_shared_instance_path\u0027, True)"},{"line_number":5728,"context_line":"            is_block_migration \u003d migrate_data.get(\u0027block_migration\u0027, True)"},{"line_number":5729,"context_line":""},{"line_number":5730,"context_line":"        image_meta \u003d utils.get_image_from_system_metadata("},{"line_number":5731,"context_line":"            instance.system_metadata)"},{"line_number":5732,"context_line":""},{"line_number":5733,"context_line":"        if not (is_shared_instance_path and is_shared_block_storage):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_ea2f5e3c","line":5730,"updated":"2015-03-12 11:36:49.000000000","message":"not related to this patch - but we could certainly do this after the validity check below","commit_id":"0c589753a34c4735dc9e8e708c099b147f8d1461"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"072d405a3470aa411208a8b68ffc5fb92eb78bd5","unresolved":false,"context_lines":[{"line_number":5727,"context_line":"                    \u0027is_shared_instance_path\u0027, True)"},{"line_number":5728,"context_line":"            is_block_migration \u003d migrate_data.get(\u0027block_migration\u0027, True)"},{"line_number":5729,"context_line":""},{"line_number":5730,"context_line":"        image_meta \u003d utils.get_image_from_system_metadata("},{"line_number":5731,"context_line":"            instance.system_metadata)"},{"line_number":5732,"context_line":""},{"line_number":5733,"context_line":"        if not (is_shared_instance_path and is_shared_block_storage):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_a81d6e68","line":5730,"in_reply_to":"9a80dd14_ea2f5e3c","updated":"2015-03-12 12:12:56.000000000","message":"should be another patch. sure :)","commit_id":"0c589753a34c4735dc9e8e708c099b147f8d1461"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"7bdd400fe7eae558ad81532e0b69db410b09a947","unresolved":false,"context_lines":[{"line_number":5735,"context_line":"            # because of a bug in libvirt with read only devices. However"},{"line_number":5736,"context_line":"            # one can use vfat as config_drive_format which works fine."},{"line_number":5737,"context_line":"            # Please see bug/1246201 for details on the libvirt bug."},{"line_number":5738,"context_line":"            if CONF.config_drive_format !\u003d \u0027vfat\u0027:"},{"line_number":5739,"context_line":"                if configdrive.required_by(instance):"},{"line_number":5740,"context_line":"                    raise exception.NoLiveMigrationForConfigDriveInLibVirt()"},{"line_number":5741,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_aafe46ac","line":5738,"updated":"2015-03-12 11:36:49.000000000","message":"Can we write:\nif (CONF.config_drive_format !\u003d \u0027vfat\u0027and configdrive.required_by(instance)):","commit_id":"0c589753a34c4735dc9e8e708c099b147f8d1461"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"072d405a3470aa411208a8b68ffc5fb92eb78bd5","unresolved":false,"context_lines":[{"line_number":5735,"context_line":"            # because of a bug in libvirt with read only devices. However"},{"line_number":5736,"context_line":"            # one can use vfat as config_drive_format which works fine."},{"line_number":5737,"context_line":"            # Please see bug/1246201 for details on the libvirt bug."},{"line_number":5738,"context_line":"            if CONF.config_drive_format !\u003d \u0027vfat\u0027:"},{"line_number":5739,"context_line":"                if configdrive.required_by(instance):"},{"line_number":5740,"context_line":"                    raise exception.NoLiveMigrationForConfigDriveInLibVirt()"},{"line_number":5741,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_a8348ede","line":5738,"in_reply_to":"9a80dd14_aafe46ac","updated":"2015-03-12 12:12:56.000000000","message":"y, we could, but that\u0027s line too long and i wanted to highlight the vfat here","commit_id":"0c589753a34c4735dc9e8e708c099b147f8d1461"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"18ba512ea53804373050fccd4c49de7ac60e9a0d","unresolved":false,"context_lines":[{"line_number":5736,"context_line":"            # because of a bug in libvirt with read only devices. However"},{"line_number":5737,"context_line":"            # one can use vfat as config_drive_format which works fine."},{"line_number":5738,"context_line":"            # Please see bug/1246201 for details on the libvirt bug."},{"line_number":5739,"context_line":"            if CONF.config_drive_format !\u003d \u0027vfat\u0027:"},{"line_number":5740,"context_line":"                if configdrive.required_by(instance):"},{"line_number":5741,"context_line":"                    raise exception.NoLiveMigrationForConfigDriveInLibVirt()"},{"line_number":5742,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_d4cfa1b1","line":5739,"updated":"2015-03-18 13:32:32.000000000","message":"I think we shouldn\u0027t check the config_drive_format directly.\n\nCONF.config_drive_format is the destination host\u0027s configuration, not the source. We should check the device type is disk or cdrom.","commit_id":"4e665112f275f17a90c6f96daa805af652c66fa0"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"a40a45d9c0b56772be95a05c0f545bdbc71e85ca","unresolved":false,"context_lines":[{"line_number":5736,"context_line":"            # because of a bug in libvirt with read only devices. However"},{"line_number":5737,"context_line":"            # one can use vfat as config_drive_format which works fine."},{"line_number":5738,"context_line":"            # Please see bug/1246201 for details on the libvirt bug."},{"line_number":5739,"context_line":"            if CONF.config_drive_format !\u003d \u0027vfat\u0027:"},{"line_number":5740,"context_line":"                if configdrive.required_by(instance):"},{"line_number":5741,"context_line":"                    raise exception.NoLiveMigrationForConfigDriveInLibVirt()"},{"line_number":5742,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_fafe5104","line":5739,"updated":"2015-03-18 12:32:39.000000000","message":"nit: suggest single if statement with \u0027and\u0027 instead of two separate conditionals","commit_id":"4e665112f275f17a90c6f96daa805af652c66fa0"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"1066fc45f243cf3160ca9a09bea13362b3c61a3b","unresolved":false,"context_lines":[{"line_number":5736,"context_line":"            # because of a bug in libvirt with read only devices. However"},{"line_number":5737,"context_line":"            # one can use vfat as config_drive_format which works fine."},{"line_number":5738,"context_line":"            # Please see bug/1246201 for details on the libvirt bug."},{"line_number":5739,"context_line":"            if CONF.config_drive_format !\u003d \u0027vfat\u0027:"},{"line_number":5740,"context_line":"                if configdrive.required_by(instance):"},{"line_number":5741,"context_line":"                    raise exception.NoLiveMigrationForConfigDriveInLibVirt()"},{"line_number":5742,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_dda33daf","line":5739,"in_reply_to":"9a80dd14_5e8828c6","updated":"2015-03-18 16:02:29.000000000","message":"Davanum, Maybe we can check device_type at \u0027check_can_live_migrate_source\u0027 in libvirt driver. And the config_drive device_type didn\u0027t storage in nova db. So we probably need ask libvirt to get the instance\u0027s xml to get the config_drive\u0027s device_type. If it is disk, then we can allow the migration. \n\nAll the options are per host. Because each host load the configuration from /etc/nova/nova.conf. \n\nAnd one more problem is if CONF.config_drive_format is changed, then restart nova-compute, it won\u0027t effect the already booted instance.\n\nThanks\nAlex","commit_id":"4e665112f275f17a90c6f96daa805af652c66fa0"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"76a74e0ca735ba321a29fcb987660dae280a9c78","unresolved":false,"context_lines":[{"line_number":5736,"context_line":"            # because of a bug in libvirt with read only devices. However"},{"line_number":5737,"context_line":"            # one can use vfat as config_drive_format which works fine."},{"line_number":5738,"context_line":"            # Please see bug/1246201 for details on the libvirt bug."},{"line_number":5739,"context_line":"            if CONF.config_drive_format !\u003d \u0027vfat\u0027:"},{"line_number":5740,"context_line":"                if configdrive.required_by(instance):"},{"line_number":5741,"context_line":"                    raise exception.NoLiveMigrationForConfigDriveInLibVirt()"},{"line_number":5742,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_5e8828c6","line":5739,"in_reply_to":"9a80dd14_d4cfa1b1","updated":"2015-03-18 15:35:36.000000000","message":"Alex where in nova should we make this check and how? any suggestions? if this was the case, why in the world did was this exception added here in the first place? :)\n\nEither way, what we are saying here is if the deployer made the decision to allow config drives with vfat then that scenario supports live migration from then on. do we allow config drive format per host? can you please point me to code or doc?","commit_id":"4e665112f275f17a90c6f96daa805af652c66fa0"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"3379a4db970ccec5b09f76ccb340c7dcf8912e38","unresolved":false,"context_lines":[{"line_number":5736,"context_line":"            # because of a bug in libvirt with read only devices. However"},{"line_number":5737,"context_line":"            # one can use vfat as config_drive_format which works fine."},{"line_number":5738,"context_line":"            # Please see bug/1246201 for details on the libvirt bug."},{"line_number":5739,"context_line":"            if CONF.config_drive_format !\u003d \u0027vfat\u0027:"},{"line_number":5740,"context_line":"                if configdrive.required_by(instance):"},{"line_number":5741,"context_line":"                    raise exception.NoLiveMigrationForConfigDriveInLibVirt()"},{"line_number":5742,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_60aaaa1b","line":5739,"in_reply_to":"9a80dd14_dda33daf","updated":"2015-03-18 16:22:44.000000000","message":"Alex, All that stuff is complicated to squeeze into the time we have now. Right now we need a way for new deployers who use config drive with vfat a way forward. The existing code that unconditionally raises exception is in the way. If you agree with that, please remove the -1. yes, i can work on this some more, but not for Kilo. the current code is clearly very wrong!!!","commit_id":"4e665112f275f17a90c6f96daa805af652c66fa0"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"bf3a47eb131d3a60548e7efcddbd8affe018cafb","unresolved":false,"context_lines":[{"line_number":5736,"context_line":"            # because of a bug in libvirt with read only devices. However"},{"line_number":5737,"context_line":"            # one can use vfat as config_drive_format which works fine."},{"line_number":5738,"context_line":"            # Please see bug/1246201 for details on the libvirt bug."},{"line_number":5739,"context_line":"            if CONF.config_drive_format !\u003d \u0027vfat\u0027:"},{"line_number":5740,"context_line":"                if configdrive.required_by(instance):"},{"line_number":5741,"context_line":"                    raise exception.NoLiveMigrationForConfigDriveInLibVirt()"},{"line_number":5742,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_60c46a41","line":5739,"in_reply_to":"9a80dd14_dda33daf","updated":"2015-03-18 16:23:22.000000000","message":"yes, I think Alex is right ,every service uses its own nova.conf \nthought usually they are almost similar\n\nthere is a function \ncheck_can_live_migrate_destination\n\ncan we check the type there?","commit_id":"4e665112f275f17a90c6f96daa805af652c66fa0"}]}
