Package up2date_client :: Module rhnPackageInfo
[hide private]
[frames] | no frames]

Source Code for Module up2date_client.rhnPackageInfo

 1   
 2  # all the crap that is stored on the rhn side of stuff 
 3  # updating/fetching package lists, channels, etc 
 4   
 5   
 6  from up2date_client import up2dateAuth 
 7  from up2date_client import up2dateLog 
 8  from up2date_client import rhnserver 
 9  from up2date_client import pkgUtils 
10   
11   
12 -def logDeltaPackages(pkgs):
13 log = up2dateLog.initLog() 14 log.log_me("Adding packages to package profile: %s" % 15 pprint_pkglist(pkgs['added'])) 16 log.log_me("Removing packages from package profile: %s" % 17 pprint_pkglist(pkgs['removed']))
18
19 -def updatePackageProfile(timeout=None):
20 """ get a list of installed packages and send it to rhnServer """ 21 log = up2dateLog.initLog() 22 log.log_me("Updating package profile") 23 packages = pkgUtils.getInstalledPackageList(getArch=1) 24 s = rhnserver.RhnServer(timeout=timeout) 25 if not s.capabilities.hasCapability('xmlrpc.packages.extended_profile', 2): 26 # for older satellites and hosted - convert to old format 27 packages = convertPackagesFromHashToList(packages) 28 s.registration.update_packages(up2dateAuth.getSystemId(), packages)
29
30 -def pprint_pkglist(pkglist):
31 if type(pkglist) == type([]): 32 output = ["%s-%s-%s" % (a[0],a[1],a[2]) for a in pkglist] 33 else: 34 output = "%s-%s-%s" % (pkglist[0], pkglist[1], pkglist[2]) 35 return output
36
37 -def convertPackagesFromHashToList(packages):
38 """ takes list of hashes and covert it to list of lists 39 resulting strucure is: 40 [[name, version, release, epoch, arch, cookie], ... ] 41 """ 42 result = [] 43 for package in packages: 44 if 'arch' in package and 'cookie' in package: 45 result.append([package['name'], package['version'], package['release'], 46 package['epoch'], package['arch'], package['cookie']]) 47 elif 'arch' in package: 48 result.append([package['name'], package['version'], package['release'], 49 package['epoch'], package['arch']]) 50 else: 51 result.append([package['name'], package['version'], package['release'], package['epoch']]) 52 return result
53