|
|
|
@ -130,16 +130,16 @@ class PackagesGenerator:
|
|
|
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
|
def _get_full_repo_path(repo_info: RepoInfo):
|
|
|
|
|
result = os.path.join(
|
|
|
|
|
repo_info.path,
|
|
|
|
|
repo_info.folder
|
|
|
|
|
)
|
|
|
|
|
if repo_info.is_remote:
|
|
|
|
|
return urljoin(
|
|
|
|
|
result = urljoin(
|
|
|
|
|
repo_info.path + '/',
|
|
|
|
|
repo_info.folder,
|
|
|
|
|
)
|
|
|
|
|
else:
|
|
|
|
|
return os.path.join(
|
|
|
|
|
repo_info.path,
|
|
|
|
|
repo_info.folder
|
|
|
|
|
)
|
|
|
|
|
return result
|
|
|
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
|
def _warning_callback(warning_type, message):
|
|
|
|
@ -205,6 +205,12 @@ class PackagesGenerator:
|
|
|
|
|
:param repo_info: structure which contains info about a current repo
|
|
|
|
|
:return: list with repomd records
|
|
|
|
|
"""
|
|
|
|
|
repomd_file_path = os.path.join(
|
|
|
|
|
repo_info.path,
|
|
|
|
|
repo_info.folder,
|
|
|
|
|
'repodata',
|
|
|
|
|
'repomd.xml',
|
|
|
|
|
)
|
|
|
|
|
if repo_info.is_remote:
|
|
|
|
|
repomd_file_path = urljoin(
|
|
|
|
|
urljoin(
|
|
|
|
@ -214,13 +220,7 @@ class PackagesGenerator:
|
|
|
|
|
'repodata/repomd.xml'
|
|
|
|
|
)
|
|
|
|
|
repomd_file_path = self.get_remote_file_content(repomd_file_path)
|
|
|
|
|
else:
|
|
|
|
|
repomd_file_path = os.path.join(
|
|
|
|
|
repo_info.path,
|
|
|
|
|
repo_info.folder,
|
|
|
|
|
'repodata',
|
|
|
|
|
'repomd.xml',
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
repomd_object = self._parse_repomd(repomd_file_path)
|
|
|
|
|
if repo_info.is_remote:
|
|
|
|
|
os.remove(repomd_file_path)
|
|
|
|
@ -301,9 +301,8 @@ class PackagesGenerator:
|
|
|
|
|
repo_info: RepoInfo,
|
|
|
|
|
) -> Union[PackageIterator, Iterator]:
|
|
|
|
|
full_repo_path = self._get_full_repo_path(repo_info)
|
|
|
|
|
if full_repo_path in self.pkgs:
|
|
|
|
|
return self.pkgs[full_repo_path]
|
|
|
|
|
else:
|
|
|
|
|
pkgs_iterator = self.pkgs.get(full_repo_path)
|
|
|
|
|
if pkgs_iterator is None:
|
|
|
|
|
repomd_records = self._get_repomd_records(
|
|
|
|
|
repo_info=repo_info,
|
|
|
|
|
)
|
|
|
|
@ -320,17 +319,17 @@ class PackagesGenerator:
|
|
|
|
|
warningcb=self._warning_callback,
|
|
|
|
|
)
|
|
|
|
|
pkgs_iterator, self.pkgs[full_repo_path] = tee(pkgs_iterator)
|
|
|
|
|
return pkgs_iterator
|
|
|
|
|
return pkgs_iterator
|
|
|
|
|
|
|
|
|
|
def get_package_arch(
|
|
|
|
|
self,
|
|
|
|
|
package: Package,
|
|
|
|
|
variant_arch: str,
|
|
|
|
|
) -> str:
|
|
|
|
|
result = variant_arch
|
|
|
|
|
if package.arch in self.repo_arches[variant_arch]:
|
|
|
|
|
return package.arch
|
|
|
|
|
else:
|
|
|
|
|
return variant_arch
|
|
|
|
|
result = package.arch
|
|
|
|
|
return result
|
|
|
|
|
|
|
|
|
|
def is_skipped_module_package(self, package: Package) -> bool:
|
|
|
|
|
# Even a module package will be added to packages.json if
|
|
|
|
|