)]}'
{"nova/conf/configdrive.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"374789b9319e4be1802516a2d1c41b35a2b6d14f","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"When this option is set to true configuration drive functionality will be"},{"line_number":58,"context_line":"forced enabled by default, otherwise user can still enable configuration"},{"line_number":59,"context_line":"drives via the REST API or image metadata properties. Note that, already"},{"line_number":60,"context_line":"launched VMs are not affected by this option."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Possible values:"}],"source_content_type":"text/x-python","patch_set":6,"id":"bfb3d3c7_2efaec41","line":59,"range":{"start_line":59,"start_character":63,"end_line":59,"end_character":64},"updated":"2019-05-20 15:08:38.000000000","message":"strike","commit_id":"aa169ae3ea662ba1556df8b23e7300dd446665ce"},{"author":{"_account_id":28889,"name":"Guo Jingyu","email":"guojy8993@163.com","username":"pandatt"},"change_message_id":"8246cc1e95a073d12e3fdea0f51b489d606dc697","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"When this option is set to true configuration drive functionality will be"},{"line_number":58,"context_line":"forced enabled by default, otherwise user can still enable configuration"},{"line_number":59,"context_line":"drives via the REST API or image metadata properties. Note that, already"},{"line_number":60,"context_line":"launched VMs are not affected by this option."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Possible values:"}],"source_content_type":"text/x-python","patch_set":6,"id":"bfb3d3c7_86e71be5","line":59,"range":{"start_line":59,"start_character":63,"end_line":59,"end_character":64},"in_reply_to":"bfb3d3c7_2efaec41","updated":"2019-05-23 00:35:39.000000000","message":"strike? I don\u0027t get your point","commit_id":"aa169ae3ea662ba1556df8b23e7300dd446665ce"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"1c0a4dc43558249d1456daaa4664dbfd58074066","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"When this option is set to true configuration drive functionality will be"},{"line_number":58,"context_line":"forced enabled by default, otherwise user can still enable configuration"},{"line_number":59,"context_line":"drives via the REST API or image metadata properties. Note that, already"},{"line_number":60,"context_line":"launched VMs are not affected by this option."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Possible values:"}],"source_content_type":"text/x-python","patch_set":6,"id":"bfb3d3c7_66d68e52","line":59,"range":{"start_line":59,"start_character":63,"end_line":59,"end_character":64},"in_reply_to":"bfb3d3c7_86e71be5","updated":"2019-05-23 01:41:45.000000000","message":"Sorry, I meant the comma should be deleted","commit_id":"aa169ae3ea662ba1556df8b23e7300dd446665ce"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"6fa92b500da4450d47be7aeb38dd0a2e3dd878c1","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"When this option is set to true configuration drive functionality will be"},{"line_number":58,"context_line":"forced enabled by default, otherwise user can still enable configuration"},{"line_number":59,"context_line":"drives via the REST API or image metadata properties. Note that, already"},{"line_number":60,"context_line":"launched VMs are not affected by this option."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Possible values:"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bfb3d3c7_e05b7184","line":60,"range":{"start_line":59,"start_character":54,"end_line":60,"end_character":45},"updated":"2019-05-21 08:23:14.000000000","message":"Maybe more clear to say, not affected even reboot, rebuild, resize the instance.\n\nactually, rebuild and resize should be workable. since they will recreate the config drive.\n\nBut I\u0027m not sure what is the actually usecase the user wants to change this config in the production env. \n\nSo it may be not worth such complex fix.","commit_id":"aa169ae3ea662ba1556df8b23e7300dd446665ce"},{"author":{"_account_id":28889,"name":"Guo Jingyu","email":"guojy8993@163.com","username":"pandatt"},"change_message_id":"8246cc1e95a073d12e3fdea0f51b489d606dc697","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"When this option is set to true configuration drive functionality will be"},{"line_number":58,"context_line":"forced enabled by default, otherwise user can still enable configuration"},{"line_number":59,"context_line":"drives via the REST API or image metadata properties. Note that, already"},{"line_number":60,"context_line":"launched VMs are not affected by this option."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Possible values:"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bfb3d3c7_9303ed42","line":60,"range":{"start_line":59,"start_character":54,"end_line":60,"end_character":45},"in_reply_to":"bfb3d3c7_e05b7184","updated":"2019-05-23 00:35:39.000000000","message":"Such as the issue: https://bugs.launchpad.net/nova/+bug/1827492","commit_id":"aa169ae3ea662ba1556df8b23e7300dd446665ce"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fba7b16036a965cbda3d12c287958ff340a74b01","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"When this option is set to true configuration drive functionality will be"},{"line_number":58,"context_line":"forced enabled by default, otherwise user can still enable configuration"},{"line_number":59,"context_line":"drives via the REST API or image metadata properties. Note that, already"},{"line_number":60,"context_line":"launched VMs are not affected by this option."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Possible values:"}],"source_content_type":"text/x-python","patch_set":7,"id":"bfb3d3c7_d2d618c4","line":59,"range":{"start_line":59,"start_character":63,"end_line":59,"end_character":64},"updated":"2019-05-22 21:01:35.000000000","message":"You can remove this comma.","commit_id":"39f05cbc43d175bff1b7c9b28da4adc1b37f6e72"}],"nova/virt/configdrive.py":[{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"0381ee3275264c5d5594248b35c7fddc11cd7cc3","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        fields.ConfigDrivePolicy.OPTIONAL)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    return (instance.config_drive or"},{"line_number":164,"context_line":"            (CONF.force_config_drive and not instance.launched_at) or"},{"line_number":165,"context_line":"            image_prop \u003d\u003d fields.ConfigDrivePolicy.MANDATORY"},{"line_number":166,"context_line":"            )"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bfb3d3c7_e8114855","line":164,"range":{"start_line":164,"start_character":12,"end_line":164,"end_character":66},"updated":"2019-05-17 09:10:43.000000000","message":"Yup, +1, if reboot the existing instance, it\u0027s status will be set error, because when it regenerates the xml file, the server adds the ``CONF.force_config_drive`` configuration, but the instance itself does not carry the config_drive attribute, so the startup fails.","commit_id":"33a5550a37e1236bfdac5fe13108f5aa29852926"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0f9ea6439de3fabf233586ba1c40c67f86072d0b","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        \"img_config_drive\","},{"line_number":161,"context_line":"        fields.ConfigDrivePolicy.OPTIONAL)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    return (instance.config_drive or"},{"line_number":164,"context_line":"            (CONF.force_config_drive and not instance.launched_at) or"},{"line_number":165,"context_line":"            image_prop \u003d\u003d fields.ConfigDrivePolicy.MANDATORY"},{"line_number":166,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_e955c31e","line":163,"updated":"2019-05-17 19:48:14.000000000","message":"OK both instance.config_drive and instance.launched_at are set in _update_instance_after_spawn in the compute manager.","commit_id":"7b5067212e0c2e86a24cd6a0ba91e8057cd24a40"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0f9ea6439de3fabf233586ba1c40c67f86072d0b","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        fields.ConfigDrivePolicy.OPTIONAL)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    return (instance.config_drive or"},{"line_number":164,"context_line":"            (CONF.force_config_drive and not instance.launched_at) or"},{"line_number":165,"context_line":"            image_prop \u003d\u003d fields.ConfigDrivePolicy.MANDATORY"},{"line_number":166,"context_line":"            )"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_095ff741","line":164,"updated":"2019-05-17 19:48:14.000000000","message":"It would be nice to have a comment associated with this in the code.","commit_id":"7b5067212e0c2e86a24cd6a0ba91e8057cd24a40"},{"author":{"_account_id":28889,"name":"Guo Jingyu","email":"guojy8993@163.com","username":"pandatt"},"change_message_id":"f0d4f1cf354adc12940761a22174da8ccbcd566a","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        fields.ConfigDrivePolicy.OPTIONAL)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    return (instance.config_drive or"},{"line_number":164,"context_line":"            (CONF.force_config_drive and not instance.launched_at) or"},{"line_number":165,"context_line":"            image_prop \u003d\u003d fields.ConfigDrivePolicy.MANDATORY"},{"line_number":166,"context_line":"            )"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_e4a5e5b6","line":164,"in_reply_to":"bfb3d3c7_095ff741","updated":"2019-05-18 04:59:58.000000000","message":"Done","commit_id":"7b5067212e0c2e86a24cd6a0ba91e8057cd24a40"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0f9ea6439de3fabf233586ba1c40c67f86072d0b","unresolved":false,"context_lines":[{"line_number":166,"context_line":"            )"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"def update_instance(instance):"},{"line_number":170,"context_line":"    \"\"\"Update the instance config_drive setting if necessary"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    The image or configuration file settings may override the default instance"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_090db73d","line":169,"updated":"2019-05-17 19:48:14.000000000","message":"This is what _update_instance_after_spawn calls.\n\nSo if I create a server without specifying a config drive and land on a host with force_config_drive, then my instance.config_drive value will be True through subsequent reboots on the same host.\n\nInterestingly if I did this:\n\n1. create a server with no config drive\n2. build on host A which forces a config drive\n3. shelve offload the server\n4. unshelve on host B which does not force a config drive\n\nMy server would still be spawned with a config drive on host B even though I never requested one when I created the server nor does host B force one. The same is probably true for evacuate (rebuild on another host).\n\nAnyway, not really related to this, just something I\u0027ve noticed.","commit_id":"7b5067212e0c2e86a24cd6a0ba91e8057cd24a40"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"374789b9319e4be1802516a2d1c41b35a2b6d14f","unresolved":false,"context_lines":[{"line_number":163,"context_line":"    # NOTE(pandatt): Option CONF.force_config_drive only applies to newly"},{"line_number":164,"context_line":"    # being-built VMs. And already launched VMs shouldn\u0027t be forced a config"},{"line_number":165,"context_line":"    # drive, because they may have been cloud-inited via metadata service, and"},{"line_number":166,"context_line":"    # do not need and have any config drive device. The `launched_at` property"},{"line_number":167,"context_line":"    # is an apparent flag to tell newly be-built VMs from launched ones."},{"line_number":168,"context_line":"    return (instance.config_drive or"},{"line_number":169,"context_line":"            (CONF.force_config_drive and not instance.launched_at) or"}],"source_content_type":"text/x-python","patch_set":6,"id":"bfb3d3c7_6eaea42f","line":166,"range":{"start_line":166,"start_character":18,"end_line":166,"end_character":21},"updated":"2019-05-20 15:08:38.000000000","message":"to","commit_id":"aa169ae3ea662ba1556df8b23e7300dd446665ce"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fba7b16036a965cbda3d12c287958ff340a74b01","unresolved":false,"context_lines":[{"line_number":164,"context_line":"    # being-built VMs. And already launched VMs shouldn\u0027t be forced a config"},{"line_number":165,"context_line":"    # drive, because they may have been cloud-inited via metadata service, and"},{"line_number":166,"context_line":"    # do not need and have any config drive device. The `launched_at` property"},{"line_number":167,"context_line":"    # is an apparent flag to tell newly be-built VMs from launched ones."},{"line_number":168,"context_line":"    return (instance.config_drive or"},{"line_number":169,"context_line":"            (CONF.force_config_drive and not instance.launched_at) or"},{"line_number":170,"context_line":"            image_prop \u003d\u003d fields.ConfigDrivePolicy.MANDATORY"}],"source_content_type":"text/x-python","patch_set":7,"id":"bfb3d3c7_b204c44b","line":167,"range":{"start_line":167,"start_character":34,"end_line":167,"end_character":52},"updated":"2019-05-22 21:01:35.000000000","message":"nit: \"VMs being built\"","commit_id":"39f05cbc43d175bff1b7c9b28da4adc1b37f6e72"}],"releasenotes/notes/add-skip-existing-vms-when-apply-force-config-drive-a609ce1c3de67b3a.yaml":[{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"0381ee3275264c5d5594248b35c7fddc11cd7cc3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"fixes:"},{"line_number":2,"context_line":"  - |"},{"line_number":3,"context_line":"    Fix bug/1827492. Add extra constraint for ``CONF.force_config_drive`` in"},{"line_number":4,"context_line":"    method ``required_by`` in module ``nova.virt.configdrive`` to narrow the"},{"line_number":5,"context_line":"    VMs scope: the existing VMs should be let go from being applied with ``"},{"line_number":6,"context_line":"    CONF.force_config_drive``, for they may have been cloud-inited via meta-"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bfb3d3c7_25d0e9c9","line":3,"range":{"start_line":3,"start_character":8,"end_line":3,"end_character":19},"updated":"2019-05-17 09:10:43.000000000","message":"This can be add a super link, such as \u0027bug-1827492\u0027_.\n.. bug-1927492: https://bugs.launchpad.net/nova/+bug/1827492","commit_id":"33a5550a37e1236bfdac5fe13108f5aa29852926"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"0381ee3275264c5d5594248b35c7fddc11cd7cc3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    method ``required_by`` in module ``nova.virt.configdrive`` to narrow the"},{"line_number":5,"context_line":"    VMs scope: the existing VMs should be let go from being applied with ``"},{"line_number":6,"context_line":"    CONF.force_config_drive``, for they may have been cloud-inited via meta-"},{"line_number":7,"context_line":"    data service. So they may not need and have any config drive device ever."},{"line_number":8,"context_line":"    In contrast, the newly being-built ones should be applied with the option,"},{"line_number":9,"context_line":"    if they\u0027re booted without \u0027--config-drive\u0027 option. An apparent difference"},{"line_number":10,"context_line":"    to distinguish them: existing VMs have \u0027launched_at\u0027 attribute, and the newly"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bfb3d3c7_482654ba","line":7,"range":{"start_line":7,"start_character":18,"end_line":7,"end_character":76},"updated":"2019-05-17 09:10:43.000000000","message":"Otherwise it will fail to start during reboot.","commit_id":"33a5550a37e1236bfdac5fe13108f5aa29852926"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0f9ea6439de3fabf233586ba1c40c67f86072d0b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"fixes:"},{"line_number":2,"context_line":"  - |"},{"line_number":3,"context_line":"    Add extra constraint for ``CONF.force_config_drive`` in method ``required_by``"},{"line_number":4,"context_line":"    in module ``nova.virt.configdrive`` to narrow the VMs scope: the existing VMs"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"bfb3d3c7_14406a35","line":1,"updated":"2019-05-17 19:48:14.000000000","message":"I don\u0027t think we really need a release note for this change. If anything, you could mention in the config option help for force_config_drive that it does not apply to existing (already launched) instances.","commit_id":"7b5067212e0c2e86a24cd6a0ba91e8057cd24a40"},{"author":{"_account_id":28889,"name":"Guo Jingyu","email":"guojy8993@163.com","username":"pandatt"},"change_message_id":"f0d4f1cf354adc12940761a22174da8ccbcd566a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"fixes:"},{"line_number":2,"context_line":"  - |"},{"line_number":3,"context_line":"    Add extra constraint for ``CONF.force_config_drive`` in method ``required_by``"},{"line_number":4,"context_line":"    in module ``nova.virt.configdrive`` to narrow the VMs scope: the existing VMs"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"bfb3d3c7_c4a0e1a8","line":1,"in_reply_to":"bfb3d3c7_14406a35","updated":"2019-05-18 04:59:58.000000000","message":"Done","commit_id":"7b5067212e0c2e86a24cd6a0ba91e8057cd24a40"}]}
