)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"5006bf74c26300851f740499819ba3a9719f125f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add DriverLocalImageBlockDevice"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change adds the DriverBlockDevice class which will be used to"},{"line_number":10,"context_line":"expose local root disk BDMs to drivers. A subsequent change will add"},{"line_number":11,"context_line":"it to the block_device_info struct to actually make it available."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"5f7c97a3_8f7e3f17","line":9,"range":{"start_line":9,"start_character":21,"end_line":9,"end_character":38},"updated":"2018-05-09 15:02:38.000000000","message":"This is wrong, correct?","commit_id":"4bef3618bceb445836d8337270206f088f055b5e"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"dbf908ebd61b325fda8ce73857cf6f356df017f0","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add DriverLocalImageBlockDevice"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change adds the DriverBlockDevice class which will be used to"},{"line_number":10,"context_line":"expose local root disk BDMs to drivers. A subsequent change will add"},{"line_number":11,"context_line":"it to the block_device_info struct to actually make it available."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"5f7c97a3_8f287fe2","line":9,"range":{"start_line":9,"start_character":21,"end_line":9,"end_character":38},"in_reply_to":"5f7c97a3_8f7e3f17","updated":"2018-05-09 15:13:00.000000000","message":"Hah! Yes, it is.","commit_id":"4bef3618bceb445836d8337270206f088f055b5e"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"5006bf74c26300851f740499819ba3a9719f125f","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add DriverLocalImageBlockDevice"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change adds the DriverBlockDevice class which will be used to"},{"line_number":10,"context_line":"expose local root disk BDMs to drivers. A subsequent change will add"},{"line_number":11,"context_line":"it to the block_device_info struct to actually make it available."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Part of bp local-disk-serial-numbers"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"5f7c97a3_8fa39f9e","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":38},"updated":"2018-05-09 15:02:38.000000000","message":"Does this mean only scenarios where it\u0027s a local file on disk? I.e. not an ephemeral root disk on rbd, or something? I guess I need to read later in the series to figure out what this is going to do.","commit_id":"4bef3618bceb445836d8337270206f088f055b5e"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"1898de4ff6ed448571069c6947cab7d12fc31a63","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add DriverLocalImageBlockDevice"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change adds the DriverBlockDevice class which will be used to"},{"line_number":10,"context_line":"expose local root disk BDMs to drivers. A subsequent change will add"},{"line_number":11,"context_line":"it to the block_device_info struct to actually make it available."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Part of bp local-disk-serial-numbers"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"5f7c97a3_d2e700e4","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":38},"in_reply_to":"5f7c97a3_6f2ac390","updated":"2018-05-09 15:38:53.000000000","message":"Done.","commit_id":"4bef3618bceb445836d8337270206f088f055b5e"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"eec98c83ee85ef0411d8e8b73a8b9a492dfa940b","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add DriverLocalImageBlockDevice"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change adds the DriverBlockDevice class which will be used to"},{"line_number":10,"context_line":"expose local root disk BDMs to drivers. A subsequent change will add"},{"line_number":11,"context_line":"it to the block_device_info struct to actually make it available."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Part of bp local-disk-serial-numbers"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"5f7c97a3_6f2ac390","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":38},"in_reply_to":"5f7c97a3_6f8e43d1","updated":"2018-05-09 15:17:38.000000000","message":"Can you just put more words in the commit message here when you fix above?","commit_id":"4bef3618bceb445836d8337270206f088f055b5e"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"dbf908ebd61b325fda8ce73857cf6f356df017f0","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add DriverLocalImageBlockDevice"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change adds the DriverBlockDevice class which will be used to"},{"line_number":10,"context_line":"expose local root disk BDMs to drivers. A subsequent change will add"},{"line_number":11,"context_line":"it to the block_device_info struct to actually make it available."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Part of bp local-disk-serial-numbers"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"5f7c97a3_6f8e43d1","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":38},"in_reply_to":"5f7c97a3_8fa39f9e","updated":"2018-05-09 15:13:00.000000000","message":"No, this means any ephemeral root disk. I think I\u0027ve previously referred to these as \u0027local\u0027 disks with an apology, as they\u0027re not always local. I haven\u0027t used ephemeral, as that\u0027s also an overloaded term.\n\nI could be convinced to change it if you can think of a better name, though. It\u0027ll be an annoying amount of search and replace in the series at this stage, but I\u0027m all in favour of good naming.","commit_id":"4bef3618bceb445836d8337270206f088f055b5e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0288840c14f06dda61786ac699287b3de1ce5165","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add DriverLocalImageBlockDevice"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change adds the DriverBlockDevice class which will be used to"},{"line_number":10,"context_line":"expose local root disk BDMs to drivers. A subsequent change will add"},{"line_number":11,"context_line":"it to the block_device_info struct to actually make it available."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Part of bp local-disk-serial-numbers"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"5f7c97a3_29a5a3b5","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":38},"in_reply_to":"5f7c97a3_d2e700e4","updated":"2018-05-09 18:50:03.000000000","message":"FWIW, I always refer to https://docs.openstack.org/nova/latest/user/block-device-mapping.html#valid-source-dest-combinations when reading about this stuff and the source/dest_type combinations.","commit_id":"4bef3618bceb445836d8337270206f088f055b5e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6fb7baafb9b300ade2c00729a35ceb41d9979cc0","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This change adds the DriverLocalImageBlockDevice class which will be"},{"line_number":10,"context_line":"used to expose ephemeral root disk BDMs to drivers. Change I2a2dbcaf"},{"line_number":11,"context_line":"will add it to the block_device_info struct to actually make it"},{"line_number":12,"context_line":"available."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Part of bp local-disk-serial-numbers"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"5f7c97a3_fe79a3fb","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":9},"updated":"2018-05-09 18:29:09.000000000","message":"nit: available to virt drivers.","commit_id":"8521651b5428ae4250478223d47851e92e9da51e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3e20989780b15502b9de1699cd1cf4aaa5153283","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This change adds the DriverLocalImageBlockDevice class which will be"},{"line_number":10,"context_line":"used to expose ephemeral root disk BDMs to drivers. Change I2a2dbcaf"},{"line_number":11,"context_line":"will add it to the block_device_info struct to actually make it"},{"line_number":12,"context_line":"available."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Part of bp local-disk-serial-numbers"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"5f7c97a3_3692c84c","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":9},"in_reply_to":"5f7c97a3_fe79a3fb","updated":"2018-07-05 08:59:49.000000000","message":"Done","commit_id":"8521651b5428ae4250478223d47851e92e9da51e"}],"nova/block_device.py":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"b87160b8c585cb98be358826d87a2a03fea2006f","unresolved":false,"context_lines":[{"line_number":439,"context_line":"    return False"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"def new_format_is_local_image(bdm):"},{"line_number":443,"context_line":"    return (bdm.get(\u0027source_type\u0027) \u003d\u003d \u0027image\u0027 and"},{"line_number":444,"context_line":"            bdm.get(\u0027destination_type\u0027) \u003d\u003d \u0027local\u0027)"},{"line_number":445,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7f96bb07_6b77223c","line":442,"updated":"2018-01-23 21:12:20.000000000","message":"Should we have a test for this? I know it\u0027s trivial, but...","commit_id":"4b94bb47a08c458024d1cca551b3d7b82bebe5c9"}],"nova/tests/unit/virt/test_block_device.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0b5c0c373100456afca4f8d77709594bb6113dee","unresolved":false,"context_lines":[{"line_number":268,"context_line":"    def _test_driver_device(self, name):"},{"line_number":269,"context_line":"        db_bdm \u003d getattr(self, \"%s_bdm\" % name)"},{"line_number":270,"context_line":"        test_bdm \u003d self.driver_classes[name](db_bdm)"},{"line_number":271,"context_line":"        expected \u003d getattr(self, \"%s_driver_bdm\" % name)"},{"line_number":272,"context_line":"        self.assertThat(expected, matchers.DictMatches(test_bdm))"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"        for k, v in db_bdm.items():"},{"line_number":275,"context_line":"            field_val \u003d getattr(test_bdm._bdm_obj, k)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_b97021a7","line":272,"range":{"start_line":271,"start_character":0,"end_line":272,"end_character":65},"updated":"2018-01-05 16:03:03.000000000","message":"Unrelated, right? (I\u0027m fine with it but making sure I\u0027m not going mad)","commit_id":"180d9f3591574c782936e422c44f08ad3d0cd886"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"5fc4afe9dcc0f318e266df9f0b022c627f99c17d","unresolved":false,"context_lines":[{"line_number":268,"context_line":"    def _test_driver_device(self, name):"},{"line_number":269,"context_line":"        db_bdm \u003d getattr(self, \"%s_bdm\" % name)"},{"line_number":270,"context_line":"        test_bdm \u003d self.driver_classes[name](db_bdm)"},{"line_number":271,"context_line":"        expected \u003d getattr(self, \"%s_driver_bdm\" % name)"},{"line_number":272,"context_line":"        self.assertThat(expected, matchers.DictMatches(test_bdm))"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"        for k, v in db_bdm.items():"},{"line_number":275,"context_line":"            field_val \u003d getattr(test_bdm._bdm_obj, k)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_5fd695f3","line":272,"range":{"start_line":271,"start_character":0,"end_line":272,"end_character":65},"in_reply_to":"9f91af0f_b97021a7","updated":"2018-01-05 17:39:56.000000000","message":"Yep. Almost certainly made this change while I was debugging the test and didn\u0027t put it back, but not strictly required.","commit_id":"180d9f3591574c782936e422c44f08ad3d0cd886"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6fb7baafb9b300ade2c00729a35ceb41d9979cc0","unresolved":false,"context_lines":[{"line_number":212,"context_line":"         \u0027delete_on_termination\u0027: True,"},{"line_number":213,"context_line":"         \u0027image_id\u0027: uuids.localimage,"},{"line_number":214,"context_line":"         \u0027disk_bus\u0027: \u0027scsi\u0027,"},{"line_number":215,"context_line":"         \u0027volume_size\u0027: 2,"},{"line_number":216,"context_line":"         \u0027boot_index\u0027: 0})"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    localimage_driver_bdm \u003d {"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_de3e27d9","line":215,"range":{"start_line":215,"start_character":9,"end_line":215,"end_character":26},"updated":"2018-05-09 18:29:09.000000000","message":"This shouldn\u0027t be set as far as I can tell. The API never sets volume_size for a local image BDM.","commit_id":"8521651b5428ae4250478223d47851e92e9da51e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"84fbd8ac71bcbace7a8227ee6c31ab18da3aee53","unresolved":false,"context_lines":[{"line_number":212,"context_line":"         \u0027delete_on_termination\u0027: True,"},{"line_number":213,"context_line":"         \u0027image_id\u0027: uuids.localimage,"},{"line_number":214,"context_line":"         \u0027disk_bus\u0027: \u0027scsi\u0027,"},{"line_number":215,"context_line":"         \u0027volume_size\u0027: 2,"},{"line_number":216,"context_line":"         \u0027boot_index\u0027: 0})"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    localimage_driver_bdm \u003d {"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_e9448b1d","line":215,"range":{"start_line":215,"start_character":9,"end_line":215,"end_character":26},"in_reply_to":"5f7c97a3_de3e27d9","updated":"2018-05-09 18:44:15.000000000","message":"Aha and this is why we don\u0027t get an AttributeError access self._bdm_obj.volume_size:\n\nhttps://github.com/openstack/nova/blob/4ca6581bee2bc7fbb703790b466e99d690f76f14/nova/block_device.py#L80","commit_id":"8521651b5428ae4250478223d47851e92e9da51e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6fb7baafb9b300ade2c00729a35ceb41d9979cc0","unresolved":false,"context_lines":[{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    localimage_driver_bdm \u003d {"},{"line_number":219,"context_line":"        \u0027device_name\u0027: \u0027/dev/sda\u0027,"},{"line_number":220,"context_line":"        \u0027size\u0027: 2,"},{"line_number":221,"context_line":"        \u0027image_id\u0027: uuids.localimage,"},{"line_number":222,"context_line":"        \u0027disk_bus\u0027: \u0027scsi\u0027,"},{"line_number":223,"context_line":"        \u0027boot_index\u0027: 0}"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_5e2a1790","line":220,"range":{"start_line":220,"start_character":8,"end_line":220,"end_character":18},"updated":"2018-05-09 18:29:09.000000000","message":"Should be 0 from what I can tell.","commit_id":"8521651b5428ae4250478223d47851e92e9da51e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6fb7baafb9b300ade2c00729a35ceb41d9979cc0","unresolved":false,"context_lines":[{"line_number":224,"context_line":""},{"line_number":225,"context_line":"    localimage_legacy_driver_bdm \u003d {"},{"line_number":226,"context_line":"        \u0027device_name\u0027: \u0027/dev/sda\u0027,"},{"line_number":227,"context_line":"        \u0027size\u0027: 2,"},{"line_number":228,"context_line":"        \u0027image_id\u0027: uuids.localimage}"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_1e1edf6f","line":227,"range":{"start_line":227,"start_character":8,"end_line":227,"end_character":18},"updated":"2018-05-09 18:29:09.000000000","message":"same","commit_id":"8521651b5428ae4250478223d47851e92e9da51e"}],"nova/virt/block_device.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6fb7baafb9b300ade2c00729a35ceb41d9979cc0","unresolved":false,"context_lines":[{"line_number":222,"context_line":"    managed (created, deleted, resized) directly by the local compute host."},{"line_number":223,"context_line":"    \"\"\""},{"line_number":224,"context_line":"    _proxy_as_attr_inherited \u003d set([\u0027device_name\u0027, \u0027disk_bus\u0027, \u0027image_id\u0027,"},{"line_number":225,"context_line":"                                    \u0027boot_index\u0027])"},{"line_number":226,"context_line":"    _transformed_fields \u003d set([\u0027size\u0027])"},{"line_number":227,"context_line":"    _fields \u003d _transformed_fields | _proxy_as_attr_inherited"},{"line_number":228,"context_line":"    _legacy_fields \u003d set([\u0027device_name\u0027, \u0027size\u0027, \u0027image_id\u0027])"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_3e5abb4e","line":225,"range":{"start_line":225,"start_character":37,"end_line":225,"end_character":47},"updated":"2018-05-09 18:29:09.000000000","message":"This seems kind of weird, shouldn\u0027t this always be 0 for this type of bdm?","commit_id":"8521651b5428ae4250478223d47851e92e9da51e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3e20989780b15502b9de1699cd1cf4aaa5153283","unresolved":false,"context_lines":[{"line_number":222,"context_line":"    managed (created, deleted, resized) directly by the local compute host."},{"line_number":223,"context_line":"    \"\"\""},{"line_number":224,"context_line":"    _proxy_as_attr_inherited \u003d set([\u0027device_name\u0027, \u0027disk_bus\u0027, \u0027image_id\u0027,"},{"line_number":225,"context_line":"                                    \u0027boot_index\u0027])"},{"line_number":226,"context_line":"    _transformed_fields \u003d set([\u0027size\u0027])"},{"line_number":227,"context_line":"    _fields \u003d _transformed_fields | _proxy_as_attr_inherited"},{"line_number":228,"context_line":"    _legacy_fields \u003d set([\u0027device_name\u0027, \u0027size\u0027, \u0027image_id\u0027])"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_a1d8c3ef","line":225,"range":{"start_line":225,"start_character":37,"end_line":225,"end_character":47},"in_reply_to":"5f7c97a3_3e5abb4e","updated":"2018-07-05 08:59:49.000000000","message":"Not sure about this one. I\u0027ll have to see how it\u0027s used later in the series to say for sure","commit_id":"8521651b5428ae4250478223d47851e92e9da51e"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"0ab9963ae230c5cb14ac2550687f5eafa53de0bc","unresolved":false,"context_lines":[{"line_number":222,"context_line":"    managed (created, deleted, resized) directly by the local compute host."},{"line_number":223,"context_line":"    \"\"\""},{"line_number":224,"context_line":"    _proxy_as_attr_inherited \u003d set([\u0027device_name\u0027, \u0027disk_bus\u0027, \u0027image_id\u0027,"},{"line_number":225,"context_line":"                                    \u0027boot_index\u0027])"},{"line_number":226,"context_line":"    _transformed_fields \u003d set([\u0027size\u0027])"},{"line_number":227,"context_line":"    _fields \u003d _transformed_fields | _proxy_as_attr_inherited"},{"line_number":228,"context_line":"    _legacy_fields \u003d set([\u0027device_name\u0027, \u0027size\u0027, \u0027image_id\u0027])"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_1a19f920","line":225,"range":{"start_line":225,"start_character":37,"end_line":225,"end_character":47},"in_reply_to":"5f7c97a3_3e5abb4e","updated":"2018-10-29 17:46:56.000000000","message":"Yes, but I decided not to hardcode it primarily because the implicit assumption might make code harder to read. It\u0027s part of the BDM, we\u0027ve already got it, we already validate it, might as well just use it. There\u0027s also the theoretical possibility we may eventually want to have non-root ephemeral disks initialized from glance image in the future, but mostly it\u0027s for consistency.","commit_id":"8521651b5428ae4250478223d47851e92e9da51e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6fb7baafb9b300ade2c00729a35ceb41d9979cc0","unresolved":false,"context_lines":[{"line_number":223,"context_line":"    \"\"\""},{"line_number":224,"context_line":"    _proxy_as_attr_inherited \u003d set([\u0027device_name\u0027, \u0027disk_bus\u0027, \u0027image_id\u0027,"},{"line_number":225,"context_line":"                                    \u0027boot_index\u0027])"},{"line_number":226,"context_line":"    _transformed_fields \u003d set([\u0027size\u0027])"},{"line_number":227,"context_line":"    _fields \u003d _transformed_fields | _proxy_as_attr_inherited"},{"line_number":228,"context_line":"    _legacy_fields \u003d set([\u0027device_name\u0027, \u0027size\u0027, \u0027image_id\u0027])"},{"line_number":229,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_1e67bf27","line":226,"range":{"start_line":226,"start_character":4,"end_line":226,"end_character":23},"updated":"2018-05-09 18:29:09.000000000","message":"This isn\u0027t used outside of the set logic to set _fields below - is it really necessary? I know most of these special attributes are used in the parent class but this one isn\u0027t.","commit_id":"8521651b5428ae4250478223d47851e92e9da51e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3e20989780b15502b9de1699cd1cf4aaa5153283","unresolved":false,"context_lines":[{"line_number":223,"context_line":"    \"\"\""},{"line_number":224,"context_line":"    _proxy_as_attr_inherited \u003d set([\u0027device_name\u0027, \u0027disk_bus\u0027, \u0027image_id\u0027,"},{"line_number":225,"context_line":"                                    \u0027boot_index\u0027])"},{"line_number":226,"context_line":"    _transformed_fields \u003d set([\u0027size\u0027])"},{"line_number":227,"context_line":"    _fields \u003d _transformed_fields | _proxy_as_attr_inherited"},{"line_number":228,"context_line":"    _legacy_fields \u003d set([\u0027device_name\u0027, \u0027size\u0027, \u0027image_id\u0027])"},{"line_number":229,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_592f7588","line":226,"range":{"start_line":226,"start_character":4,"end_line":226,"end_character":23},"in_reply_to":"5f7c97a3_1e67bf27","updated":"2018-07-05 08:59:49.000000000","message":"Good point. Merged into the below","commit_id":"8521651b5428ae4250478223d47851e92e9da51e"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"0ab9963ae230c5cb14ac2550687f5eafa53de0bc","unresolved":false,"context_lines":[{"line_number":223,"context_line":"    \"\"\""},{"line_number":224,"context_line":"    _proxy_as_attr_inherited \u003d set([\u0027device_name\u0027, \u0027disk_bus\u0027, \u0027image_id\u0027,"},{"line_number":225,"context_line":"                                    \u0027boot_index\u0027])"},{"line_number":226,"context_line":"    _transformed_fields \u003d set([\u0027size\u0027])"},{"line_number":227,"context_line":"    _fields \u003d _transformed_fields | _proxy_as_attr_inherited"},{"line_number":228,"context_line":"    _legacy_fields \u003d set([\u0027device_name\u0027, \u0027size\u0027, \u0027image_id\u0027])"},{"line_number":229,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_9a8189fe","line":226,"range":{"start_line":226,"start_character":4,"end_line":226,"end_character":23},"in_reply_to":"5f7c97a3_1e67bf27","updated":"2018-10-29 17:46:56.000000000","message":"I have no idea where this came from :/ Lost in murky patch history. I probably preferred the aesthetics, but if so it\u0027s now confusing both of us so that would be a mistake. Definitely not required, so I\u0027ll remove it.\n\nIn fact I\u0027m going to remove size entirely (see below).","commit_id":"8521651b5428ae4250478223d47851e92e9da51e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b9b266e692b733ebfaebb21831306169344c816e","unresolved":false,"context_lines":[{"line_number":225,"context_line":"                                    \u0027boot_index\u0027])"},{"line_number":226,"context_line":"    _transformed_fields \u003d set([\u0027size\u0027])"},{"line_number":227,"context_line":"    _fields \u003d _transformed_fields | _proxy_as_attr_inherited"},{"line_number":228,"context_line":"    _legacy_fields \u003d set([\u0027device_name\u0027, \u0027size\u0027, \u0027image_id\u0027])"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    _update_on_save \u003d {\u0027disk_bus\u0027: None,"},{"line_number":231,"context_line":"                       \u0027device_name\u0027: None}"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_e917ab50","line":228,"range":{"start_line":228,"start_character":4,"end_line":228,"end_character":18},"updated":"2018-05-09 19:18:41.000000000","message":"We shouldn\u0027t really need this at all should we? Are there any virt drivers that rely on needing the legacy format for this thing? I think it\u0027s related to why this test in a later patch is failing:\n\nhttp://logs.openstack.org/29/529029/12/check/openstack-tox-py27/1f5fd0f/testr_results.html.gz","commit_id":"8521651b5428ae4250478223d47851e92e9da51e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3e20989780b15502b9de1699cd1cf4aaa5153283","unresolved":false,"context_lines":[{"line_number":225,"context_line":"                                    \u0027boot_index\u0027])"},{"line_number":226,"context_line":"    _transformed_fields \u003d set([\u0027size\u0027])"},{"line_number":227,"context_line":"    _fields \u003d _transformed_fields | _proxy_as_attr_inherited"},{"line_number":228,"context_line":"    _legacy_fields \u003d set([\u0027device_name\u0027, \u0027size\u0027, \u0027image_id\u0027])"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    _update_on_save \u003d {\u0027disk_bus\u0027: None,"},{"line_number":231,"context_line":"                       \u0027device_name\u0027: None}"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_01d097c7","line":228,"range":{"start_line":228,"start_character":4,"end_line":228,"end_character":18},"in_reply_to":"5f7c97a3_e917ab50","updated":"2018-07-05 08:59:49.000000000","message":"Done","commit_id":"8521651b5428ae4250478223d47851e92e9da51e"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"0ab9963ae230c5cb14ac2550687f5eafa53de0bc","unresolved":false,"context_lines":[{"line_number":225,"context_line":"                                    \u0027boot_index\u0027])"},{"line_number":226,"context_line":"    _transformed_fields \u003d set([\u0027size\u0027])"},{"line_number":227,"context_line":"    _fields \u003d _transformed_fields | _proxy_as_attr_inherited"},{"line_number":228,"context_line":"    _legacy_fields \u003d set([\u0027device_name\u0027, \u0027size\u0027, \u0027image_id\u0027])"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    _update_on_save \u003d {\u0027disk_bus\u0027: None,"},{"line_number":231,"context_line":"                       \u0027device_name\u0027: None}"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_1af1f995","line":228,"range":{"start_line":228,"start_character":4,"end_line":228,"end_character":18},"in_reply_to":"5f7c97a3_e917ab50","updated":"2018-10-29 17:46:56.000000000","message":"Good point. powervm and xenapi both still expect legacy block device info, but of course neither of them will be looking for DriverLocalImageBlockDevice. This can go.\n\nIncidentally, the bar to entirely removing the legacy cruft looks pretty low right now. I\u0027d be interested in a follow up series to remove it entirely if we fixed up the last 2 holdouts.","commit_id":"8521651b5428ae4250478223d47851e92e9da51e"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"0ab9963ae230c5cb14ac2550687f5eafa53de0bc","unresolved":false,"context_lines":[{"line_number":227,"context_line":"    _fields \u003d _transformed_fields | _proxy_as_attr_inherited"},{"line_number":228,"context_line":"    _legacy_fields \u003d set([\u0027device_name\u0027, \u0027size\u0027, \u0027image_id\u0027])"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    _update_on_save \u003d {\u0027disk_bus\u0027: None,"},{"line_number":231,"context_line":"                       \u0027device_name\u0027: None}"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"    def _transform(self):"},{"line_number":234,"context_line":"        if not block_device.new_format_is_local_image(self._bdm_obj):"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_ba16c554","line":231,"range":{"start_line":230,"start_character":0,"end_line":231,"end_character":43},"updated":"2018-10-29 17:46:56.000000000","message":"These are also no longer required, as they\u0027re both proxied attributes.\n\nIn fact, all we\u0027ve got left here is a stripped down proxy for the actual BDM object, which is interesting.","commit_id":"8521651b5428ae4250478223d47851e92e9da51e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6fb7baafb9b300ade2c00729a35ceb41d9979cc0","unresolved":false,"context_lines":[{"line_number":234,"context_line":"        if not block_device.new_format_is_local_image(self._bdm_obj):"},{"line_number":235,"context_line":"            raise _InvalidType"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        self[\u0027size\u0027] \u003d self._bdm_obj.volume_size or 0"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"class DriverSwapBlockDevice(DriverBlockDevice):"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_be9fab01","line":237,"range":{"start_line":237,"start_character":23,"end_line":237,"end_character":48},"updated":"2018-05-09 18:29:09.000000000","message":"This looks a bit weird, but as far as I can tell is never set for local image BDMs. This is where the API creates them during server create:\n\nhttps://github.com/openstack/nova/blob/4ca6581bee2bc7fbb703790b466e99d690f76f14/nova/block_device.py#L254\n\nAnd this won\u0027t handle local image BDMs:\n\nhttps://github.com/openstack/nova/blob/4ca6581bee2bc7fbb703790b466e99d690f76f14/nova/compute/api.py#L1194","commit_id":"8521651b5428ae4250478223d47851e92e9da51e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3e20989780b15502b9de1699cd1cf4aaa5153283","unresolved":false,"context_lines":[{"line_number":234,"context_line":"        if not block_device.new_format_is_local_image(self._bdm_obj):"},{"line_number":235,"context_line":"            raise _InvalidType"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        self[\u0027size\u0027] \u003d self._bdm_obj.volume_size or 0"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"class DriverSwapBlockDevice(DriverBlockDevice):"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_f920c19c","line":237,"range":{"start_line":237,"start_character":23,"end_line":237,"end_character":48},"in_reply_to":"5f7c97a3_be9fab01","updated":"2018-07-05 08:59:49.000000000","message":"Done","commit_id":"8521651b5428ae4250478223d47851e92e9da51e"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"0ab9963ae230c5cb14ac2550687f5eafa53de0bc","unresolved":false,"context_lines":[{"line_number":234,"context_line":"        if not block_device.new_format_is_local_image(self._bdm_obj):"},{"line_number":235,"context_line":"            raise _InvalidType"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        self[\u0027size\u0027] \u003d self._bdm_obj.volume_size or 0"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"class DriverSwapBlockDevice(DriverBlockDevice):"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_c26ab3eb","line":237,"range":{"start_line":237,"start_character":23,"end_line":237,"end_character":48},"in_reply_to":"5f7c97a3_be9fab01","updated":"2018-10-29 17:46:56.000000000","message":"Hmm. Doesn\u0027t matter for now as I\u0027m not using it, but it\u0027s weird that\u0027s not set. I\u0027ll remove it.","commit_id":"8521651b5428ae4250478223d47851e92e9da51e"}]}
