)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7ce909bc2f0636fab3ee1897aea0ba1e64ab73bb","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Alternatively this could be implemented without a new parameter by"},{"line_number":20,"context_line":"calling into Ceph using os_brick to get the new size of the volume."},{"line_number":21,"context_line":"This would make the LibvirtNetVolumeDriver Ceph specific."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"This also extends the logic to get the device_path for extending volumes"},{"line_number":24,"context_line":"in the libvirt driver. This is necessary as network volumes don\u0027t have"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3f79a3b5_9a88461a","line":21,"updated":"2018-12-10 23:41:13.000000000","message":"OK, so it looks like this is the key difference between the implementation proposed in the past from Jose and this one.","commit_id":"9332d9b6d2aa1a02e858926f94bbdf8df479302e"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"4eeec2fc5e141effc73f313cfe3fcf19ce45c82c","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Extend volume for libvirt network volumes (RBD)"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implement support for extending attached volumes using the libvirt"},{"line_number":10,"context_line":"network volume driver."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This adds a new parameter \"requested_size\" to the extend_volume method."},{"line_number":13,"context_line":"This is necessary because the new volume size can not be detected by"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5fc1f717_2747734e","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":22},"updated":"2019-03-06 15:08:04.000000000","message":"There\u0027s no mention of when support for resizing attached rbd disks was actually added in Libvirt, before I go digging do you know when that was and is it before the current MIN_LIBVIRT_VERSION of 3.0.0?","commit_id":"cd3fb34e85825b4a2ff81b1e82fcf05beaae56fc"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"91d3573633bca88c0e29f6593776670cf36ecb30","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Extend volume for libvirt network volumes (RBD)"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implement support for extending attached volumes using the libvirt"},{"line_number":10,"context_line":"network volume driver."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This adds a new parameter \"requested_size\" to the extend_volume method."},{"line_number":13,"context_line":"This is necessary because the new volume size can not be detected by"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5fc1f717_27bc5304","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":22},"in_reply_to":"5fc1f717_2747734e","updated":"2019-03-06 15:13:15.000000000","message":"Apologies, looks like this landed with the initial support for rbd way back in 0.10.0.","commit_id":"cd3fb34e85825b4a2ff81b1e82fcf05beaae56fc"}],"nova/compute/manager.py":[{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"17eb797453382b95875625c87acf0323b75d4e96","unresolved":false,"context_lines":[{"line_number":8049,"context_line":"        try:"},{"line_number":8050,"context_line":"            self.driver.extend_volume(connection_info,"},{"line_number":8051,"context_line":"                                      instance,"},{"line_number":8052,"context_line":"                                      bdm.volume_size * pow(1024, 3))"},{"line_number":8053,"context_line":"        except Exception as ex:"},{"line_number":8054,"context_line":"            LOG.warning(\u0027Extend volume failed, \u0027"},{"line_number":8055,"context_line":"                        \u0027volume_id\u003d%(volume_id)s, reason: %(msg)s\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_cdcfc955","line":8052,"range":{"start_line":8052,"start_character":56,"end_line":8052,"end_character":68},"updated":"2019-03-05 17:50:22.000000000","message":"units.Gi","commit_id":"9332d9b6d2aa1a02e858926f94bbdf8df479302e"}],"nova/virt/driver.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"86aa1c887106fa51b61c17b4ba647ab8d5f26184","unresolved":false,"context_lines":[{"line_number":522,"context_line":"        \"\"\""},{"line_number":523,"context_line":"        raise NotImplementedError()"},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"    def extend_volume(self, connection_info, instance, requested_size):"},{"line_number":526,"context_line":"        \"\"\"Extend the disk attached to the instance."},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        :param dict connection_info:"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_16408207","line":525,"updated":"2019-03-05 19:36:27.000000000","message":"This compute driver interface change will break a couple of out of tree drivers, which we don\u0027t have to block for but generally as a courtesy you should send an email to the openstack-discuss mailing list, tag with [nova] in the subject and mention the proposed interface change since at least powervm and hyperv drivers out of tree will need to adjust for this change as well.","commit_id":"9332d9b6d2aa1a02e858926f94bbdf8df479302e"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"17eb797453382b95875625c87acf0323b75d4e96","unresolved":false,"context_lines":[{"line_number":1621,"context_line":""},{"line_number":1622,"context_line":"    def extend_volume(self, connection_info, instance, requested_size):"},{"line_number":1623,"context_line":"        try:"},{"line_number":1624,"context_line":"            new_size \u003d self._extend_volume(connection_info, instance,"},{"line_number":1625,"context_line":"                                           requested_size)"},{"line_number":1626,"context_line":"        except NotImplementedError:"},{"line_number":1627,"context_line":"            raise exception.ExtendVolumeNotSupported()"},{"line_number":1628,"context_line":""},{"line_number":1629,"context_line":"        # Resize the device in QEMU so its size is updated and"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_cd87c9b6","line":1626,"range":{"start_line":1624,"start_character":0,"end_line":1626,"end_character":1},"updated":"2019-03-05 17:50:22.000000000","message":"Suggestion: Seems a bit weird (and noisy) to pass this in when nothing actually uses it except net, which just gives it back to us. I wonder if, instead, net could raise (or return a sentinel indicating) NotRequired? Or perhaps we could just ignore the returned value and use requested_size in all cases?\n\nNot a big deal as you\u0027ve already done the donkey work, though.","commit_id":"9332d9b6d2aa1a02e858926f94bbdf8df479302e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"78adc2eec1f9bc4b5290d5dfb5749281e3615719","unresolved":false,"context_lines":[{"line_number":1621,"context_line":""},{"line_number":1622,"context_line":"    def extend_volume(self, connection_info, instance, requested_size):"},{"line_number":1623,"context_line":"        try:"},{"line_number":1624,"context_line":"            new_size \u003d self._extend_volume(connection_info, instance,"},{"line_number":1625,"context_line":"                                           requested_size)"},{"line_number":1626,"context_line":"        except NotImplementedError:"},{"line_number":1627,"context_line":"            raise exception.ExtendVolumeNotSupported()"},{"line_number":1628,"context_line":""},{"line_number":1629,"context_line":"        # Resize the device in QEMU so its size is updated and"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_aeb7b8d8","line":1626,"range":{"start_line":1624,"start_character":0,"end_line":1626,"end_character":1},"in_reply_to":"5fc1f717_27e1b39b","updated":"2019-03-06 18:43:18.000000000","message":"Note to self: \"all of the volume drivers\" i.e. the drivers under nova/virt/libvirt/volume/","commit_id":"9332d9b6d2aa1a02e858926f94bbdf8df479302e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ca5c16427e70b1b46f65c65e93b0413fe9d2d88f","unresolved":false,"context_lines":[{"line_number":1621,"context_line":""},{"line_number":1622,"context_line":"    def extend_volume(self, connection_info, instance, requested_size):"},{"line_number":1623,"context_line":"        try:"},{"line_number":1624,"context_line":"            new_size \u003d self._extend_volume(connection_info, instance,"},{"line_number":1625,"context_line":"                                           requested_size)"},{"line_number":1626,"context_line":"        except NotImplementedError:"},{"line_number":1627,"context_line":"            raise exception.ExtendVolumeNotSupported()"},{"line_number":1628,"context_line":""},{"line_number":1629,"context_line":"        # Resize the device in QEMU so its size is updated and"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_27e1b39b","line":1626,"range":{"start_line":1624,"start_character":0,"end_line":1626,"end_character":1},"in_reply_to":"5fc1f717_27f0d390","updated":"2019-03-06 15:31:50.000000000","message":"Anyway, given this is already implemented (like mdbooth says) and we\u0027re \u003c24 hours to feature freeze for stein, I don\u0027t want to hold this up on something we could refactor later.","commit_id":"9332d9b6d2aa1a02e858926f94bbdf8df479302e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"bd87902a1bbbdad99e4a8d7bd679056b811820cf","unresolved":false,"context_lines":[{"line_number":1621,"context_line":""},{"line_number":1622,"context_line":"    def extend_volume(self, connection_info, instance, requested_size):"},{"line_number":1623,"context_line":"        try:"},{"line_number":1624,"context_line":"            new_size \u003d self._extend_volume(connection_info, instance,"},{"line_number":1625,"context_line":"                                           requested_size)"},{"line_number":1626,"context_line":"        except NotImplementedError:"},{"line_number":1627,"context_line":"            raise exception.ExtendVolumeNotSupported()"},{"line_number":1628,"context_line":""},{"line_number":1629,"context_line":"        # Resize the device in QEMU so its size is updated and"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_27f0d390","line":1626,"range":{"start_line":1624,"start_character":0,"end_line":1626,"end_character":1},"in_reply_to":"5fc1f717_cd87c9b6","updated":"2019-03-06 15:30:57.000000000","message":"I agree it would be nice to not have to change the interface on all of the volume drivers. The ABI would change, but that could be documented in the base volume driver extend_volume docstring and some kind of handling could be added here.","commit_id":"9332d9b6d2aa1a02e858926f94bbdf8df479302e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"bd87902a1bbbdad99e4a8d7bd679056b811820cf","unresolved":false,"context_lines":[{"line_number":1636,"context_line":"                if \u0027device_path\u0027 in connection_info[\u0027data\u0027]:"},{"line_number":1637,"context_line":"                    disk_path \u003d connection_info[\u0027data\u0027][\u0027device_path\u0027]"},{"line_number":1638,"context_line":"                else:"},{"line_number":1639,"context_line":"                    # Some drivers (eg. net) don\u0027t put the device_path"},{"line_number":1640,"context_line":"                    # into the connection_info. Match disks by their serial"},{"line_number":1641,"context_line":"                    # number instead"},{"line_number":1642,"context_line":"                    serial \u003d connection_info[\u0027serial\u0027]"},{"line_number":1643,"context_line":"                    disk \u003d next(iter(["},{"line_number":1644,"context_line":"                        d for d in guest.get_all_disks()"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_e72f2bf4","line":1641,"range":{"start_line":1639,"start_character":20,"end_line":1641,"end_character":36},"updated":"2019-03-06 15:30:57.000000000","message":"Not sure why you removed this comment but it\u0027s good to have here.","commit_id":"9332d9b6d2aa1a02e858926f94bbdf8df479302e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"86aa1c887106fa51b61c17b4ba647ab8d5f26184","unresolved":false,"context_lines":[{"line_number":1639,"context_line":"                    # Some drivers (eg. net) don\u0027t put the device_path"},{"line_number":1640,"context_line":"                    # into the connection_info. Match disks by their serial"},{"line_number":1641,"context_line":"                    # number instead"},{"line_number":1642,"context_line":"                    serial \u003d connection_info[\u0027serial\u0027]"},{"line_number":1643,"context_line":"                    disk \u003d next(iter(["},{"line_number":1644,"context_line":"                        d for d in guest.get_all_disks()"},{"line_number":1645,"context_line":"                        if d.serial \u003d\u003d serial"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_963472e0","line":1642,"range":{"start_line":1642,"start_character":29,"end_line":1642,"end_character":54},"updated":"2019-03-05 19:36:27.000000000","message":"You should use driver_block_device.get_volume_id(connection_info) here.","commit_id":"9332d9b6d2aa1a02e858926f94bbdf8df479302e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"86aa1c887106fa51b61c17b4ba647ab8d5f26184","unresolved":false,"context_lines":[{"line_number":1644,"context_line":"                        d for d in guest.get_all_disks()"},{"line_number":1645,"context_line":"                        if d.serial \u003d\u003d serial"},{"line_number":1646,"context_line":"                    ]), None)"},{"line_number":1647,"context_line":"                    if not disk:"},{"line_number":1648,"context_line":"                        raise exception.VolumeNotFound(volume_id\u003dserial)"},{"line_number":1649,"context_line":"                    disk_path \u003d disk.target_dev"},{"line_number":1650,"context_line":""},{"line_number":1651,"context_line":"                LOG.debug(\u0027resizing block device %(dev)s to %(size)u kb\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_56e84a15","line":1648,"range":{"start_line":1647,"start_character":20,"end_line":1648,"end_character":72},"updated":"2019-03-05 19:36:27.000000000","message":"Please add a unit test for this case.","commit_id":"9332d9b6d2aa1a02e858926f94bbdf8df479302e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d61317f90e7cd4770e64fb662fa4c26bc27f02ae","unresolved":false,"context_lines":[{"line_number":1633,"context_line":"            state \u003d guest.get_power_state(self._host)"},{"line_number":1634,"context_line":"            active_state \u003d state in (power_state.RUNNING, power_state.PAUSED)"},{"line_number":1635,"context_line":"            if active_state:"},{"line_number":1636,"context_line":"                if \u0027device_path\u0027 in connection_info[\u0027data\u0027]:"},{"line_number":1637,"context_line":"                    disk_path \u003d connection_info[\u0027data\u0027][\u0027device_path\u0027]"},{"line_number":1638,"context_line":"                else:"},{"line_number":1639,"context_line":"                    volume_id \u003d driver_block_device.get_volume_id("}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_c7946feb","line":1636,"updated":"2019-03-06 15:32:32.000000000","message":"Let\u0027s add the comment back in that was dropped in PS5:\n\n# Some drivers (eg. net) don\u0027t put the device_path\n# into the connection_info. Match disks by their serial\n# number instead","commit_id":"cd3fb34e85825b4a2ff81b1e82fcf05beaae56fc"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"3a39fc207a1ea4775f3f239505e6f9773051435f","unresolved":false,"context_lines":[{"line_number":1638,"context_line":"                else:"},{"line_number":1639,"context_line":"                    volume_id \u003d driver_block_device.get_volume_id("},{"line_number":1640,"context_line":"                        connection_info)"},{"line_number":1641,"context_line":"                    disk \u003d next(iter(["},{"line_number":1642,"context_line":"                        d for d in guest.get_all_disks()"},{"line_number":1643,"context_line":"                        if d.serial \u003d\u003d volume_id"},{"line_number":1644,"context_line":"                    ]), None)"},{"line_number":1645,"context_line":"                    if not disk:"},{"line_number":1646,"context_line":"                        raise exception.VolumeNotFound(volume_id\u003dvolume_id)"},{"line_number":1647,"context_line":"                    disk_path \u003d disk.target_dev"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_a7afe392","line":1644,"range":{"start_line":1641,"start_character":20,"end_line":1644,"end_character":29},"updated":"2019-03-06 15:24:09.000000000","message":"nit - this could be useful elsewhere and could live in nova/virt/libvirt/guest.py","commit_id":"cd3fb34e85825b4a2ff81b1e82fcf05beaae56fc"}],"nova/virt/libvirt/volume/volume.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"86aa1c887106fa51b61c17b4ba647ab8d5f26184","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        pass"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    def extend_volume(self, connection_info, instance, requested_size):"},{"line_number":136,"context_line":"        \"\"\"Extend the volume.\"\"\""},{"line_number":137,"context_line":"        raise NotImplementedError()"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_966232d8","line":136,"range":{"start_line":136,"start_character":8,"end_line":136,"end_character":32},"updated":"2019-03-05 19:36:27.000000000","message":"Can you please flesh out this docstring with the descriptions of the parameters and return value? Of note would be that requested_size is not used by all volume drivers.","commit_id":"9332d9b6d2aa1a02e858926f94bbdf8df479302e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"bd87902a1bbbdad99e4a8d7bd679056b811820cf","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        :param: connection_info: connection information about the volume"},{"line_number":139,"context_line":"            that has been extended."},{"line_number":140,"context_line":"        :param: instance: instance connected to the newly extended volume."},{"line_number":141,"context_line":"        :param: requested_size: new extended size for the volume to be"},{"line_number":142,"context_line":"            extended."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        Note: the requested_size parameter is not used by all volume drivers"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_c778eff9","line":141,"range":{"start_line":141,"start_character":45,"end_line":141,"end_character":49},"updated":"2019-03-06 15:30:57.000000000","message":"\"size (in bytes)\"\n\nright?","commit_id":"cd3fb34e85825b4a2ff81b1e82fcf05beaae56fc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"bd87902a1bbbdad99e4a8d7bd679056b811820cf","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        :param: instance: instance connected to the newly extended volume."},{"line_number":141,"context_line":"        :param: requested_size: new extended size for the volume to be"},{"line_number":142,"context_line":"            extended."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        Note: the requested_size parameter is not used by all volume drivers"},{"line_number":145,"context_line":"        \"\"\""},{"line_number":146,"context_line":"        raise NotImplementedError()"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_0776f707","line":143,"updated":"2019-03-06 15:30:57.000000000","message":"Should have a :returns: in here since it returns the new size to use when resizing the disk in QEMU.","commit_id":"cd3fb34e85825b4a2ff81b1e82fcf05beaae56fc"}],"releasenotes/notes/bp-extend-in-use-rbd-volumes-8f334ce2a06ee247.yaml":[{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"3a39fc207a1ea4775f3f239505e6f9773051435f","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":"    Adds support for extending attached volumes using the libvirt network"},{"line_number":5,"context_line":"    volume driver."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5fc1f717_8783c704","line":5,"range":{"start_line":4,"start_character":4,"end_line":5,"end_character":18},"updated":"2019-03-06 15:24:09.000000000","message":"nit - I\u0027d specifically call out that this is mostly focused on rbd volumes.","commit_id":"cd3fb34e85825b4a2ff81b1e82fcf05beaae56fc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"bd87902a1bbbdad99e4a8d7bd679056b811820cf","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":"    Adds support for extending attached volumes using the libvirt network"},{"line_number":5,"context_line":"    volume driver."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5fc1f717_274c53c6","line":5,"range":{"start_line":4,"start_character":4,"end_line":5,"end_character":18},"in_reply_to":"5fc1f717_8783c704","updated":"2019-03-06 15:30:57.000000000","message":"Definitely - ``rbd`` volume type since people know know what the \"network volume driver\" is, but they know what the volume types are.","commit_id":"cd3fb34e85825b4a2ff81b1e82fcf05beaae56fc"}]}
