diff options
author | Harmen Stoppels <harmenstoppels@gmail.com> | 2022-07-15 18:43:14 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-15 18:43:14 +0200 |
commit | 6f8d7390f1c3176ec174df6f9bcad099499fd749 (patch) | |
tree | 86b955784861159f05c41d9a8bbe5d09a070b26c /lib/spack | |
parent | 123c405e11e29a7fa6fd95a9a3103bbedcfa8776 (diff) | |
download | spack-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/spack')
-rw-r--r-- | lib/spack/spack/fetch_strategy.py | 22 |
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. |