commit: 1bdff51e2b217a0b69a9195430487bc75a7fbe63 Author: Zac Medico <zmedico <AT> gentoo <DOT> org> AuthorDate: Mon Mar 23 21:58:43 2020 +0000 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> CommitDate: Mon Mar 23 22:01:32 2020 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=1bdff51e
repoman: fetch_metadata_xsd: use fetch function Signed-off-by: Zac Medico <zmedico <AT> gentoo.org> repoman/lib/repoman/metadata.py | 51 ++++++++--------------------------------- 1 file changed, 10 insertions(+), 41 deletions(-) diff --git a/repoman/lib/repoman/metadata.py b/repoman/lib/repoman/metadata.py index 11ec1aaf8..4537d2ce2 100644 --- a/repoman/lib/repoman/metadata.py +++ b/repoman/lib/repoman/metadata.py @@ -5,21 +5,14 @@ from __future__ import print_function, unicode_literals import errno import logging import sys -import tempfile import time -try: - from urllib.parse import urlparse -except ImportError: - from urlparse import urlparse - - # import our initialized portage instance from repoman._portage import portage from portage import os -from portage import shutil from portage.output import green +from portage.package.ebuild.fetch import fetch if sys.hexversion >= 0x3000000: basestring = str @@ -64,41 +57,17 @@ def fetch_metadata_xsd(metadata_xsd, repoman_settings): "%s the local copy of metadata.xsd " "needs to be refetched, doing that now" % green("***")) print() - parsed_url = urlparse(metadata_xsd_uri) - setting = 'FETCHCOMMAND_' + parsed_url.scheme.upper() - fcmd = repoman_settings.get(setting) - if not fcmd: - fcmd = repoman_settings.get('FETCHCOMMAND') - if not fcmd: - logging.error("FETCHCOMMAND is unset") - return False - - destdir = repoman_settings["DISTDIR"] - fd, metadata_xsd_tmp = tempfile.mkstemp( - prefix='metadata.xsd.', dir=destdir) - os.close(fd) + + if not fetch([metadata_xsd_uri], repoman_settings, force=1, try_mirrors=0): + logging.error( + "failed to fetch metadata.xsd from '%s'" % metadata_xsd_uri) + return False try: - if not portage.getbinpkg.file_get( - metadata_xsd_uri, destdir, fcmd=fcmd, - filename=os.path.basename(metadata_xsd_tmp)): - logging.error( - "failed to fetch metadata.xsd from '%s'" % metadata_xsd_uri) - return False - - try: - portage.util.apply_secpass_permissions( - metadata_xsd_tmp, - gid=portage.data.portage_gid, mode=0o664, mask=0o2) - except portage.exception.PortageException: - pass - - shutil.move(metadata_xsd_tmp, metadata_xsd) - finally: - try: - os.unlink(metadata_xsd_tmp) - except OSError: - pass + portage.util.apply_secpass_permissions(metadata_xsd, + gid=portage.data.portage_gid, mode=0o664, mask=0o2) + except portage.exception.PortageException: + pass return True