summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorHarmen Stoppels <harmenstoppels@gmail.com>2022-07-15 18:43:14 +0200
committerGitHub <noreply@github.com>2022-07-15 18:43:14 +0200
commit6f8d7390f1c3176ec174df6f9bcad099499fd749 (patch)
tree86b955784861159f05c41d9a8bbe5d09a070b26c /lib
parent123c405e11e29a7fa6fd95a9a3103bbedcfa8776 (diff)
downloadspack-6f8d7390f1c3176ec174df6f9bcad099499fd749.tar.gz
spack-6f8d7390f1c3176ec174df6f9bcad099499fd749.tar.bz2
spack-6f8d7390f1c3176ec174df6f9bcad099499fd749.tar.xz
spack-6f8d7390f1c3176ec174df6f9bcad099499fd749.zip
Use lexists instead of exists during fetch (#31509)
Diffstat (limited to 'lib')
-rw-r--r--lib/spack/spack/fetch_strategy.py22
1 files changed, 11 insertions, 11 deletions
diff --git a/lib/spack/spack/fetch_strategy.py b/lib/spack/spack/fetch_strategy.py
index ed2e5eeb42..8f17e7768b 100644
--- a/lib/spack/spack/fetch_strategy.py
+++ b/lib/spack/spack/fetch_strategy.py
@@ -337,9 +337,7 @@ class URLFetchStrategy(FetchStrategy):
continue
try:
- partial_file, save_file = self._fetch_from_url(url)
- if save_file and (partial_file is not None):
- llnl.util.filesystem.rename(partial_file, save_file)
+ self._fetch_from_url(url)
break
except FailedDownloadError as e:
errors.append(str(e))
@@ -389,9 +387,7 @@ class URLFetchStrategy(FetchStrategy):
@_needs_stage
def _fetch_urllib(self, url):
- save_file = None
- if self.stage.save_filename:
- save_file = self.stage.save_filename
+ save_file = self.stage.save_filename
tty.msg('Fetching {0}'.format(url))
# Run urllib but grab the mime type from the http headers
@@ -401,16 +397,18 @@ class URLFetchStrategy(FetchStrategy):
# clean up archive on failure.
if self.archive_file:
os.remove(self.archive_file)
- if save_file and os.path.exists(save_file):
+ if os.path.lexists(save_file):
os.remove(save_file)
msg = 'urllib failed to fetch with error {0}'.format(e)
raise FailedDownloadError(url, msg)
+ if os.path.lexists(save_file):
+ os.remove(save_file)
+
with open(save_file, 'wb') as _open_file:
shutil.copyfileobj(response, _open_file)
self._check_headers(str(headers))
- return None, save_file
@_needs_stage
def _fetch_curl(self, url):
@@ -471,7 +469,7 @@ class URLFetchStrategy(FetchStrategy):
if self.archive_file:
os.remove(self.archive_file)
- if partial_file and os.path.exists(partial_file):
+ if partial_file and os.path.lexists(partial_file):
os.remove(partial_file)
if curl.returncode == 22:
@@ -498,7 +496,9 @@ class URLFetchStrategy(FetchStrategy):
"Curl failed with error %d" % curl.returncode)
self._check_headers(headers)
- return partial_file, save_file
+
+ if save_file and (partial_file is not None):
+ fs.rename(partial_file, save_file)
@property # type: ignore # decorated properties unsupported in mypy
@_needs_stage
@@ -613,7 +613,7 @@ class CacheURLFetchStrategy(URLFetchStrategy):
# remove old symlink if one is there.
filename = self.stage.save_filename
- if os.path.exists(filename):
+ if os.path.lexists(filename):
os.remove(filename)
# Symlink to local cached archive.