def _fix_filenames(self, old_names): # check for concurrent base names old_full_names = [self.engine.find_file(x) for x in old_names] rbases = [ os.path.basename(get_full_path(rfile)) for rfile in old_full_names ] rpaths = [get_full_path(rfile, step_up=1) for rfile in old_full_names] while rbases: base, path = rbases.pop(), rpaths.pop() if base in rbases: index = rbases.index(base) if path != rpaths[index]: msg = 'Resource "%s" occurs more than one time, rename to avoid data loss' raise TaurusConfigError(msg % base) old_full_names = self.__pack_dirs(old_full_names) new_base_names = [os.path.basename(f) for f in old_full_names] self.log.debug('Replace file names in config: %s with %s', old_names, new_base_names) replace_in_config(self.engine.config, old_names, new_base_names, log=self.log) old_full_names = list(set(old_full_names)) return old_full_names
def prepare(self): prov = self.engine.config.get(Provisioning.PROV) runat = self.parameters.get("run-at", "local") if prov != runat: self.log.debug( "Not running unpacker because of non-matching prov: %s != %s", prov, runat) return packed_list = copy.deepcopy( self.parameters.get(Unpacker.FILES, self.files)) unpacked_list = [] for archive in packed_list: full_archive_path = self.engine.find_file(archive) self.log.debug('Unpacking %s', archive) with zipfile.ZipFile(full_archive_path) as zip_file: zip_file.extractall(self.engine.artifacts_dir) archive = os.path.basename(archive) unpacked_list.append( archive[:-4]) # TODO: replace with top-level archive content replace_in_config(self.engine.config, packed_list, unpacked_list, log=self.log)
def prepare(self): packed_list = copy.deepcopy(self.parameters.get(Unpacker.FILES, self.files)) unpacked_list = [] for archive in packed_list: full_archive_path = self.engine.find_file(archive) self.log.debug('Unpacking %s', archive) with zipfile.ZipFile(full_archive_path) as zip_file: zip_file.extractall(self.engine.artifacts_dir) archive = os.path.basename(archive) unpacked_list.append(archive[:-4]) # TODO: replace with top-level archive content replace_in_config(self.engine.config, packed_list, unpacked_list, log=self.log)
def prepare(self): prov = self.engine.config.get(Provisioning.PROV) runat = self.parameters.get("run-at", "local") if prov != runat: self.log.debug("Not running unpacker because of non-matching prov: %s != %s", prov, runat) return packed_list = copy.deepcopy(self.parameters.get(Unpacker.FILES, self.files)) unpacked_list = [] for archive in packed_list: full_archive_path = self.engine.find_file(archive) self.log.debug('Unpacking %s', archive) with zipfile.ZipFile(full_archive_path) as zip_file: zip_file.extractall(self.engine.artifacts_dir) archive = os.path.basename(archive) unpacked_list.append(archive[:-4]) # TODO: replace with top-level archive content replace_in_config(self.engine.config, packed_list, unpacked_list, log=self.log)