# Contributors:
# - S-Core Co., Ltd
+import logging
import os
import base64
-import collections
import hashlib
+import collections
from lxml import etree
from tic.utils import file
from tic.utils import process
def _get_metadata_from_repo(baseurl, proxies, cachedir, reponame, filename,
sumtype=None, checksum=None):
+ logger = logging.getLogger(__name__)
url = os.path.join(baseurl, filename)
- filename_tmp = str("%s/%s/%s" % (cachedir, reponame, os.path.basename(filename)))
+ filename_tmp = str("%s/%s" % (cachedir, os.path.basename(filename)))
if os.path.splitext(filename_tmp)[1] in (".gz", ".bz2"):
filename = os.path.splitext(filename_tmp)[0]
else:
file_checksum = result.split()[0]
if file_checksum and file_checksum == checksum:
+ logger.info('use a cache file - ' + str(url))
return filename
return _get_uncompressed_data_from_url(url, filename_tmp, proxies)
def get_repodata_from_repos(repos, cachedir):
my_repodata = []
for repo in repos:
- reponame = repo.name
- baseurl = repo.baseurl
- cache_dir = os.path.join(cachedir, reponame)
+ reponame = repo.get('name')
+ baseurl = repo.get('url')
+ cache_dir = os.path.join(cachedir, base64.urlsafe_b64encode(baseurl))
cache_file = os.path.join(cache_dir, 'repomd.xml')
# make directory for caching
file.make_dirs(cache_dir)
- #TODO: support proxy
+ #TODO: support proxy
url = os.path.join(baseurl, 'repodata/repomd.xml')
repomd = myurlgrab(url, cache_file, None)
if item not in filepaths:
filepaths[item] = None
continue
-
filepaths[item] = _get_metadata_from_repo(baseurl,
None,
- cachedir,
+ cache_dir,
reponame,
filepaths[item],
sumtypes[item],
"baseurl":baseurl,
"repomd":repomd,
"primary":filepaths['primary'],
- "cachedir":cachedir,
+ "cachedir":cache_dir,
"proxies":None,
"patterns":filepaths['patterns'],
"comps":filepaths['comps']})
return my_repodata
-RepoType = collections.namedtuple('Repo', 'name, baseurl')
+RepoType = collections.namedtuple('Repo', 'name, url')
def Repo(name, baseurl):
return RepoType(name, baseurl)
repo_url_1 = 'https://download.tizen.org/snapshots/tizen/base/latest/repos/arm64/packagesaaa'
repo_url_2 = 'https://download.tizen.org/snapshots/tizen/mobile/latest/repos/arm64-wayland/packages'
repos = []
- repos.append(Repo(base64.urlsafe_b64encode(repo_url_1), repo_url_1))
- repos.append(Repo(base64.urlsafe_b64encode(repo_url_2), repo_url_2))
+ repos.append(Repo('repo_1', repo_url_1))
+ repos.append(Repo('repo_2', repo_url_2))
cachedir = '/var/tmp/tic-core/cached'
repodata = get_repodata_from_repos(repos, cachedir)
print(repodata)