def _remove_base_file(self, base_file): """Remove a single base file if it is old enough. Returns nothing. """ if not os.path.exists(base_file): LOG.debug(_('Cannot remove %(base_file)s, it does not exist'), base_file) return mtime = os.path.getmtime(base_file) age = time.time() - mtime maxage = FLAGS.remove_unused_resized_minimum_age_seconds if base_file in self.originals: maxage = FLAGS.remove_unused_original_minimum_age_seconds if age < maxage: LOG.info(_('Base file too young to remove: %s'), base_file) else: LOG.info(_('Removing base file: %s'), base_file) try: os.remove(base_file) signature = virtutils.get_info_filename(base_file) if os.path.exists(signature): os.remove(signature) except OSError, e: LOG.error( _('Failed to remove %(base_file)s, ' 'error was %(error)s'), { 'base_file': base_file, 'error': e })
def _remove_base_file(self, base_file): """Remove a single base file if it is old enough. Returns nothing. """ if not os.path.exists(base_file): LOG.debug(_('Cannot remove %(base_file)s, it does not exist'), base_file) return mtime = os.path.getmtime(base_file) age = time.time() - mtime maxage = FLAGS.remove_unused_resized_minimum_age_seconds if base_file in self.originals: maxage = FLAGS.remove_unused_original_minimum_age_seconds if age < maxage: LOG.info(_('Base file too young to remove: %s'), base_file) else: LOG.info(_('Removing base file: %s'), base_file) try: os.remove(base_file) signature = virtutils.get_info_filename(base_file) if os.path.exists(signature): os.remove(signature) except OSError, e: LOG.error(_('Failed to remove %(base_file)s, ' 'error was %(error)s'), {'base_file': base_file, 'error': e})
def _make_checksum(self, tmpdir): testdata = ('OpenStack Software delivers a massively scalable cloud ' 'operating system.') fname = os.path.join(tmpdir, 'aaa') info_fname = virtutils.get_info_filename(fname) with open(fname, 'w') as f: f.write(testdata) return fname, info_fname, testdata
def test_read_stored_checksum_legacy_essex(self): with utils.tempdir() as tmpdir: self.flags(instances_path=tmpdir) self.flags(image_info_filename_pattern=('$instances_path/' '%(image)s.info')) fname = os.path.join(tmpdir, 'aaa') old_fname = fname + '.sha1' f = open(old_fname, 'w') f.write('fdghkfhkgjjksfdgjksjkghsdf') f.close() csum_output = imagecache.read_stored_checksum(fname) self.assertEquals(csum_output, 'fdghkfhkgjjksfdgjksjkghsdf') self.assertFalse(os.path.exists(old_fname)) self.assertTrue(os.path.exists(virtutils.get_info_filename(fname)))
def test_read_stored_checksum(self): with utils.tempdir() as tmpdir: self.flags(instances_path=tmpdir) self.flags(image_info_filename_pattern=('$instances_path/' '%(image)s.info')) csum_input = '{"sha1": "fdghkfhkgjjksfdgjksjkghsdf"}\n' fname = os.path.join(tmpdir, 'aaa') info_fname = virtutils.get_info_filename(fname) f = open(info_fname, 'w') f.write(csum_input) f.close() csum_output = imagecache.read_stored_checksum(fname) self.assertEquals(csum_input.rstrip(), '{"sha1": "%s"}' % csum_output)
def test_remove_base_file(self): with self._make_base_file() as fname: image_cache_manager = imagecache.ImageCacheManager() image_cache_manager._remove_base_file(fname) info_fname = virtutils.get_info_filename(fname) # Files are initially too new to delete self.assertTrue(os.path.exists(fname)) self.assertTrue(os.path.exists(info_fname)) # Old files get cleaned up though os.utime(fname, (-1, time.time() - 3601)) image_cache_manager._remove_base_file(fname) self.assertFalse(os.path.exists(fname)) self.assertFalse(os.path.exists(info_fname))
def test_remove_base_file_original(self): with self._make_base_file() as fname: image_cache_manager = imagecache.ImageCacheManager() image_cache_manager.originals = [fname] image_cache_manager._remove_base_file(fname) info_fname = virtutils.get_info_filename(fname) # Files are initially too new to delete self.assertTrue(os.path.exists(fname)) self.assertTrue(os.path.exists(info_fname)) # This file should stay longer than a resized image os.utime(fname, (-1, time.time() - 3601)) image_cache_manager._remove_base_file(fname) self.assertTrue(os.path.exists(fname)) self.assertTrue(os.path.exists(info_fname)) # Originals don't stay forever though os.utime(fname, (-1, time.time() - 3600 * 25)) image_cache_manager._remove_base_file(fname) self.assertFalse(os.path.exists(fname)) self.assertFalse(os.path.exists(info_fname))