from mic import kickstart
from mic import msger
from mic.utils.errors import CreatorError, Abort
-from mic.utils import misc, rpmmisc, runner, proxy, fs_related as fs
+from mic.utils import misc, rpmmisc, runner, fs_related as fs
class BaseImageCreator(object):
"""Installs a system to a chroot directory.
for fpath in glob.glob(fpaths):
self._attachment.append(fpath)
continue
+
filelist = pkg_manager.getFilelist(item)
if filelist:
# found rpm in rootfs
continue
# try to retrieve rpm file
- url = pkg_manager.package_url(item)
+ (url, proxies) = pkg_manager.package_url(item)
if not url:
msger.warning("Can't get url from repo for %s" % item)
continue
- proxies = None
- aproxy = proxy.get_proxy_for(url)
- if aproxy:
- proxies = {url.split(':')[0]: aproxy}
fpath = os.path.join(self.cachedir, os.path.basename(url))
if not os.path.exists(fpath):
# download pkgs
from mic import msger
from mic.kickstart import ksparser
from mic.utils import misc, rpmmisc
+from mic.utils.proxy import get_proxy_for
from mic.utils.errors import CreatorError
from mic.imager.baseimager import BaseImageCreator
return None
return pkg[0].po.filelist
- def package_url(self, pkg):
- pkgs = self.pkgSack.searchNevra(name=pkg)
+ def package_url(self, pkgname):
+ pkgs = self.pkgSack.searchNevra(name=pkgname)
if pkgs:
- return pkgs[0].remote_url
- else:
- return None
+ proxy = None
+ proxies = None
+ url = pkgs[0].remote_url
+ repoid = pkgs[0].repoid
+ repos = filter(lambda r: r.id == repoid, self.repos.listEnabled())
+
+ if repos:
+ proxy = repos[0].proxy
+ if not proxy:
+ proxy = get_proxy_for(url)
+ if proxy:
+ proxies = {str(url.split(':')[0]): str(proxy)}
+
+ return (url, proxies)
+
+ return (None, None)
return os.path.join(baseurl, location)
- def package_url(self, pkg):
+ def package_url(self, pkgname):
def cmpEVR(ed1, ed2):
(e1, v1, r1) = map(str, [ed1.epoch(), ed1.version(), ed1.release()])
q = zypp.PoolQuery()
q.addKind(zypp.ResKind.package)
q.setMatchExact()
- q.addAttribute(zypp.SolvAttr.name,pkg)
+ q.addAttribute(zypp.SolvAttr.name, pkgname)
items = sorted(q.queryResults(self.Z.pool()),
cmp=lambda x,y: cmpEVR(x.edition(), y.edition()),
reverse=True)
if items:
- return self.get_url(items[0])
+ url = self.get_url(items[0])
+ proxies = self.get_proxies(items[0])
+ return (url, proxies)
- return None
+ return (None, None)