)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"e7df393157ccf404c81c771e17b8dfd74786a42b","unresolved":false,"context_lines":[{"line_number":11,"context_line":"to decide how to change instance.configdrive in db."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I924a381ebc7bb40bc98852fe0f19ec0f8d836883"},{"line_number":14,"context_line":"Closes-Bug: #1241806"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3fa0c359_fba68bc1","line":14,"updated":"2018-02-20 20:25:01.000000000","message":"If I understand correctly, this will also close bug 1303714 so we should add:\n\nCloses-Bug: #1303714","commit_id":"f5d7097ff46356510a9c03f224bad11803b1fb08"}],"nova/compute/manager.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"e7df393157ccf404c81c771e17b8dfd74786a42b","unresolved":false,"context_lines":[{"line_number":2124,"context_line":"                      instance\u003dinstance)"},{"line_number":2125,"context_line":"            instance.vm_state \u003d vm_states.BUILDING"},{"line_number":2126,"context_line":"            instance.task_state \u003d task_states.BLOCK_DEVICE_MAPPING"},{"line_number":2127,"context_line":"            configdrive.update_instance(instance)"},{"line_number":2128,"context_line":"            instance.save()"},{"line_number":2129,"context_line":""},{"line_number":2130,"context_line":"            block_device_info \u003d self._prep_block_device(context, instance,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_bb9a435f","line":2127,"updated":"2018-02-20 20:25:01.000000000","message":"Note to self: this moves the update of the instance.config_drive field to one place, boot time, and will save the value to the database. That means whether you get a config drive will be determined once at boot time and from then on, (reboot, rebuild, unshelve, migration) you will get what you had before, i.e. you cannot generate a config drive later on in an instance\u0027s life if it did not begin with one.\n\nIf I understand correctly, this is a change in behavior in that previous to this change, users could use rebuild or shelve/unshelve, for example, to change an already existing instance from \u0027no config drive\u0027 -\u003e \u0027config drive\u0027 by updating nova.conf and then doing the rebuild or shelve/unshelve.\n\nIs that right or am I missing something? If it\u0027s a change in behavior, I\u0027m thinking we should have a release note to signal the change in behavior to operators.","commit_id":"f5d7097ff46356510a9c03f224bad11803b1fb08"},{"author":{"_account_id":23417,"name":"yuanyue","email":"yyuanyuee@163.com","username":"yuanyue"},"change_message_id":"8a19b71612ac409e6cb82b8cb5ce4e327d3789f7","unresolved":false,"context_lines":[{"line_number":2124,"context_line":"                      instance\u003dinstance)"},{"line_number":2125,"context_line":"            instance.vm_state \u003d vm_states.BUILDING"},{"line_number":2126,"context_line":"            instance.task_state \u003d task_states.BLOCK_DEVICE_MAPPING"},{"line_number":2127,"context_line":"            configdrive.update_instance(instance)"},{"line_number":2128,"context_line":"            instance.save()"},{"line_number":2129,"context_line":""},{"line_number":2130,"context_line":"            block_device_info \u003d self._prep_block_device(context, instance,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_f47871c1","line":2127,"in_reply_to":"3fa0c359_bb9a435f","updated":"2018-02-26 10:33:41.000000000","message":"Yes, it is a change in behavior. Moreover, I\u0027m thinking config drive should also be generated after rebuild or shelve/unshelve because relevant image is recreated and function _update_instance_after_spawn is called. The statement  configdrive.update_instance(instance) is contained in function _update_instance_after_spawn in original code. Changes have been made in the newly uploaded patch set.","commit_id":"f5d7097ff46356510a9c03f224bad11803b1fb08"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"ab7f9324eba25a1b4ebc20892112f723e0cba6b0","unresolved":false,"context_lines":[{"line_number":1601,"context_line":"        instance.vm_state \u003d vm_states.ACTIVE"},{"line_number":1602,"context_line":"        instance.task_state \u003d None"},{"line_number":1603,"context_line":"        instance.launched_at \u003d timeutils.utcnow()"},{"line_number":1604,"context_line":"        configdrive.update_instance(instance)"},{"line_number":1605,"context_line":""},{"line_number":1606,"context_line":"    def _update_scheduler_instance_info(self, context, instance):"},{"line_number":1607,"context_line":"        \"\"\"Sends an InstanceList with created or updated Instance objects to"}],"source_content_type":"text/x-python","patch_set":7,"id":"bfb3d3c7_2c5eed11","side":"PARENT","line":1604,"updated":"2019-05-28 16:07:38.000000000","message":"Currently called by:\n\n_build_and_run_instance\n_do_rebuild_instance\n_unshelve_instance","commit_id":"ef4000a0d326deb004843ee51d18030224c5630f"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"ab7f9324eba25a1b4ebc20892112f723e0cba6b0","unresolved":false,"context_lines":[{"line_number":2188,"context_line":"                      instance\u003dinstance)"},{"line_number":2189,"context_line":"            instance.vm_state \u003d vm_states.BUILDING"},{"line_number":2190,"context_line":"            instance.task_state \u003d task_states.BLOCK_DEVICE_MAPPING"},{"line_number":2191,"context_line":"            configdrive.update_instance(instance)"},{"line_number":2192,"context_line":"            instance.save()"},{"line_number":2193,"context_line":""},{"line_number":2194,"context_line":"            block_device_info \u003d self._prep_block_device(context, instance,"}],"source_content_type":"text/x-python","patch_set":7,"id":"bfb3d3c7_6cadc5e7","line":2191,"updated":"2019-05-28 16:07:38.000000000","message":"context: _build_resources\n\nReview note: the purpose of these 3 moves is that configdrive.required_by(instance) now only checks the instance object, so we need to set it *before* spawn(), whereas before we could set it afterwards.","commit_id":"795f007db5cd1c4e0e1fd57433a9544d7e6ed61f"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"ab7f9324eba25a1b4ebc20892112f723e0cba6b0","unresolved":false,"context_lines":[{"line_number":3042,"context_line":""},{"line_number":3043,"context_line":"        instance.power_state \u003d self._get_power_state(context, instance)"},{"line_number":3044,"context_line":"        instance.task_state \u003d task_states.REBUILDING"},{"line_number":3045,"context_line":"        configdrive.update_instance(instance)"},{"line_number":3046,"context_line":"        instance.save(expected_task_state\u003d[task_states.REBUILDING])"},{"line_number":3047,"context_line":""},{"line_number":3048,"context_line":"        if recreate:"}],"source_content_type":"text/x-python","patch_set":7,"id":"bfb3d3c7_ac809d47","line":3045,"updated":"2019-05-28 16:07:38.000000000","message":"context: _do_rebuild_instance","commit_id":"795f007db5cd1c4e0e1fd57433a9544d7e6ed61f"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"ab7f9324eba25a1b4ebc20892112f723e0cba6b0","unresolved":false,"context_lines":[{"line_number":4891,"context_line":"                phase\u003dfields.NotificationPhase.START, bdms\u003dbdms)"},{"line_number":4892,"context_line":""},{"line_number":4893,"context_line":"        instance.task_state \u003d task_states.SPAWNING"},{"line_number":4894,"context_line":"        configdrive.update_instance(instance)"},{"line_number":4895,"context_line":"        instance.save()"},{"line_number":4896,"context_line":""},{"line_number":4897,"context_line":"        block_device_info \u003d self._prep_block_device(context, instance, bdms)"}],"source_content_type":"text/x-python","patch_set":7,"id":"bfb3d3c7_8cf039ff","line":4894,"updated":"2019-05-28 16:07:38.000000000","message":"context: _unshelve_instance","commit_id":"795f007db5cd1c4e0e1fd57433a9544d7e6ed61f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"bc19afeaaa11dbd6e3418cd52952c44179481d34","unresolved":false,"context_lines":[{"line_number":1718,"context_line":"        # first before setting instance.launched_at or the config drive will"},{"line_number":1719,"context_line":"        # be lost on a hard reboot of the instance when"},{"line_number":1720,"context_line":"        # force_config_drive\u003dtrue. see bug #1835822."},{"line_number":1721,"context_line":"        configdrive.update_instance(instance)"},{"line_number":1722,"context_line":"        instance.launched_at \u003d timeutils.utcnow()"},{"line_number":1723,"context_line":""},{"line_number":1724,"context_line":"    def _update_scheduler_instance_info(self, context, instance):"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_1f37a64f","side":"PARENT","line":1721,"updated":"2019-07-31 15:29:58.000000000","message":"Why remove this from here? Then we\u0027re playing whack-a-mole in the build, rebuild/evacuate and unshelve flows which are all calling driver.spawn and all calling this method?","commit_id":"b8cb8ff8ec59a1477b16be94c5e366c9fcaa503e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"aff8d39c509fc20c6f4189d31e70d6038a4be0ad","unresolved":false,"context_lines":[{"line_number":1718,"context_line":"        # first before setting instance.launched_at or the config drive will"},{"line_number":1719,"context_line":"        # be lost on a hard reboot of the instance when"},{"line_number":1720,"context_line":"        # force_config_drive\u003dtrue. see bug #1835822."},{"line_number":1721,"context_line":"        configdrive.update_instance(instance)"},{"line_number":1722,"context_line":"        instance.launched_at \u003d timeutils.utcnow()"},{"line_number":1723,"context_line":""},{"line_number":1724,"context_line":"    def _update_scheduler_instance_info(self, context, instance):"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_d103530b","side":"PARENT","line":1721,"in_reply_to":"7faddb67_1f37a64f","updated":"2019-08-30 12:13:14.000000000","message":"i think know maybe mdbooth can say why.\ni just rebased tehre change on top of mine but technically i dont think this patch is needed.","commit_id":"b8cb8ff8ec59a1477b16be94c5e366c9fcaa503e"}],"nova/tests/unit/test_configdrive2.py":[{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"4f67b8aace36086e86cb1cbed861a49cf1960055","unresolved":false,"context_lines":[{"line_number":90,"context_line":"            if imagefile:"},{"line_number":91,"context_line":"                fileutils.delete_if_exists(imagefile)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def test_config_drive_configured_image_property(self):"},{"line_number":94,"context_line":"        inst \u003d fake_instance.fake_instance_obj(context.get_admin_context())"},{"line_number":95,"context_line":"        inst.config_drive \u003d \u0027\u0027"},{"line_number":96,"context_line":"        inst.system_metadata \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa0c359_17ce352c","line":93,"updated":"2018-02-26 20:11:42.000000000","message":"should have tests like this for the other 2 cases as well:\n\n1) instance.config_drive or\n2) CONF.force_config_drive\n\nespecially given that we\u0027re trying to fix a bug related to force_config_drive.\n\nThen again... we already have the tests in tests/unit/virt/test_configdrive.py doing that. So why does this test exist? Appears to be redundant.","commit_id":"6ba9fa2793b390503d5b1421f9e0fedb37fd9801"}],"nova/tests/unit/virt/libvirt/test_blockinfo.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"1a84d919d4ebddce4d851364da57de28724650df","unresolved":false,"context_lines":[{"line_number":370,"context_line":"        # all ide calls to scsi"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"        instance_ref \u003d objects.Instance(**self.test_instance)"},{"line_number":373,"context_line":"        instance_ref[\u0027config_drive\u0027] \u003d True"},{"line_number":374,"context_line":"        image_meta \u003d objects.ImageMeta.from_dict(self.test_image_meta)"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"        mapping \u003d blockinfo.get_disk_mapping(\"kvm\", instance_ref,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_cd09942c","line":373,"range":{"start_line":373,"start_character":8,"end_line":373,"end_character":36},"updated":"2019-06-07 01:22:36.000000000","message":"It should be instance_ref.config_drive","commit_id":"795f007db5cd1c4e0e1fd57433a9544d7e6ed61f"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"7ff91d252a2f71d71802c4c6318a7270eaefa48b","unresolved":false,"context_lines":[{"line_number":370,"context_line":"        # all ide calls to scsi"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"        instance_ref \u003d objects.Instance(**self.test_instance)"},{"line_number":373,"context_line":"        instance_ref[\u0027config_drive\u0027] \u003d True"},{"line_number":374,"context_line":"        image_meta \u003d objects.ImageMeta.from_dict(self.test_image_meta)"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"        mapping \u003d blockinfo.get_disk_mapping(\"kvm\", instance_ref,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_45f62b92","line":373,"range":{"start_line":373,"start_character":8,"end_line":373,"end_character":36},"in_reply_to":"9fb8cfa7_cd09942c","updated":"2019-07-08 13:27:58.000000000","message":"Done","commit_id":"795f007db5cd1c4e0e1fd57433a9544d7e6ed61f"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"1a84d919d4ebddce4d851364da57de28724650df","unresolved":false,"context_lines":[{"line_number":409,"context_line":"        self.flags(config_drive_format\u003d\u0027iso9660\u0027)"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"        instance_ref \u003d objects.Instance(**self.test_instance)"},{"line_number":412,"context_line":"        instance_ref[\u0027config_drive\u0027] \u003d True"},{"line_number":413,"context_line":"        image_meta \u003d objects.ImageMeta.from_dict(self.test_image_meta)"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"        mapping \u003d blockinfo.get_disk_mapping(\"kvm\", instance_ref,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_8d139c5c","line":412,"range":{"start_line":412,"start_character":8,"end_line":412,"end_character":43},"updated":"2019-06-07 01:22:36.000000000","message":"ditto","commit_id":"795f007db5cd1c4e0e1fd57433a9544d7e6ed61f"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"7ff91d252a2f71d71802c4c6318a7270eaefa48b","unresolved":false,"context_lines":[{"line_number":409,"context_line":"        self.flags(config_drive_format\u003d\u0027iso9660\u0027)"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"        instance_ref \u003d objects.Instance(**self.test_instance)"},{"line_number":412,"context_line":"        instance_ref[\u0027config_drive\u0027] \u003d True"},{"line_number":413,"context_line":"        image_meta \u003d objects.ImageMeta.from_dict(self.test_image_meta)"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"        mapping \u003d blockinfo.get_disk_mapping(\"kvm\", instance_ref,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_e5f2b79a","line":412,"range":{"start_line":412,"start_character":8,"end_line":412,"end_character":43},"in_reply_to":"9fb8cfa7_8d139c5c","updated":"2019-07-08 13:27:58.000000000","message":"Done","commit_id":"795f007db5cd1c4e0e1fd57433a9544d7e6ed61f"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"1a84d919d4ebddce4d851364da57de28724650df","unresolved":false,"context_lines":[{"line_number":441,"context_line":"        self.flags(config_drive_format\u003d\u0027vfat\u0027)"},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"        instance_ref \u003d objects.Instance(**self.test_instance)"},{"line_number":444,"context_line":"        instance_ref[\u0027config_drive\u0027] \u003d True"},{"line_number":445,"context_line":"        image_meta \u003d objects.ImageMeta.from_dict(self.test_image_meta)"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"        mapping \u003d blockinfo.get_disk_mapping(\"kvm\", instance_ref,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_4d1da464","line":444,"range":{"start_line":444,"start_character":8,"end_line":444,"end_character":43},"updated":"2019-06-07 01:22:36.000000000","message":"ditto","commit_id":"795f007db5cd1c4e0e1fd57433a9544d7e6ed61f"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"7ff91d252a2f71d71802c4c6318a7270eaefa48b","unresolved":false,"context_lines":[{"line_number":441,"context_line":"        self.flags(config_drive_format\u003d\u0027vfat\u0027)"},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"        instance_ref \u003d objects.Instance(**self.test_instance)"},{"line_number":444,"context_line":"        instance_ref[\u0027config_drive\u0027] \u003d True"},{"line_number":445,"context_line":"        image_meta \u003d objects.ImageMeta.from_dict(self.test_image_meta)"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"        mapping \u003d blockinfo.get_disk_mapping(\"kvm\", instance_ref,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_05f03390","line":444,"range":{"start_line":444,"start_character":8,"end_line":444,"end_character":43},"in_reply_to":"9fb8cfa7_4d1da464","updated":"2019-07-08 13:27:58.000000000","message":"Done","commit_id":"795f007db5cd1c4e0e1fd57433a9544d7e6ed61f"}],"nova/tests/unit/virt/test_configdrive.py":[{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"4f67b8aace36086e86cb1cbed861a49cf1960055","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        instance \u003d objects.Instance("},{"line_number":25,"context_line":"            config_drive\u003d\"yes\","},{"line_number":26,"context_line":"            system_metadata\u003d{"},{"line_number":27,"context_line":"                \"image_img_config_drive\": \"mandatory\","},{"line_number":28,"context_line":"            }"},{"line_number":29,"context_line":"        )"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa0c359_1a065c1d","line":27,"updated":"2018-02-26 20:11:42.000000000","message":"This should be \"optional\" to ensure that the reason the following assertTrue passes is because of instance.config_drive, not the metadata.","commit_id":"6ba9fa2793b390503d5b1421f9e0fedb37fd9801"}],"nova/virt/configdrive.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"e7df393157ccf404c81c771e17b8dfd74786a42b","unresolved":false,"context_lines":[{"line_number":178,"context_line":"    setting. In this case the instance needs to mirror the actual"},{"line_number":179,"context_line":"    virtual machine configuration."},{"line_number":180,"context_line":"    \"\"\""},{"line_number":181,"context_line":"    if not instance.config_drive and required(instance):"},{"line_number":182,"context_line":"        instance.config_drive \u003d True"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_fb30cb58","line":181,"range":{"start_line":181,"start_character":37,"end_line":181,"end_character":45},"updated":"2018-02-20 20:25:01.000000000","message":"I almost wonder if this would be better named \u0027configured\u0027 or similar since, at a glance, I had thought this method had been change *not* to consider the configuration options or image properties (required vs required_by).","commit_id":"f5d7097ff46356510a9c03f224bad11803b1fb08"},{"author":{"_account_id":23417,"name":"yuanyue","email":"yyuanyuee@163.com","username":"yuanyue"},"change_message_id":"8a19b71612ac409e6cb82b8cb5ce4e327d3789f7","unresolved":false,"context_lines":[{"line_number":178,"context_line":"    setting. In this case the instance needs to mirror the actual"},{"line_number":179,"context_line":"    virtual machine configuration."},{"line_number":180,"context_line":"    \"\"\""},{"line_number":181,"context_line":"    if not instance.config_drive and required(instance):"},{"line_number":182,"context_line":"        instance.config_drive \u003d True"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_743b01e9","line":181,"range":{"start_line":181,"start_character":37,"end_line":181,"end_character":45},"in_reply_to":"3fa0c359_fb30cb58","updated":"2018-02-26 10:33:41.000000000","message":"Thanks. I will improve it~","commit_id":"f5d7097ff46356510a9c03f224bad11803b1fb08"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"ab7f9324eba25a1b4ebc20892112f723e0cba6b0","unresolved":false,"context_lines":[{"line_number":157,"context_line":"    return bool(instance.config_drive)"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"def configured(instance):"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    image_prop \u003d instance.image_meta.properties.get("},{"line_number":163,"context_line":"        \"img_config_drive\","}],"source_content_type":"text/x-python","patch_set":7,"id":"bfb3d3c7_09051b14","line":160,"updated":"2019-05-28 16:07:38.000000000","message":"nit: _configured would make it more obvious there are no external callers. Alternatively inline it into update_instance.","commit_id":"795f007db5cd1c4e0e1fd57433a9544d7e6ed61f"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"ab7f9324eba25a1b4ebc20892112f723e0cba6b0","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        \"img_config_drive\","},{"line_number":164,"context_line":"        fields.ConfigDrivePolicy.OPTIONAL)"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    return (instance.config_drive or"},{"line_number":167,"context_line":"            CONF.force_config_drive or"},{"line_number":168,"context_line":"            image_prop \u003d\u003d fields.ConfigDrivePolicy.MANDATORY"},{"line_number":169,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f6a8fd7_95765806","line":166,"range":{"start_line":166,"start_character":12,"end_line":166,"end_character":33},"updated":"2019-05-28 16:07:38.000000000","message":"This is now redundant: it\u0027s only called from one place, and instance.config_drive was already checked.","commit_id":"795f007db5cd1c4e0e1fd57433a9544d7e6ed61f"}],"releasenotes/notes/bug-1241806-config-drive-configuration-34432fa4a2dd19c6.yaml":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a51cd65ff41bf79de986457fd039c41530781023","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The update of the instance.config_drive field in database would be"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3fa0c359_9dbcb1bb","line":1,"updated":"2018-02-26 11:08:48.000000000","message":"Nit: kill trailing spaces in this reno","commit_id":"fff38bec69197215800cc9a5c8291fbc2e1e81f7"},{"author":{"_account_id":23417,"name":"yuanyue","email":"yyuanyuee@163.com","username":"yuanyue"},"change_message_id":"afe6d10c7ceb0875850066d2734da55c722f6227","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The update of the instance.config_drive field in database would be"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3fa0c359_a3bceeba","line":1,"in_reply_to":"3fa0c359_9dbcb1bb","updated":"2018-02-26 12:24:05.000000000","message":"Got it. Thanks.","commit_id":"fff38bec69197215800cc9a5c8291fbc2e1e81f7"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"1a84d919d4ebddce4d851364da57de28724650df","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    nova.conf is switched to True after spawning the instance without a"},{"line_number":15,"context_line":"    config drive."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"    .. _bug 1241806: https://bugs.launchpad.net/nova/+bug/1241806"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fb8cfa7_aa09a631","line":17,"range":{"start_line":17,"start_character":4,"end_line":17,"end_character":65},"updated":"2019-06-07 01:22:36.000000000","message":"It does not appear in the generated release note.","commit_id":"795f007db5cd1c4e0e1fd57433a9544d7e6ed61f"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"7ff91d252a2f71d71802c4c6318a7270eaefa48b","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    nova.conf is switched to True after spawning the instance without a"},{"line_number":15,"context_line":"    config drive."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"    .. _bug 1241806: https://bugs.launchpad.net/nova/+bug/1241806"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"7faddb67_25cbef53","line":17,"range":{"start_line":17,"start_character":4,"end_line":17,"end_character":65},"in_reply_to":"9fb8cfa7_aa09a631","updated":"2019-07-08 13:27:58.000000000","message":"Done","commit_id":"795f007db5cd1c4e0e1fd57433a9544d7e6ed61f"}]}
