[Yum-devel] External Downloader support in URLGrabber
Zdenek Pavlas
zpavlas at redhat.com
Mon Jul 9 11:01:15 UTC 2012
Hi,
> Actually, I'd like to adopt
> my yum-fast-downloader plugin with the recent changes and make it an
> external downloader for URLGrabber. However, currently the external
> downloader is hard-coded in grabber.py, so the only way to use a
> different external downloader is to modify grabber.py, or replace
> /usr/libexec/urlgrabber-ext-down, which are not good solutions since
> they are part of the .rpm package. Would you please make the
> external downloader to be configurable using a config file?
I've looked at y-f-d, and probably understand why you want this..
Making the external downloader pluggable seems to be generally good
idea, and rewriting y-f-d from a plugin to a pluggable downloader
could save/share a lot of code. But I also see some problems:
1) There's no urlgrabber.conf .. we'd have to make the downloader
selection part of the urlgrabber API (add and document a new option),
and add a new config option to yum.conf. That looks way too hairy,
considering most users will never touch this (directly, at least).
2) The urlgrabber-ext-down protocol is quite low level. Yes, it's
simple but was meant to be internal and is neither documented nor stable.
Actually, I was thinking about changing the progress data format a bit,
to support the 'unknown size' case. The compat downloader handles
this fine- size is parsed from headers, and when first data packet
arrives, the progress object is started with already known size.
The current ext-down progress API can't do that..
I'd like to have some discussion on 1) first, esp if there are
any other options (using /etc/alternatives symlinks, using
environment variables, or whatever else..).
I plan to implement 2) in urlgrabber-ext-down. ATM it's quite
low priority (1-2 weeks at best), but the wire protocol will
change (the progress callback bit).
I've CCd yum-devel.
More information about the Yum-devel
mailing list