[Yum-devel] [PATCH] Fix the "file:// && copy_local=0 && async" case. BZ 837018.
James Antill
james.antill at redhat.com
Fri Jul 13 15:19:27 UTC 2012
On Thu, 2012-07-12 at 17:47 +0200, Zdeněk Pavlas wrote:
> urlgrab() should return url instead of filename if copying
> was skipped, but the async path cannot alter the return value,
> and we can't detect file:// URLs until we have selected a mirror.
>
> Use 1st mirror temporarily and call the non-mirrored urlgrab()
> to handle this special case immediately. Otherwise, request
> is queued and the filename arg is returned.
> ---
> urlgrabber/mirror.py | 18 +++++++++---------
> 1 files changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/urlgrabber/mirror.py b/urlgrabber/mirror.py
> index d699b61..f2b5288 100644
> --- a/urlgrabber/mirror.py
> +++ b/urlgrabber/mirror.py
> @@ -408,15 +408,15 @@ class MirrorGroup:
>
> def urlgrab(self, url, filename=None, **kwargs):
> if kwargs.get('async'):
> - opts = self.grabber.opts.derive(**kwargs)
> - opts.mirror_group = self, set()
> - opts.relative_url = _to_utf8(url)
> -
> - opts.url = 'http://tbd'
> - opts.filename = filename
> - opts.size = int(opts.size or 0)
> - _async_queue.append(opts)
> - return filename
> + return self.grabber.urlgrab(
> + # use 1st mirror to handle the file:// && copy_local==0 case
> + self._join_url(self.mirrors[0]['mirror'], url),
> + filename,
> + # enable mirror failovers in async path
> + mirror_group = (self, set()),
> + relative_url = url,
> + **kwargs
> + )
If we just delete this whole block it does:
>
> kw = dict(kwargs)
> kw['filename'] = filename
func = 'urlgrab'
try:
return self._mirror_try(func, url, kw)
except URLGrabError, e:
...and mirror_try looks like it does something very similar to the new
code above ... so can we just delete it?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part
URL: <http://lists.baseurl.org/pipermail/yum-devel/attachments/20120713/4555e0fc/attachment.asc>
More information about the Yum-devel
mailing list