)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"10e49c29bdcbe08d7a3fff1bec963dc16f587674","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Recreate config drive on hard reboot"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Changing config drive parameter in nova.conf to"},{"line_number":10,"context_line":"True breaks libvirt\u0027s hard_reboot, driver tries"},{"line_number":11,"context_line":"to find config_drive disks, which wasn\u0027t created"},{"line_number":12,"context_line":"on instnce spawn."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5a8bc5a2_9799b27b","line":9,"updated":"2016-09-27 13:56:56.000000000","message":"nit: force_config_drive?\n\nAlso, you should probably mention that this only affects the instances that did not have a config drive (as they could have config drives even though force_config_drive was set to False).","commit_id":"c5f22abda9e3f0aaccf4f13c8902e3f0505eb9db"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"10e49c29bdcbe08d7a3fff1bec963dc16f587674","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Changing config drive parameter in nova.conf to"},{"line_number":10,"context_line":"True breaks libvirt\u0027s hard_reboot, driver tries"},{"line_number":11,"context_line":"to find config_drive disks, which wasn\u0027t created"},{"line_number":12,"context_line":"on instnce spawn."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This patch adds creation of config_drive on hard_reboot"},{"line_number":15,"context_line":"in case one wasn\u0027t found."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5a8bc5a2_770266b5","line":12,"range":{"start_line":12,"start_character":3,"end_line":12,"end_character":10},"updated":"2016-09-27 13:56:56.000000000","message":"typo: instance","commit_id":"c5f22abda9e3f0aaccf4f13c8902e3f0505eb9db"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"10e49c29bdcbe08d7a3fff1bec963dc16f587674","unresolved":false,"context_lines":[{"line_number":14,"context_line":"This patch adds creation of config_drive on hard_reboot"},{"line_number":15,"context_line":"in case one wasn\u0027t found."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Closes bug: #1303714"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: Ia2762d1236b92f97d6533027f7ac1ecc33cbc2de"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5a8bc5a2_d7d89a55","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":10},"updated":"2016-09-27 13:56:56.000000000","message":"nit: Closes-Bug:\n\nAfter reading the bug description and comments I think you are actually fixing a different (more severe) issue here.","commit_id":"c5f22abda9e3f0aaccf4f13c8902e3f0505eb9db"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"10e49c29bdcbe08d7a3fff1bec963dc16f587674","unresolved":false,"context_lines":[{"line_number":2270,"context_line":"                                            instance.image_meta,"},{"line_number":2271,"context_line":"                                            block_device_info)"},{"line_number":2272,"context_line":""},{"line_number":2273,"context_line":"        # NOTE(tdurakov): this is required to ensure that there is config_drive"},{"line_number":2274,"context_line":"        # for instance"},{"line_number":2275,"context_line":"        self._create_configdrive(context, instance, network_info\u003dnetwork_info,"},{"line_number":2276,"context_line":"                                 recreate\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a8bc5a2_badf730b","line":2273,"updated":"2016-09-27 13:56:56.000000000","message":"nit: I think you could mention the specific use case for this (i.e. force_config_drive False -\u003e True)","commit_id":"c5f22abda9e3f0aaccf4f13c8902e3f0505eb9db"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"9dddfa414fa7c5cbfe66a431ff4734402ee22121","unresolved":false,"context_lines":[{"line_number":3098,"context_line":"        try:"},{"line_number":3099,"context_line":"            instance.device_metadata \u003d self._build_device_metadata(context,"},{"line_number":3100,"context_line":"                                                                   instance)"},{"line_number":3101,"context_line":"        except Exception:"},{"line_number":3102,"context_line":"            if not recreate:"},{"line_number":3103,"context_line":"                raise"},{"line_number":3104,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a8bc5a2_1dc6ea99","line":3101,"updated":"2016-09-26 13:21:03.000000000","message":"I\u0027d log exception here to don\u0027t skip it silently.","commit_id":"c5f22abda9e3f0aaccf4f13c8902e3f0505eb9db"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"f6f646ccaf2e83f0a4d239362fcf1bcc9f21e694","unresolved":false,"context_lines":[{"line_number":3098,"context_line":"        try:"},{"line_number":3099,"context_line":"            instance.device_metadata \u003d self._build_device_metadata(context,"},{"line_number":3100,"context_line":"                                                                   instance)"},{"line_number":3101,"context_line":"        except Exception:"},{"line_number":3102,"context_line":"            if not recreate:"},{"line_number":3103,"context_line":"                raise"},{"line_number":3104,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a8bc5a2_e17a67f0","line":3101,"in_reply_to":"5a8bc5a2_1dc6ea99","updated":"2016-09-26 17:45:39.000000000","message":"What\u0027s the potential exception that we\u0027re catching here? Why not just leave that call as is?","commit_id":"c5f22abda9e3f0aaccf4f13c8902e3f0505eb9db"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"8b2ec8ce4ff02b5e3230716d0d9064b63262ba4f","unresolved":false,"context_lines":[{"line_number":3098,"context_line":"        try:"},{"line_number":3099,"context_line":"            instance.device_metadata \u003d self._build_device_metadata(context,"},{"line_number":3100,"context_line":"                                                                   instance)"},{"line_number":3101,"context_line":"        except Exception:"},{"line_number":3102,"context_line":"            if not recreate:"},{"line_number":3103,"context_line":"                raise"},{"line_number":3104,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a8bc5a2_756d15cb","line":3101,"in_reply_to":"5a8bc5a2_1dc6ea99","updated":"2016-09-27 08:02:35.000000000","message":"if it\u0027s not `recreate` exception will go up the stack, in the case of `recreate`\u003dtrue we don\u0027t care about it, so do we really need to log any here?","commit_id":"c5f22abda9e3f0aaccf4f13c8902e3f0505eb9db"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"10e49c29bdcbe08d7a3fff1bec963dc16f587674","unresolved":false,"context_lines":[{"line_number":3098,"context_line":"        try:"},{"line_number":3099,"context_line":"            instance.device_metadata \u003d self._build_device_metadata(context,"},{"line_number":3100,"context_line":"                                                                   instance)"},{"line_number":3101,"context_line":"        except Exception:"},{"line_number":3102,"context_line":"            if not recreate:"},{"line_number":3103,"context_line":"                raise"},{"line_number":3104,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a8bc5a2_dad51f43","line":3101,"in_reply_to":"5a8bc5a2_756d15cb","updated":"2016-09-27 13:56:56.000000000","message":"I think, you should add a note here on why recreate is special.","commit_id":"c5f22abda9e3f0aaccf4f13c8902e3f0505eb9db"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"289eccabca3f5c2adf26b1cf28985aa983d7d5af","unresolved":false,"context_lines":[{"line_number":3098,"context_line":"        try:"},{"line_number":3099,"context_line":"            instance.device_metadata \u003d self._build_device_metadata(context,"},{"line_number":3100,"context_line":"                                                                   instance)"},{"line_number":3101,"context_line":"        except Exception:"},{"line_number":3102,"context_line":"            if not recreate:"},{"line_number":3103,"context_line":"                raise"},{"line_number":3104,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a8bc5a2_b27a53bb","line":3101,"in_reply_to":"5a8bc5a2_e17a67f0","updated":"2016-09-27 08:01:07.000000000","message":"as I call this method after domain was undefined there will be InstanceNotFound. I\u0027d prefer to catch Exception here instead, as it will guarantee nova will recreate config_drive","commit_id":"c5f22abda9e3f0aaccf4f13c8902e3f0505eb9db"}]}
