Gerard Farràs i Ballabriga wrote:
Hello, good afternoon :-)
There are some new ideas and changes about implementation details of the concept of failover [1].
Before, our idea was to modify MediaCurl class [2] to parse a list of mirrors like this [3].
But now, new idea is to use only metalink files ([4] [5]) and don't use anymore this type of mirror lists.
Libzypp could download files using an external program (ej. aria2c [6]) to avoid having to implement all the logic from zero.
Why this change?
Because we think than we are reinventing the wheel in things like:
- Parse HTTP codes and act according to these.
- To choose the fastest mirror.
How to implement?
I think we can do the implementation with some changes:
- Modify media/MediaAccess.cc [7] and check if there are available tools like aria2c in the target system.
- If we get a negative response we must use MediaCurl (like now).
- If we get a positive response we can use a "new" class called MediaArise (or something like this) which uses aria2c to download files using Medialink from network.
What do you think about this idea? Any comments for this implementation? Dr. Poeml, please, feel free to correct me if there are any error.
I look at aria2 and you need find way how report progress from aria to libzypp. Libcurl takes function from libzypp and silent its own progress (MediaCurl 633-642). But external program need some parsing output, which can have problem if aria change its output. Look to RpmDb.cc when libzypp parse output of rpm external program. Josef
Obviously, any suggestion or comment will be more than welcome :-).
Thanks :-)
Gerard
[1] http://en.opensuse.org/Libzypp/Failover [2] http://svn.opensuse.org/svn/zypp/trunk/libzypp/zypp/media/MediaCurl.h [3] http://download.opensuse.org/distribution/10.3/repo/oss/suse/repodata/primar... [4] http://www.metalinker.org/ [5] http://download.opensuse.org/distribution/10.3/repo/oss/suse/repodata/primar... [6] http://aria2.sourceforge.net/ [7] http://svn.opensuse.org/svn/zypp/trunk/libzypp/zypp/media/MediaAccess.cc
-- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org