Source code for cobbler.download_manager

"""
Cobbler DownloadManager
"""

import requests


[docs]class DownloadManager(object): def __init__(self, collection_mgr, logger=None): """ Constructor """ self.collection_mgr = collection_mgr self.settings = collection_mgr.settings() self.logger = logger self.cert = () if self.settings.proxy_url_ext: # requests wants a dict like: protocol: proxy_uri self.proxies = self.settings.proxy_url_ext else: self.proxies = {}
[docs] def urlread(self, url, proxies=None, cert=None): if proxies is None: proxies = self.proxies if cert is None: cert = self.cert return requests.get(url, proxies=proxies, cert=cert)
[docs] def download_file(self, url, dst, proxies=None, cert=None): if proxies is None: proxies = self.proxies if cert is None: cert = self.cert response = requests.get(url, stream=True, proxies=proxies, cert=cert) with open(dst, "wb") as handle: for chunk in response.iter_content(chunk_size=512): # filter out keep-alive new chunks if chunk: handle.write(chunk)