[Yum] yum source code

James Antill james-yum at and.org
Mon Mar 16 16:57:03 UTC 2009


pranjal pandit <pranjal5215 at gmail.com> writes:

> hello,
>
> I want to know about certain variables in source code mainly in files
> yumRepo.py and __init__.py
>
> 1) What is the variable 'i' for in line 1240 of __init__.py function
> and its connection with 'text' variable in line 1272 that follows

 I'd hope that this was more obvious...

i = 0
local_size = 0
for po in remote_pkgs:
    if os.path.exists(local):
    [...]
    i += 1

    if i == 1 and not local_size and remote_size == po.size:
        text = os.path.basename(po.relativepath)
    else:
        text = '(%s/%s): %s' % (i, len(remote_pkgs),
                                os.path.basename(po.relativepath))

...here we are walking remote_pkgs, and i is a count of how many pkgs
we've processed. We combine i with len(remote_pkgs) to get the (2/32)
output you see when downloading.

> 2)how are the urls to be tried for urlgrab() obtained in the function
> _getFile() of file yumRepo.py

 This is pretty magic, you can work it out by downloading and putting
print statements inside the functions (often a good recommendation,
even if only to confirm what you think you know).

 What happens is that this line:


    result = self.grab.urlgrab(misc.to_utf8(relative), local,

...results in a call to _setupGrab() (via. _getgrab() from the
self.grab property). _setupGrab() uses self.urls, which is another
property setup in _geturls(), which calls _baseurlSetup() this then
gets the mirrors from the mirrorlist or metalink metadata configured
for the repo.

-- 
James Antill -- james at and.org


More information about the Yum mailing list