)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"3c4b6e08771320c60e6e5477a1211e224bcc6124","unresolved":false,"context_lines":[{"line_number":13,"context_line":"a small amount of metadata will be stored in OMAP. Currently the"},{"line_number":14,"context_line":"driver implicitly uses the default value of None. In the case where"},{"line_number":15,"context_line":"the clone goes back into the image pool the data pool is inherited from the"},{"line_number":16,"context_line":"parent."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I4ef8c1afd08f29627718e008c9b1fdbba121d1df"},{"line_number":19,"context_line":"Implements: blueprint rbd-erasure-coding"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f7c97a3_ed4e4ec0","line":16,"updated":"2018-07-10 20:30:33.000000000","message":"Note to reviewers: the way this works is, the operator can create erasure coded pools to use with nova [1] and then nova just needs to pass the data pool when creating images [2].\n\nAnd upon discussing with jmlowe on IRC, we can safely assume that luminous is being used with the rocky release (and that passing the data_pool kwarg is safe), as packaging since queens has required the luminous version for ceph. We can see this in the ceph job results on this change.\n\n[1] http://docs.ceph.com/docs/luminous/rados/operations/erasure-code/#creating-a-sample-erasure-coded-pool\n\n[2] http://docs.ceph.com/docs/luminous/rados/operations/erasure-code/#erasure-coding-with-overwrites","commit_id":"ee4b1702eb496d43abcacb27bf92ee93cf4a81aa"}],"nova/virt/libvirt/imagebackend.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"02b6f15c50a4adefad77ac0eda6ab76244b71a04","unresolved":false,"context_lines":[{"line_number":925,"context_line":"            if self.driver.is_cloneable(location, image_meta):"},{"line_number":926,"context_line":"                LOG.debug(\u0027Selected location: %(loc)s\u0027, {\u0027loc\u0027: location})"},{"line_number":927,"context_line":"                return self.driver.clone(location, self.rbd_name,"},{"line_number":928,"context_line":"                                         self.data_pool)"},{"line_number":929,"context_line":""},{"line_number":930,"context_line":"        reason \u003d _(\u0027No image locations are accessible\u0027)"},{"line_number":931,"context_line":"        raise exception.ImageUnacceptable(image_id\u003dimage_id_or_uri,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_0a681df2","line":928,"range":{"start_line":928,"start_character":41,"end_line":928,"end_character":55},"updated":"2018-07-12 14:29:48.000000000","message":"Is this the right arg? Shouldn\u0027t this be data_pool\u003dself.data_pool?","commit_id":"ee4b1702eb496d43abcacb27bf92ee93cf4a81aa"}],"nova/virt/libvirt/storage/rbd_utils.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"02b6f15c50a4adefad77ac0eda6ab76244b71a04","unresolved":false,"context_lines":[{"line_number":234,"context_line":"        with RADOSClient(self, str(pool)) as src_client:"},{"line_number":235,"context_line":"            with RADOSClient(self, dest_pool) as dest_client:"},{"line_number":236,"context_line":"                try:"},{"line_number":237,"context_line":"                    RbdProxy().clone(src_client.ioctx,"},{"line_number":238,"context_line":"                                     image,"},{"line_number":239,"context_line":"                                     snapshot,"},{"line_number":240,"context_line":"                                     dest_client.ioctx,"},{"line_number":241,"context_line":"                                     str(dest_name),"},{"line_number":242,"context_line":"                                     features\u003dsrc_client.features,"},{"line_number":243,"context_line":"                                     data_pool\u003ddata_pool)"},{"line_number":244,"context_line":"                except rbd.PermissionError:"},{"line_number":245,"context_line":"                    raise exception.Forbidden(_(\u0027no write permission on \u0027"},{"line_number":246,"context_line":"                                                \u0027storage pool %s\u0027) % dest_pool)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_6a4c319d","line":243,"range":{"start_line":237,"start_character":20,"end_line":243,"end_character":57},"updated":"2018-07-12 14:29:48.000000000","message":"Is there a minimum version of rbd for the data_pool kwarg to show up in the python bindings?","commit_id":"ee4b1702eb496d43abcacb27bf92ee93cf4a81aa"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"266fecc225571dfd0a82d775ee650b8687e0e3a8","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        except rbd.ImageNotFound:"},{"line_number":274,"context_line":"            raise exception.ImageUnacceptable(_(\"no usable parent snapshot \""},{"line_number":275,"context_line":"                                                \"for volume %s\") % volume)"},{"line_number":276,"context_line":"    def data_pool_info(self, volume, pool):"},{"line_number":277,"context_line":"        \"\"\"Returns the data pool of a volume"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"        :volume: Name of RBD object"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_dded5ab8","line":276,"updated":"2018-07-10 03:50:06.000000000","message":"A blank line should be there before starting a new function.","commit_id":"ee4b1702eb496d43abcacb27bf92ee93cf4a81aa"}]}
