[Yum-devel] Something broken in downloading progress
Zdenek Pavlas
zpavlas at redhat.com
Thu Aug 9 14:35:56 UTC 2012
> The (1/1) -> (8/8) is not supposed to be there, when using a custom
> download progress handler.
These files were downloaded in parallel. repos.setProgressBar(obj)
sets a *single* callback object with methods .start() .update() .end()
which is reused for all files.
This is incompatible with multi downloader, which needs >1 callback
objects to exist at the same time, so it must use different API.
This incompatibility is currently handled in multi downloader
as follows:
obj == None: no progress display in multi downloader
obj != None: ignore obj, use TextMultiFileMeter.
See BZ 831291. This means multi progress is on-off only,
no custom progress meters.
> Is there something else there need to be set other than
> YumBase.repos.setProgressBar( dnlcb ) to use a custom download
> callback handler ?
No, multi downloader can't reasonably call a progress object,
which assumes a single file is downloaded at once.
The most clean solution I can think of ATM is to add an attribute
.multi to the custom single-file progress object 'dnlcb'.
When multi-downloading, we'd use this instead of TextMultiFileMeter.
But You have to implement 2 different APIs, anyway.
More information about the Yum-devel
mailing list