)]}'
{".cache/v/cache/lastfailed":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"0b8b423dd06191da5c860ff80ff68559f1b4738a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"  \"nova/tests/functional/test_servers.py\": true, "},{"line_number":3,"context_line":"  \"nova/tests/unit/compute/test_compute_mgr.py\": true"},{"line_number":4,"context_line":"}"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"bf8cb3f7_610ec2e6","line":4,"range":{"start_line":1,"start_character":0,"end_line":4,"end_character":1},"updated":"2017-12-21 06:08:46.000000000","message":"What is this file for?","commit_id":"85404652fffee1ba89a37099f8c05b54f957790c"},{"author":{"_account_id":24422,"name":"Mr Rambo","email":"lijie@unitedstack.com","username":"MrRambo"},"change_message_id":"c71ad643bde297ac42bcff083ad9f7c97a650718","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"  \"nova/tests/functional/test_servers.py\": true, "},{"line_number":3,"context_line":"  \"nova/tests/unit/compute/test_compute_mgr.py\": true"},{"line_number":4,"context_line":"}"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"bf8cb3f7_411e1e0d","line":4,"range":{"start_line":1,"start_character":0,"end_line":4,"end_character":1},"in_reply_to":"bf8cb3f7_610ec2e6","updated":"2017-12-21 06:11:05.000000000","message":"Sorry about this.I delete it at once.","commit_id":"85404652fffee1ba89a37099f8c05b54f957790c"}],"/COMMIT_MSG":[{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"1d339c5da4b27d7780a45654b8653537718aeea7","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Co-Authored-By:Laszlo Hegedus \u003claszlo.hegedus@ericsson.com\u003e"},{"line_number":19,"context_line":"Closes-Bug: #1482040"},{"line_number":20,"context_line":"Closes-Bug: #1378689"},{"line_number":21,"context_line":"Closes-Bug: #1474253"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"df87a7cf_73db83ec","line":21,"range":{"start_line":21,"start_character":12,"end_line":21,"end_character":20},"updated":"2017-12-18 16:09:07.000000000","message":"This has been marked a duplicate of #1482040, so it\u0027s redundant here and may be confusing in launchpad.","commit_id":"2640a5854978cb88eaf143685ccf843e1818da6d"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"db4bcec5b506e404ad3445710e8211de806c2562","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     MrRambo \u003c1070118279@qq.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-12-26 17:02:49 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix the problems that volume-backed server rebuild"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If the instance was booted from volume, then rebuild will only change"},{"line_number":10,"context_line":"the image, but the instance will still boot from the original volume."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bf8cb3f7_c304244d","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":50},"updated":"2017-12-27 19:16:49.000000000","message":"this summary line is not appropriately descriptive. please describe what precisely the patch is fixing. \"fix the problems\" is too general.","commit_id":"c33eaea4e98fd9cd97fbddf74aca57e1a1f94543"},{"author":{"_account_id":24422,"name":"Mr Rambo","email":"lijie@unitedstack.com","username":"MrRambo"},"change_message_id":"0332feee3e55650de3649268b8b99bab270c898e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     MrRambo \u003c1070118279@qq.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-12-26 17:02:49 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix the problems that volume-backed server rebuild"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If the instance was booted from volume, then rebuild will only change"},{"line_number":10,"context_line":"the image, but the instance will still boot from the original volume."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9f91af0f_b143436c","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":50},"in_reply_to":"bf8cb3f7_c304244d","updated":"2018-01-08 07:01:38.000000000","message":"thank you,I will change it","commit_id":"c33eaea4e98fd9cd97fbddf74aca57e1a1f94543"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"db4bcec5b506e404ad3445710e8211de806c2562","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix the problems that volume-backed server rebuild"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If the instance was booted from volume, then rebuild will only change"},{"line_number":10,"context_line":"the image, but the instance will still boot from the original volume."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"To solve it,I judge from \"root_bdm.is_volume\" to know which style it boot from."},{"line_number":13,"context_line":"And if boot from volume,we can recreate_volume by the given image_href.On the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bf8cb3f7_a3f9e04d","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":69},"updated":"2017-12-27 19:16:49.000000000","message":"this is actually the behaviour by design...","commit_id":"c33eaea4e98fd9cd97fbddf74aca57e1a1f94543"},{"author":{"_account_id":24422,"name":"Mr Rambo","email":"lijie@unitedstack.com","username":"MrRambo"},"change_message_id":"63081a2be7345853d5791a8cdd15e3868d5f6033","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix the problems that volume-backed server rebuild"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If the instance was booted from volume, then rebuild will only change"},{"line_number":10,"context_line":"the image, but the instance will still boot from the original volume."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"To solve it,I judge from \"root_bdm.is_volume\" to know which style it boot from."},{"line_number":13,"context_line":"And if boot from volume,we can recreate_volume by the given image_href.On the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9f91af0f_b16a63ea","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":69},"in_reply_to":"bf8cb3f7_a3f9e04d","updated":"2018-01-08 03:03:31.000000000","message":"but the volume is original volume means not a new environment","commit_id":"c33eaea4e98fd9cd97fbddf74aca57e1a1f94543"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"db4bcec5b506e404ad3445710e8211de806c2562","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Co-Authored-By:Laszlo Hegedus \u003claszlo.hegedus@ericsson.com\u003e"},{"line_number":19,"context_line":"Implements: https://blueprints.launchpad.net/nova/+spec/volume-backed-server-rebuild"},{"line_number":20,"context_line":"Closes-Bug: #1378689"},{"line_number":21,"context_line":"Closes-Bug: #1474253"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bf8cb3f7_23ee3088","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":20},"updated":"2017-12-27 19:16:49.000000000","message":"this is a duplicate of bug 1378689, please remove.","commit_id":"c33eaea4e98fd9cd97fbddf74aca57e1a1f94543"}],"nova/compute/manager.py":[{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"1d339c5da4b27d7780a45654b8653537718aeea7","unresolved":false,"context_lines":[{"line_number":2740,"context_line":""},{"line_number":2741,"context_line":"    def _recreate_volume_based_bdm_from_image(self, context, image_meta, bdm):"},{"line_number":2742,"context_line":"        if image_meta.size \u003d\u003d 0:"},{"line_number":2743,"context_line":"            snapshot \u003d {\u0027id\u0027: image_meta."},{"line_number":2744,"context_line":"            properties.img_block_device_mapping[0][\"snapshot_id\"]}"},{"line_number":2745,"context_line":"            new_volume \u003d self.volume_api.create(context,"},{"line_number":2746,"context_line":"                                            bdm.volume_size,"},{"line_number":2747,"context_line":"                                            bdm.device_name,"}],"source_content_type":"text/x-python","patch_set":1,"id":"df87a7cf_4ec6d26a","line":2744,"range":{"start_line":2743,"start_character":40,"end_line":2744,"end_character":22},"updated":"2017-12-18 16:09:07.000000000","message":"You\u0027d need to fix this. Suggest moving image_meta to the next line, or splitting pulling out this value over multiple lines.","commit_id":"2640a5854978cb88eaf143685ccf843e1818da6d"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"1d339c5da4b27d7780a45654b8653537718aeea7","unresolved":false,"context_lines":[{"line_number":2760,"context_line":"        bdm.volume_id \u003d new_volume[\u0027id\u0027]"},{"line_number":2761,"context_line":"        bdm.connection_info \u003d None"},{"line_number":2762,"context_line":"        bdm.image_id \u003d image_meta.id"},{"line_number":2763,"context_line":"        return bdm"},{"line_number":2764,"context_line":""},{"line_number":2765,"context_line":"    def _rebuild_default_impl(self, context, instance, image_meta,"},{"line_number":2766,"context_line":"                              injected_files, admin_password, allocations,"}],"source_content_type":"text/x-python","patch_set":1,"id":"df87a7cf_eeeb2675","line":2763,"range":{"start_line":2763,"start_character":15,"end_line":2763,"end_character":18},"updated":"2017-12-18 16:09:07.000000000","message":"This is the same BDM. You\u0027ve modified your input parameter.\n\nI think this is a case where this is ok, though, so returning it is confusing (and you\u0027ve confused yourself below). I recommend making the modification of the passed object explicit in the name of the function. How about: _update_root_volume()? Something like that, anyway, which explicitly points out it\u0027s changing something you\u0027re giving it.\n\nAlso, you must save the bdm here.\n\nAnd don\u0027t return the bdm.","commit_id":"2640a5854978cb88eaf143685ccf843e1818da6d"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"1d339c5da4b27d7780a45654b8653537718aeea7","unresolved":false,"context_lines":[{"line_number":2762,"context_line":"        bdm.image_id \u003d image_meta.id"},{"line_number":2763,"context_line":"        return bdm"},{"line_number":2764,"context_line":""},{"line_number":2765,"context_line":"    def _rebuild_default_impl(self, context, instance, image_meta,"},{"line_number":2766,"context_line":"                              injected_files, admin_password, allocations,"},{"line_number":2767,"context_line":"                              bdms, detach_block_devices, attach_block_devices,"},{"line_number":2768,"context_line":"                              network_info\u003dNone,"}],"source_content_type":"text/x-python","patch_set":1,"id":"df87a7cf_ce7ae275","line":2765,"range":{"start_line":2765,"start_character":8,"end_line":2765,"end_character":29},"updated":"2017-12-18 16:09:07.000000000","message":"Looks like you\u0027d also need to implement a change for the ironic driver.","commit_id":"2640a5854978cb88eaf143685ccf843e1818da6d"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"1d339c5da4b27d7780a45654b8653537718aeea7","unresolved":false,"context_lines":[{"line_number":2773,"context_line":"            # partitions."},{"line_number":2774,"context_line":"            raise exception.PreserveEphemeralNotSupported()"},{"line_number":2775,"context_line":""},{"line_number":2776,"context_line":"        if recreate:"},{"line_number":2777,"context_line":"            detach_block_devices(context, bdms)"},{"line_number":2778,"context_line":"        else:"},{"line_number":2779,"context_line":"            self._power_off_instance(context, instance, clean_shutdown\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df87a7cf_ce5662cf","line":2776,"range":{"start_line":2776,"start_character":0,"end_line":2776,"end_character":20},"updated":"2017-12-18 16:09:07.000000000","message":"Note: This is evacuate, so not recreating the root volume here is correct.","commit_id":"2640a5854978cb88eaf143685ccf843e1818da6d"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"1d339c5da4b27d7780a45654b8653537718aeea7","unresolved":false,"context_lines":[{"line_number":2794,"context_line":"                                        \u0027%(volume_id)s due to %(exc)s\u0027,"},{"line_number":2795,"context_line":"                                    {\u0027volume_id\u0027: root_bdm.volume_id,"},{"line_number":2796,"context_line":"                                     \u0027exc\u0027: exc})"},{"line_number":2797,"context_line":"                bdms \u003d list(block_device.get_bdms_to_connect("},{"line_number":2798,"context_line":"                    bdms, exclude_root_mapping\u003dTrue))"},{"line_number":2799,"context_line":"                bdms.insert(0, new_root_bdm)"},{"line_number":2800,"context_line":""},{"line_number":2801,"context_line":"        instance.task_state \u003d task_states.REBUILD_BLOCK_DEVICE_MAPPING"},{"line_number":2802,"context_line":"        instance.save(expected_task_state\u003d[task_states.REBUILDING])"}],"source_content_type":"text/x-python","patch_set":1,"id":"df87a7cf_ce9bc214","line":2799,"range":{"start_line":2797,"start_character":0,"end_line":2799,"end_character":44},"updated":"2017-12-18 16:09:07.000000000","message":"This isn\u0027t required because you modified the bdm object in place above.","commit_id":"2640a5854978cb88eaf143685ccf843e1818da6d"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"76d6507190c36ee84b8e88f296572cd1385fcc5b","unresolved":false,"context_lines":[{"line_number":2739,"context_line":"            migration.save()"},{"line_number":2740,"context_line":""},{"line_number":2741,"context_line":"    def _update_root_volume(self, context, image_meta, bdm):"},{"line_number":2742,"context_line":"        if image_meta.size \u003d\u003d 0:"},{"line_number":2743,"context_line":"            snapshot \u003d {\u0027id\u0027: image_meta."},{"line_number":2744,"context_line":"            properties."},{"line_number":2745,"context_line":"            img_block_device_mapping[0][\"snapshot_id\"]}"},{"line_number":2746,"context_line":"            new_volume \u003d self.volume_api.create(context,"},{"line_number":2747,"context_line":"                                            bdm.volume_size,"},{"line_number":2748,"context_line":"                                            bdm.device_name,"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_0dc99d57","line":2745,"range":{"start_line":2742,"start_character":11,"end_line":2745,"end_character":55},"updated":"2017-12-19 09:56:32.000000000","message":"The formatting really needs to be sorted here! Try pulling the bdm in to a line above.\n\nThe weird formatting here distracted me from what the code\u0027s actually doing last time I looked at this. Can you explain why having image_meta.size \u003d\u003d 0 means that there are definitely block device mappings in the image metadata, and that the first one is a snapshot? This seems unlikely to be universally true.\n\nCan you please add a comment here explaining in some detail why this branch exists and why it is always correct?","commit_id":"455bc55fe1b48782d08d7919d0df8dd263ccac74"},{"author":{"_account_id":24422,"name":"Mr Rambo","email":"lijie@unitedstack.com","username":"MrRambo"},"change_message_id":"11b20a74e4a71630e848187c43d30c7df46afff2","unresolved":false,"context_lines":[{"line_number":2739,"context_line":"            migration.save()"},{"line_number":2740,"context_line":""},{"line_number":2741,"context_line":"    def _update_root_volume(self, context, image_meta, bdm):"},{"line_number":2742,"context_line":"        if image_meta.size \u003d\u003d 0:"},{"line_number":2743,"context_line":"            snapshot \u003d {\u0027id\u0027: image_meta."},{"line_number":2744,"context_line":"            properties."},{"line_number":2745,"context_line":"            img_block_device_mapping[0][\"snapshot_id\"]}"},{"line_number":2746,"context_line":"            new_volume \u003d self.volume_api.create(context,"},{"line_number":2747,"context_line":"                                            bdm.volume_size,"},{"line_number":2748,"context_line":"                                            bdm.device_name,"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_73628c40","line":2745,"range":{"start_line":2742,"start_character":11,"end_line":2745,"end_character":55},"in_reply_to":"df87a7cf_0dc99d57","updated":"2017-12-21 05:01:40.000000000","message":"The branch is to judge the image if it is a \"volume-backed server image\".If the\nsize is equal 0,the given image is \"volume-backed server image\",otherwise is \nthe \"image-backed server image\"","commit_id":"455bc55fe1b48782d08d7919d0df8dd263ccac74"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"db4bcec5b506e404ad3445710e8211de806c2562","unresolved":false,"context_lines":[{"line_number":2748,"context_line":"                \u0027id\u0027: image_meta.properties"},{"line_number":2749,"context_line":"                                .img_block_device_mapping[0][\"snapshot_id\"]"},{"line_number":2750,"context_line":"            }"},{"line_number":2751,"context_line":"            new_volume \u003d self.volume_api.create(context,"},{"line_number":2752,"context_line":"                                            bdm.volume_size,"},{"line_number":2753,"context_line":"                                            bdm.device_name,"},{"line_number":2754,"context_line":"                                            None,"},{"line_number":2755,"context_line":"                                            snapshot\u003dsnapshot)"},{"line_number":2756,"context_line":"        else:"},{"line_number":2757,"context_line":"            new_volume \u003d self.volume_api.create(context,"},{"line_number":2758,"context_line":"                                            bdm.volume_size,"},{"line_number":2759,"context_line":"                                            bdm.device_name,"},{"line_number":2760,"context_line":"                                            None,"},{"line_number":2761,"context_line":"                                            image_id\u003dimage_meta.id)"},{"line_number":2762,"context_line":""},{"line_number":2763,"context_line":"        self._await_block_device_map_created(context, new_volume[\u0027id\u0027])"},{"line_number":2764,"context_line":"        LOG.debug(\u0027Created new root volume %s. Updating bdm.\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf8cb3f7_63c2f8eb","line":2761,"range":{"start_line":2751,"start_character":0,"end_line":2761,"end_character":67},"updated":"2017-12-27 19:16:49.000000000","message":"the method name is _update_root_volume(), but you are calling volume_api.create() here...","commit_id":"c33eaea4e98fd9cd97fbddf74aca57e1a1f94543"},{"author":{"_account_id":24422,"name":"Mr Rambo","email":"lijie@unitedstack.com","username":"MrRambo"},"change_message_id":"13c23db4ec0e3d5aefaee404c3f7bcf531639680","unresolved":false,"context_lines":[{"line_number":2748,"context_line":"                \u0027id\u0027: image_meta.properties"},{"line_number":2749,"context_line":"                                .img_block_device_mapping[0][\"snapshot_id\"]"},{"line_number":2750,"context_line":"            }"},{"line_number":2751,"context_line":"            new_volume \u003d self.volume_api.create(context,"},{"line_number":2752,"context_line":"                                            bdm.volume_size,"},{"line_number":2753,"context_line":"                                            bdm.device_name,"},{"line_number":2754,"context_line":"                                            None,"},{"line_number":2755,"context_line":"                                            snapshot\u003dsnapshot)"},{"line_number":2756,"context_line":"        else:"},{"line_number":2757,"context_line":"            new_volume \u003d self.volume_api.create(context,"},{"line_number":2758,"context_line":"                                            bdm.volume_size,"},{"line_number":2759,"context_line":"                                            bdm.device_name,"},{"line_number":2760,"context_line":"                                            None,"},{"line_number":2761,"context_line":"                                            image_id\u003dimage_meta.id)"},{"line_number":2762,"context_line":""},{"line_number":2763,"context_line":"        self._await_block_device_map_created(context, new_volume[\u0027id\u0027])"},{"line_number":2764,"context_line":"        LOG.debug(\u0027Created new root volume %s. Updating bdm.\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_d4f9f9c7","line":2761,"range":{"start_line":2751,"start_character":0,"end_line":2761,"end_character":67},"in_reply_to":"9f91af0f_74191720","updated":"2018-01-09 02:08:32.000000000","message":"Thank you.","commit_id":"c33eaea4e98fd9cd97fbddf74aca57e1a1f94543"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ab568a544021793df5d5e414c6bff752970c7875","unresolved":false,"context_lines":[{"line_number":2748,"context_line":"                \u0027id\u0027: image_meta.properties"},{"line_number":2749,"context_line":"                                .img_block_device_mapping[0][\"snapshot_id\"]"},{"line_number":2750,"context_line":"            }"},{"line_number":2751,"context_line":"            new_volume \u003d self.volume_api.create(context,"},{"line_number":2752,"context_line":"                                            bdm.volume_size,"},{"line_number":2753,"context_line":"                                            bdm.device_name,"},{"line_number":2754,"context_line":"                                            None,"},{"line_number":2755,"context_line":"                                            snapshot\u003dsnapshot)"},{"line_number":2756,"context_line":"        else:"},{"line_number":2757,"context_line":"            new_volume \u003d self.volume_api.create(context,"},{"line_number":2758,"context_line":"                                            bdm.volume_size,"},{"line_number":2759,"context_line":"                                            bdm.device_name,"},{"line_number":2760,"context_line":"                                            None,"},{"line_number":2761,"context_line":"                                            image_id\u003dimage_meta.id)"},{"line_number":2762,"context_line":""},{"line_number":2763,"context_line":"        self._await_block_device_map_created(context, new_volume[\u0027id\u0027])"},{"line_number":2764,"context_line":"        LOG.debug(\u0027Created new root volume %s. Updating bdm.\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_74191720","line":2761,"range":{"start_line":2751,"start_character":0,"end_line":2761,"end_character":67},"in_reply_to":"9f91af0f_9154ff54","updated":"2018-01-08 17:41:59.000000000","message":"my advice would be to call the function what is does: _create_new_root_volume()","commit_id":"c33eaea4e98fd9cd97fbddf74aca57e1a1f94543"},{"author":{"_account_id":24422,"name":"Mr Rambo","email":"lijie@unitedstack.com","username":"MrRambo"},"change_message_id":"9d9ba17e0aed49cb0a26c6363406b0ae6e2e248f","unresolved":false,"context_lines":[{"line_number":2748,"context_line":"                \u0027id\u0027: image_meta.properties"},{"line_number":2749,"context_line":"                                .img_block_device_mapping[0][\"snapshot_id\"]"},{"line_number":2750,"context_line":"            }"},{"line_number":2751,"context_line":"            new_volume \u003d self.volume_api.create(context,"},{"line_number":2752,"context_line":"                                            bdm.volume_size,"},{"line_number":2753,"context_line":"                                            bdm.device_name,"},{"line_number":2754,"context_line":"                                            None,"},{"line_number":2755,"context_line":"                                            snapshot\u003dsnapshot)"},{"line_number":2756,"context_line":"        else:"},{"line_number":2757,"context_line":"            new_volume \u003d self.volume_api.create(context,"},{"line_number":2758,"context_line":"                                            bdm.volume_size,"},{"line_number":2759,"context_line":"                                            bdm.device_name,"},{"line_number":2760,"context_line":"                                            None,"},{"line_number":2761,"context_line":"                                            image_id\u003dimage_meta.id)"},{"line_number":2762,"context_line":""},{"line_number":2763,"context_line":"        self._await_block_device_map_created(context, new_volume[\u0027id\u0027])"},{"line_number":2764,"context_line":"        LOG.debug(\u0027Created new root volume %s. Updating bdm.\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_9154ff54","line":2761,"range":{"start_line":2751,"start_character":0,"end_line":2761,"end_character":67},"in_reply_to":"bf8cb3f7_63c2f8eb","updated":"2018-01-08 02:50:04.000000000","message":"I can \u0027t come up with a good name.Can you give me some advice?","commit_id":"c33eaea4e98fd9cd97fbddf74aca57e1a1f94543"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"db4bcec5b506e404ad3445710e8211de806c2562","unresolved":false,"context_lines":[{"line_number":2799,"context_line":"                        LOG.warning(\u0027Failed to delete volume: \u0027"},{"line_number":2800,"context_line":"                                        \u0027%(volume_id)s due to %(exc)s\u0027,"},{"line_number":2801,"context_line":"                                    {\u0027volume_id\u0027: root_bdm.volume_id,"},{"line_number":2802,"context_line":"                                     \u0027exc\u0027: exc})"},{"line_number":2803,"context_line":""},{"line_number":2804,"context_line":"        instance.task_state \u003d task_states.REBUILD_BLOCK_DEVICE_MAPPING"},{"line_number":2805,"context_line":"        instance.save(expected_task_state\u003d[task_states.REBUILDING])"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf8cb3f7_83acdc34","line":2802,"updated":"2017-12-27 19:16:49.000000000","message":"If the original volume fails to be deleted, are you going to try to clean up the new volumes you created in _update_root_volume()?","commit_id":"c33eaea4e98fd9cd97fbddf74aca57e1a1f94543"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ab568a544021793df5d5e414c6bff752970c7875","unresolved":false,"context_lines":[{"line_number":2799,"context_line":"                        LOG.warning(\u0027Failed to delete volume: \u0027"},{"line_number":2800,"context_line":"                                        \u0027%(volume_id)s due to %(exc)s\u0027,"},{"line_number":2801,"context_line":"                                    {\u0027volume_id\u0027: root_bdm.volume_id,"},{"line_number":2802,"context_line":"                                     \u0027exc\u0027: exc})"},{"line_number":2803,"context_line":""},{"line_number":2804,"context_line":"        instance.task_state \u003d task_states.REBUILD_BLOCK_DEVICE_MAPPING"},{"line_number":2805,"context_line":"        instance.save(expected_task_state\u003d[task_states.REBUILDING])"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_b4d1df25","line":2802,"in_reply_to":"9f91af0f_38bdd801","updated":"2018-01-08 17:41:59.000000000","message":"Either way, you\u0027re going to end up leaving some orphaned/garbage resources around. We need to be able to be confident that those garbage resources are cleaned up.","commit_id":"c33eaea4e98fd9cd97fbddf74aca57e1a1f94543"},{"author":{"_account_id":24422,"name":"Mr Rambo","email":"lijie@unitedstack.com","username":"MrRambo"},"change_message_id":"b494a8eb0a5f263e4688adff97517037e458ef83","unresolved":false,"context_lines":[{"line_number":2799,"context_line":"                        LOG.warning(\u0027Failed to delete volume: \u0027"},{"line_number":2800,"context_line":"                                        \u0027%(volume_id)s due to %(exc)s\u0027,"},{"line_number":2801,"context_line":"                                    {\u0027volume_id\u0027: root_bdm.volume_id,"},{"line_number":2802,"context_line":"                                     \u0027exc\u0027: exc})"},{"line_number":2803,"context_line":""},{"line_number":2804,"context_line":"        instance.task_state \u003d task_states.REBUILD_BLOCK_DEVICE_MAPPING"},{"line_number":2805,"context_line":"        instance.save(expected_task_state\u003d[task_states.REBUILDING])"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_97d7f3ee","line":2802,"in_reply_to":"9f91af0f_b4d1df25","updated":"2018-01-09 03:32:42.000000000","message":"Yes,I think over about it.In rebuild,we don\u0027t need to consider the original root_volume if is delete_on_terminate.If the user use rebuild to the volumed backed server,the original volume should be deleted.It is for nova boot that the original root_volume if is delete_on_terminate.","commit_id":"c33eaea4e98fd9cd97fbddf74aca57e1a1f94543"},{"author":{"_account_id":27594,"name":"Jie Li","email":"lijie@unitedstack.com","username":"ramboman"},"change_message_id":"3c2af06c132cbbeb76670487f7bb6e4fd61f0450","unresolved":false,"context_lines":[{"line_number":2799,"context_line":"                        LOG.warning(\u0027Failed to delete volume: \u0027"},{"line_number":2800,"context_line":"                                        \u0027%(volume_id)s due to %(exc)s\u0027,"},{"line_number":2801,"context_line":"                                    {\u0027volume_id\u0027: root_bdm.volume_id,"},{"line_number":2802,"context_line":"                                     \u0027exc\u0027: exc})"},{"line_number":2803,"context_line":""},{"line_number":2804,"context_line":"        instance.task_state \u003d task_states.REBUILD_BLOCK_DEVICE_MAPPING"},{"line_number":2805,"context_line":"        instance.save(expected_task_state\u003d[task_states.REBUILDING])"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_38bdd801","line":2802,"in_reply_to":"bf8cb3f7_83acdc34","updated":"2018-01-07 13:20:35.000000000","message":"I don\u0027t think so,if the original volume fails to be deleted,that is cinder problem,not about nova. Moreover,the original volume is detached.Now let us attach the new root_volume,wouldn\u0027t it be more appropriate?","commit_id":"c33eaea4e98fd9cd97fbddf74aca57e1a1f94543"},{"author":{"_account_id":24422,"name":"Mr Rambo","email":"lijie@unitedstack.com","username":"MrRambo"},"change_message_id":"b494a8eb0a5f263e4688adff97517037e458ef83","unresolved":false,"context_lines":[{"line_number":2799,"context_line":"                        LOG.warning(\u0027Failed to delete volume: \u0027"},{"line_number":2800,"context_line":"                                        \u0027%(volume_id)s due to %(exc)s\u0027,"},{"line_number":2801,"context_line":"                                    {\u0027volume_id\u0027: root_bdm.volume_id,"},{"line_number":2802,"context_line":"                                     \u0027exc\u0027: exc})"},{"line_number":2803,"context_line":""},{"line_number":2804,"context_line":"        instance.task_state \u003d task_states.REBUILD_BLOCK_DEVICE_MAPPING"},{"line_number":2805,"context_line":"        instance.save(expected_task_state\u003d[task_states.REBUILDING])"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_57640b22","line":2802,"in_reply_to":"bf8cb3f7_83acdc34","updated":"2018-01-09 03:32:42.000000000","message":"If the original volume fails to be deleted,may need the user use cinder to delete it.Can you give me more advice?Thanks.","commit_id":"c33eaea4e98fd9cd97fbddf74aca57e1a1f94543"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"2a692a5bd97ed639dbfb1863d2bd71880988bf97","unresolved":false,"context_lines":[{"line_number":2766,"context_line":"                                            bdm.volume_size,"},{"line_number":2767,"context_line":"                                            bdm.device_name,"},{"line_number":2768,"context_line":"                                            None,"},{"line_number":2769,"context_line":"                                            image_id\u003dimage_meta.id)"},{"line_number":2770,"context_line":""},{"line_number":2771,"context_line":"        self._await_block_device_map_created(context, new_volume[\u0027id\u0027])"},{"line_number":2772,"context_line":"        LOG.debug(\u0027Created new root volume %s. Updating bdm.\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f91af0f_4eb8ffe3","line":2769,"range":{"start_line":2769,"start_character":44,"end_line":2769,"end_character":67},"updated":"2018-01-08 19:49:25.000000000","message":"I think we\u0027d want to parse the type out of the existing volume and make sure we reproduce what they actually had here.  This is kind of important, particularly for BFV.\n\nAdditionally, I don\u0027t know if it\u0027s worth doing the same for the other fields (metadata, description etc).  Something like get the original volume; duplicated the entries, or even append with a \"rebuild\" tag or something?","commit_id":"7cbfe92f737c5696b8445b31147200ed4e1b442b"}],"nova/tests/functional/test_servers.py":[{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"76d6507190c36ee84b8e88f296572cd1385fcc5b","unresolved":false,"context_lines":[{"line_number":1287,"context_line":"        allocs \u003d allocs[rp_uuid][\u0027resources\u0027]"},{"line_number":1288,"context_line":"        assertFlavorMatchesAllocation(flavor, allocs)"},{"line_number":1289,"context_line":""},{"line_number":1290,"context_line":"    def test_volume_backed_rebuild_different_image(self):"},{"line_number":1291,"context_line":"        \"\"\"Tests that trying to rebuild a volume-backed instance with a"},{"line_number":1292,"context_line":"        different image than what is in the root disk of the root volume"},{"line_number":1293,"context_line":"        will result in a 400 BadRequest error."}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_edf9d97f","side":"PARENT","line":1290,"range":{"start_line":1290,"start_character":0,"end_line":1290,"end_character":57},"updated":"2017-12-19 09:56:32.000000000","message":"Could you please replace this with an equivalent functional test for rebuilding a volume-backed instance with a new image? You should be able to crib from the test above.","commit_id":"07c925a5321e379293bbf0e55bf3c40798eaf21b"},{"author":{"_account_id":24422,"name":"Mr Rambo","email":"lijie@unitedstack.com","username":"MrRambo"},"change_message_id":"f5911d86c880278943219d14e6a8aa8aaa020f6d","unresolved":false,"context_lines":[{"line_number":1287,"context_line":"        allocs \u003d allocs[rp_uuid][\u0027resources\u0027]"},{"line_number":1288,"context_line":"        assertFlavorMatchesAllocation(flavor, allocs)"},{"line_number":1289,"context_line":""},{"line_number":1290,"context_line":"    def test_volume_backed_rebuild_different_image(self):"},{"line_number":1291,"context_line":"        \"\"\"Tests that trying to rebuild a volume-backed instance with a"},{"line_number":1292,"context_line":"        different image than what is in the root disk of the root volume"},{"line_number":1293,"context_line":"        will result in a 400 BadRequest error."}],"source_content_type":"text/x-python","patch_set":2,"id":"bf8cb3f7_cd4307af","side":"PARENT","line":1290,"range":{"start_line":1290,"start_character":0,"end_line":1290,"end_character":57},"in_reply_to":"df87a7cf_edf9d97f","updated":"2017-12-26 06:12:20.000000000","message":"Yeah,I tried to do it,as I try to hard-code from a fake volume like the test above.\nBut it always prompt the volume can\u0027t find.Can you give me some advice?","commit_id":"07c925a5321e379293bbf0e55bf3c40798eaf21b"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"76d6507190c36ee84b8e88f296572cd1385fcc5b","unresolved":false,"context_lines":[{"line_number":3856,"context_line":"            self.assertEqual(block_device_info[\u0027block_device_mapping\u0027],"},{"line_number":3857,"context_line":"                             \u0027shared_block_storage\u0027)"},{"line_number":3858,"context_line":""},{"line_number":3859,"context_line":"        def _fake_root_bdm():"},{"line_number":3860,"context_line":"            fake_bdm \u003d fake_block_device.FakeDbBlockDeviceDict("},{"line_number":3861,"context_line":"                {\u0027source_type\u0027: \u0027volume\u0027})"},{"line_number":3862,"context_line":"            additional_fields \u003d {"},{"line_number":3863,"context_line":"                \u0027device_name\u0027: \u0027device\u0027,"},{"line_number":3864,"context_line":"                \u0027boot_index\u0027: 0,"},{"line_number":3865,"context_line":"                \u0027is_volume\u0027: volume_based,"},{"line_number":3866,"context_line":"                \u0027image_id\u0027: uuids.image_1,"},{"line_number":3867,"context_line":"                \u0027volume_id\u0027: uuids.volume_1,"},{"line_number":3868,"context_line":"                \u0027volume_size\u0027: 10,"},{"line_number":3869,"context_line":"                \u0027delete_on_termination\u0027: True"},{"line_number":3870,"context_line":"            }"},{"line_number":3871,"context_line":"            fake_bdm.update(additional_fields)"},{"line_number":3872,"context_line":"            for key, value in six.iteritems(additional_fields):"},{"line_number":3873,"context_line":"                setattr(fake_bdm, key, value)"},{"line_number":3874,"context_line":"            return fake_bdm"},{"line_number":3875,"context_line":""},{"line_number":3876,"context_line":"        def fake_vol_create(context, volume_size, name,"},{"line_number":3877,"context_line":"                            description, image_id):"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_cd4895b4","line":3874,"range":{"start_line":3859,"start_character":0,"end_line":3874,"end_character":27},"updated":"2017-12-19 09:56:32.000000000","message":"This method is creating a Db dict, not a BDM object. I assume you needed the weird setattr stuff because you have an object of the wrong type. You should use fake_block_device.fake_bdm_object() instead. Also, there\u0027s no need for additional_fields as you can just pass them all in at once.","commit_id":"455bc55fe1b48782d08d7919d0df8dd263ccac74"},{"author":{"_account_id":24422,"name":"Mr Rambo","email":"lijie@unitedstack.com","username":"MrRambo"},"change_message_id":"11b20a74e4a71630e848187c43d30c7df46afff2","unresolved":false,"context_lines":[{"line_number":3856,"context_line":"            self.assertEqual(block_device_info[\u0027block_device_mapping\u0027],"},{"line_number":3857,"context_line":"                             \u0027shared_block_storage\u0027)"},{"line_number":3858,"context_line":""},{"line_number":3859,"context_line":"        def _fake_root_bdm():"},{"line_number":3860,"context_line":"            fake_bdm \u003d fake_block_device.FakeDbBlockDeviceDict("},{"line_number":3861,"context_line":"                {\u0027source_type\u0027: \u0027volume\u0027})"},{"line_number":3862,"context_line":"            additional_fields \u003d {"},{"line_number":3863,"context_line":"                \u0027device_name\u0027: \u0027device\u0027,"},{"line_number":3864,"context_line":"                \u0027boot_index\u0027: 0,"},{"line_number":3865,"context_line":"                \u0027is_volume\u0027: volume_based,"},{"line_number":3866,"context_line":"                \u0027image_id\u0027: uuids.image_1,"},{"line_number":3867,"context_line":"                \u0027volume_id\u0027: uuids.volume_1,"},{"line_number":3868,"context_line":"                \u0027volume_size\u0027: 10,"},{"line_number":3869,"context_line":"                \u0027delete_on_termination\u0027: True"},{"line_number":3870,"context_line":"            }"},{"line_number":3871,"context_line":"            fake_bdm.update(additional_fields)"},{"line_number":3872,"context_line":"            for key, value in six.iteritems(additional_fields):"},{"line_number":3873,"context_line":"                setattr(fake_bdm, key, value)"},{"line_number":3874,"context_line":"            return fake_bdm"},{"line_number":3875,"context_line":""},{"line_number":3876,"context_line":"        def fake_vol_create(context, volume_size, name,"},{"line_number":3877,"context_line":"                            description, image_id):"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_faa5f69f","line":3874,"range":{"start_line":3859,"start_character":0,"end_line":3874,"end_character":27},"in_reply_to":"df87a7cf_cd4895b4","updated":"2017-12-21 05:01:40.000000000","message":"Yes,thank you!","commit_id":"455bc55fe1b48782d08d7919d0df8dd263ccac74"}]}
