)]}'
{"nova/image/download/rbd.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"6856c0333a726aa80460687ccd3dea54e7bba82e","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"CONF \u003d cfg.CONF"},{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class RBDTransfer(xfer_base.TransferBase):"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def download(self, context, url_parts, dst_file, metadata, **kwargs):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a1a9d01_f762ce15","line":26,"updated":"2015-10-03 06:35:21.000000000","message":"missing new line","commit_id":"2fc4322ec0782231186fa80e679749d55f860b20"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"6856c0333a726aa80460687ccd3dea54e7bba82e","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    def download(self, context, url_parts, dst_file, metadata, **kwargs):"},{"line_number":30,"context_line":"        Rbd \u003d imagebackend.Rbd(path \u003d url_parts.path)"},{"line_number":31,"context_line":"        Rbd.export_image(url_parts, dst_file)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"def get_download_handler(**kwargs):"},{"line_number":34,"context_line":"    return RBDTransfer()"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a1a9d01_57a5ba44","line":32,"updated":"2015-10-03 06:35:21.000000000","message":"missing new line - but i guess pep8 will tell you that","commit_id":"2fc4322ec0782231186fa80e679749d55f860b20"}],"nova/image/glance.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"6856c0333a726aa80460687ccd3dea54e7bba82e","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                default\u003d[],"},{"line_number":72,"context_line":"                help\u003d\u0027A list of url scheme that can be downloaded directly \u0027"},{"line_number":73,"context_line":"                     \u0027via the direct_url.  Currently supported schemes: \u0027"},{"line_number":74,"context_line":"                     \u0027[file, rbd].\u0027),"},{"line_number":75,"context_line":"    ]"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a1a9d01_17666229","line":74,"updated":"2015-10-03 06:35:21.000000000","message":"please add a DocImpact flag to the commit message","commit_id":"2fc4322ec0782231186fa80e679749d55f860b20"}],"nova/virt/libvirt/storage/rbd_utils.py":[{"author":{"_account_id":1812,"name":"p-draigbrady","email":"P@draigBrady.com","username":"p-draigbrady"},"change_message_id":"d1151f0b24c973febb1a25451bd40ca4acfc672f","unresolved":false,"context_lines":[{"line_number":285,"context_line":"        :image_url: Image URL in form \u0027/\u003cpool\u003e/\u003cimage\u003e/\u003csnap\u003e\u0027"},{"line_number":286,"context_line":"        :dst_path:  Full path to local file"},{"line_number":287,"context_line":"        \"\"\""},{"line_number":288,"context_line":"        pool, image, snapshot  \u003d image_url.path[1:].split(\u0027/\u0027)"},{"line_number":289,"context_line":"        if self.exists(image, pool\u003dpool, snapshot\u003dsnapshot):"},{"line_number":290,"context_line":"            args  \u003d self.ceph_args()"},{"line_number":291,"context_line":"            args +\u003d[\u0027--pool\u0027, pool, \u0027--snap\u0027, snapshot, image, dst_path]"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_2873294f","line":288,"updated":"2015-10-02 11:27:41.000000000","message":"Note there is an rbd_utils.RBDDriver.parse_url() method that might be useful to reuse for unquoting etc.?","commit_id":"78e564cd2832f4cef2ca633b14ab8b74e12c7ee0"},{"author":{"_account_id":1812,"name":"p-draigbrady","email":"P@draigBrady.com","username":"p-draigbrady"},"change_message_id":"d1151f0b24c973febb1a25451bd40ca4acfc672f","unresolved":false,"context_lines":[{"line_number":290,"context_line":"            args  \u003d self.ceph_args()"},{"line_number":291,"context_line":"            args +\u003d[\u0027--pool\u0027, pool, \u0027--snap\u0027, snapshot, image, dst_path]"},{"line_number":292,"context_line":"            LOG.info(\u0027Directly downloading image %s@%s using rbd export\u0027 % (image,snapshot) )"},{"line_number":293,"context_line":"            utils.execute(\u0027rbd\u0027, \u0027export\u0027, *args)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        else:"},{"line_number":296,"context_line":"            LOG.warn(_(\"RBD image %s@%s not found\" % (image,snapshot) ))"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_081ae517","line":293,"updated":"2015-10-02 11:27:41.000000000","message":"Seems like there should be explicit error handling here?","commit_id":"78e564cd2832f4cef2ca633b14ab8b74e12c7ee0"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"6856c0333a726aa80460687ccd3dea54e7bba82e","unresolved":false,"context_lines":[{"line_number":289,"context_line":"        if self.exists(image, pool\u003dpool, snapshot\u003dsnapshot):"},{"line_number":290,"context_line":"            args  \u003d self.ceph_args()"},{"line_number":291,"context_line":"            args +\u003d[\u0027--pool\u0027, pool, \u0027--snap\u0027, snapshot, image, dst_path]"},{"line_number":292,"context_line":"            LOG.info(\u0027Directly downloading image %s@%s using rbd export\u0027 % (image,snapshot) )"},{"line_number":293,"context_line":"            try:"},{"line_number":294,"context_line":"                utils.execute(\u0027rbd\u0027, \u0027export\u0027, *args)"},{"line_number":295,"context_line":"            except Exception as ex:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a1a9d01_977272e2","line":292,"updated":"2015-10-03 06:35:21.000000000","message":"missing translation _LI","commit_id":"2fc4322ec0782231186fa80e679749d55f860b20"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"6856c0333a726aa80460687ccd3dea54e7bba82e","unresolved":false,"context_lines":[{"line_number":293,"context_line":"            try:"},{"line_number":294,"context_line":"                utils.execute(\u0027rbd\u0027, \u0027export\u0027, *args)"},{"line_number":295,"context_line":"            except Exception as ex:"},{"line_number":296,"context_line":"                LOG.error(\u0027RBD image export failed: %s\u0027 % ex )"},{"line_number":297,"context_line":"                raise"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a1a9d01_37812690","line":296,"updated":"2015-10-03 06:35:21.000000000","message":"_LE","commit_id":"2fc4322ec0782231186fa80e679749d55f860b20"}]}
