def __init__(self, url, name): self.url = url self.name = name self.yumbase = yum.YumBase() self.yumbase.preconf.fn = YUMSRC_CONF if not os.path.exists(YUMSRC_CONF): self.yumbase.preconf.fn = '/dev/null' self.configparser = ConfigParser() self._clean_cache(CACHE_DIR + name) # read the proxy configuration in /etc/rhn/rhn.conf initCFG('server.satellite') self.proxy_addr = CFG.http_proxy self.proxy_user = CFG.http_proxy_username self.proxy_pass = CFG.http_proxy_password if name in self.yumbase.repos.repos: repo = self.yumbase.repos.repos[name] else: repo = yum.yumRepo.YumRepository(name) repo.populate(self.configparser, name, self.yumbase.conf) self.repo = repo self.sack = None self.setup_repo(repo) self.num_packages = 0 self.num_excluded = 0
def __init__(self, url, name, yumsrc_conf=YUMSRC_CONF, org="1", channel_label="", no_mirrors=False): self.url = url self.name = name self.yumbase = yum.YumBase() self.yumbase.preconf.fn = yumsrc_conf if not os.path.exists(yumsrc_conf): self.yumbase.preconf.fn = '/dev/null' self.configparser = ConfigParser() if org: self.org = org else: self.org = "NULL" # read the proxy configuration in /etc/rhn/rhn.conf initCFG('server.satellite') self.proxy_addr = CFG.http_proxy self.proxy_user = CFG.http_proxy_username self.proxy_pass = CFG.http_proxy_password self._authenticate(url) # Check for settings in yum configuration files (for custom repos/channels only) if org: repos = self.yumbase.repos.repos else: repos = None if repos and name in repos: repo = repos[name] elif repos and channel_label in repos: repo = repos[channel_label] # In case we are using Repo object based on channel config, override it's id to name of the repo # To not create channel directories in cache directory repo.id = name else: # Not using values from config files repo = yum.yumRepo.YumRepository(name) repo.populate(self.configparser, name, self.yumbase.conf) self.repo = repo self.setup_repo(repo, no_mirrors) self.num_packages = 0 self.num_excluded = 0 # if self.url is metalink it will be expanded into # real urls in self.repo.urls and also save this metalink # in begin of the url list ("for repolist -v ... or anything else wants to know the baseurl") # Remove it from the list, we don't need it to download content of repo real_urls = [] for url in self.repo.urls: if '?' not in url: real_urls.append(url) self.repo.urls = real_urls
def __init__(self, url, name, yumsrc_conf=YUMSRC_CONF): self.url = url self.name = name self.yumbase = yum.YumBase() self.yumbase.preconf.fn = yumsrc_conf if not os.path.exists(yumsrc_conf): self.yumbase.preconf.fn = '/dev/null' self.configparser = ConfigParser() # read the proxy configuration in /etc/rhn/rhn.conf initCFG('server.satellite') self.proxy_addr = CFG.http_proxy self.proxy_user = CFG.http_proxy_username self.proxy_pass = CFG.http_proxy_password self._authenticate(url) if name in self.yumbase.repos.repos: repo = self.yumbase.repos.repos[name] else: repo = yum.yumRepo.YumRepository(name) repo.populate(self.configparser, name, self.yumbase.conf) self.repo = repo self.sack = None self.setup_repo(repo) self.num_packages = 0 self.num_excluded = 0 # if self.url is metalink it will be expanded into # real urls in self.repo.urls and also save this metalink # in begin of the url list ("for repolist -v ... or anything else wants to know the baseurl") # Remove it from the list, we don't need it to download content of repo real_urls = [] for url in self.repo.urls: if '?' not in url: real_urls.append(url) self.repo.urls = real_urls
def __init__(self, url, name, yumsrc_conf=YUMSRC_CONF, org="1", channel_label="", no_mirrors=False, ca_cert_file=None, client_cert_file=None, client_key_file=None): self.url = url self.name = name self.yumbase = yum.YumBase() self.yumbase.preconf.fn = yumsrc_conf if not os.path.exists(yumsrc_conf): self.yumbase.preconf.fn = '/dev/null' self.configparser = ConfigParser() if org: self.org = org else: self.org = "NULL" self.proxy_addr = None self.proxy_user = None self.proxy_pass = None self.authtoken = None # read the proxy configuration # /etc/rhn/rhn.conf has more priority than yum.conf initCFG('server.satellite') # keep authtokens for mirroring (_scheme, _netloc, _path, query, _fragid) = urlparse.urlsplit(url) if query: self.authtoken = query if CFG.http_proxy: self.proxy_addr = CFG.http_proxy self.proxy_user = CFG.http_proxy_username self.proxy_pass = CFG.http_proxy_password else: yb_cfg = self.yumbase.conf.cfg section_name = None if yb_cfg.has_section(self.name): section_name = self.name elif yb_cfg.has_section(channel_label): section_name = channel_label elif yb_cfg.has_section('main'): section_name = 'main' if section_name: if yb_cfg.has_option(section_name, option='proxy'): self.proxy_addr = yb_cfg.get(section_name, option='proxy') if yb_cfg.has_option(section_name, 'proxy_username'): self.proxy_user = yb_cfg.get(section_name, 'proxy_username') if yb_cfg.has_option(section_name, 'proxy_password'): self.proxy_pass = yb_cfg.get(section_name, 'proxy_password') self._authenticate(url) # Check for settings in yum configuration files (for custom repos/channels only) if org: repos = self.yumbase.repos.repos else: repos = None if repos and name in repos: repo = repos[name] elif repos and channel_label in repos: repo = repos[channel_label] # In case we are using Repo object based on channel config, override it's id to name of the repo # To not create channel directories in cache directory repo.id = name else: # Not using values from config files repo = yum.yumRepo.YumRepository(name) repo.populate(self.configparser, name, self.yumbase.conf) self.repo = repo self.setup_repo(repo, no_mirrors, ca_cert_file, client_cert_file, client_key_file) self.num_packages = 0 self.num_excluded = 0 self.groupsfile = None