def consume_file(self, filepath, platform, arch): from infi.app_repo.utils import sign_rpm_package dirpath = path.join(self.base_directory, '%s-%s' % (platform, TRANSLATE_ARCH[arch])) hard_link_or_raise_exception(filepath, dirpath) sign_rpm_package(filepath) self._update_index(dirpath)
def consume_file(self, filepath, platform, arch): from infi.app_repo.utils import sign_rpm_package dirpath = path.join(self.base_directory, "%s-%s" % (platform, TRANSLATE_ARCH[arch])) hard_link_or_raise_exception(filepath, dirpath) sign_rpm_package(filepath) self._update_index(dirpath)
def consume_file(self, filepath, platform, arch): package_name, package_version, platform_string, architecture, extension = parse_filepath( filepath) directory = path.join(self.base_directory, package_name.replace('_', '-')) ensure_directory_exists(directory) filename = '{0}-{1}.tar.gz'.format(package_name, package_version) hard_link_or_raise_exception(filepath, path.join(directory, filename))
def consume_file(self, filepath, platform, arch): package_name, package_version, platform_string, architecture, extension = parse_filepath(filepath) platform_string = "vmware-esx" if extension == "ova" else platform_string # TODO this needs to change in our build dirpath = path.join(self.base_directory, 'packages', package_name, 'releases', package_version, 'distributions', platform_string, 'architectures', architecture, 'extensions', extension) ensure_directory_exists(dirpath) hard_link_or_raise_exception(filepath, dirpath) self.rebuild_index()
def _try_except_finally_on_filepath(self, func, index, filepath, *args, **kwargs): # TODO rejection needs a test try: func(self.config, index, filepath, *args, **kwargs) except: logger.exception("processing source {} failed, moving it to {}".format(filepath, self.config.rejected_directory)) try: hard_link_or_raise_exception(filepath, path.join(self.config.rejected_directory, index)) except: pass finally: remove(filepath)
def consume_file(self, filepath, platform, arch): from infi.app_repo.utils import sign_deb_package distribution_name, codename = platform.rsplit('-', 1) dirpath = self.deduce_dirname(distribution_name, codename, arch) hard_link_or_raise_exception(filepath, dirpath) sign_deb_package(filepath) with temporary_directory_context() as tempdir: hard_link_or_raise_exception(filepath, tempdir) contents = dpkg_scanpackages(['--multiversion', tempdir, '/dev/null']) relapath = dirpath.replace(path.join(self.base_directory, distribution_name), '').strip(path.sep) fixed_contents = contents.replace(tempdir, relapath) write_to_packages_file(dirpath, fixed_contents, 'a') self.generate_release_file_for_specific_distribution_and_version(distribution_name, codename)
def _try_except_finally_on_filepath( self, func, index, filepath, *args, **kwargs): # TODO rejection needs a test try: func(self.config, index, filepath, *args, **kwargs) except: logger.exception( "processing source {} failed, moving it to {}".format( filepath, self.config.rejected_directory)) try: hard_link_or_raise_exception( filepath, path.join(self.config.rejected_directory, index)) except: pass finally: remove(filepath)
def consume_file(self, filepath, platform, arch): package_name, package_version, platform_string, architecture, extension = parse_filepath(filepath) package_dir = path.join(self.base_directory, package_name) ensure_directory_exists(package_dir) final_filepath = hard_link_or_raise_exception(filepath, package_dir) if self._get_latest_update_file_in_directory(package_dir) == final_filepath: self._extract_update(package_dir, final_filepath)
def consume_file(self, filepath, platform, arch): package_name, package_version, platform_string, architecture, extension = parse_filepath( filepath) package_dir = path.join(self.base_directory, package_name) ensure_directory_exists(package_dir) final_filepath = hard_link_or_raise_exception(filepath, package_dir) if self._get_latest_update_file_in_directory( package_dir) == final_filepath: self._extract_update(package_dir, final_filepath)
def test_hard_link_or_raise_exception(self): with temporary_directory_context(): with fopen('src', 'w'): pass with self.assertRaises(FileAlreadyExists): hard_link_or_raise_exception('src', '.') hard_link_or_raise_exception('src', 'dst') with self.assertRaises(FileAlreadyExists): hard_link_or_raise_exception('src', 'dst')
def consume_file(self, filepath, platform, arch): package_name, package_version, platform_string, architecture, extension = parse_filepath(filepath) directory = path.join(self.base_directory, package_name) ensure_directory_exists(directory) filename = '{0}-{1}.tar.gz'.format(package_name, package_version) hard_link_or_raise_exception(filepath, path.join(directory, filename))
def consume_file(self, filepath, platform, arch): hard_link_or_raise_exception(filepath, self.base_directory)