Commit b07b373b authored by Thomas Gambier's avatar Thomas Gambier

Remove temporary files

parent 6fc26a35
......@@ -90,11 +90,11 @@ class NetworkCache:
file_descriptor = open(path, 'rb')
if not (self.dir_url and self.cache_url):
raise ValueError("upload-dir-url and/or upload-cache-url is not defined")
# backward compatibility
metadata_dict.setdefault('file', 'notused')
metadata_dict.setdefault('urlmd5', 'notused')
# convert '' into None in order to call nc nicely
with NetworkcacheClient(self.cache_url, self.dir_url,
signature_private_key_file=self.signature_private_key_file or None,
......@@ -181,7 +181,6 @@ class Signature:
"""
Download a tar of the repository from cache, and untar it.
"""
info, sha256path = tempfile.mkstemp()
shacache = NetworkCache(self.config.slapos_configuration)
if shacache.signature_certificate_list is None:
......@@ -193,25 +192,32 @@ class Signature:
if download_metadata_dict:
self.log('File downloaded in %s', path)
current_sha256 = self.get_file_hash(path)
if shacache.download(path=sha256path, required_key_list=['timestamp'],
strategy=strategy, is_sha256file=True):
self.log('sha 256 downloaded in %s', sha256path)
with open(sha256path, 'rb') as f:
expected_sha256 = f.read()
if current_sha256 == expected_sha256:
return True
else:
raise ValueError("%s != %s" % (current_sha256, expected_sha256))
with tempfile.NamedTemporaryFile() as f_256:
sha256path = f_256.name
if shacache.download(path=sha256path, required_key_list=['timestamp'],
strategy=strategy, is_sha256file=True):
self.log('sha 256 downloaded in %s', sha256path)
expected_sha256 = f_256.read()
if current_sha256 == expected_sha256:
return True
else:
raise ValueError("%s != %s" % (current_sha256, expected_sha256))
def download(self):
"""
Get status information and return its path
"""
info, path = tempfile.mkstemp()
if not self._download(path) == False:
shutil.move(path, self.config.destination)
if self._download(path):
try:
shutil.move(path, self.config.destination)
except Exception as e:
self.log(e)
self.log('Fail to move %s to %s, maybe permission problem?', path, self.config.destination)
os.remove(path)
else:
os.remove(path)
raise ValueError("No result from shacache")
def _upload(self, path):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment