def do_remove(repo_dir, pkg_path): mdgen = MetaDataGenerator(setup_metadata_conf(repo_dir)) try: print("Removing package %s from repodir %s" % (pkg_path, repo_dir)) remove_metadata(repo_dir, pkg_path) mdgen.doRepoMetadata() mdgen.doFinalMove() except (IOError, OSError), e: raise utils.MDError, ('Cannot access/write repodata files: %s') % e
def final_repodata_move(self): # setup the yum config to do the final steps of generating sqlite db files try: mdgen = MetaDataGenerator(self.metadata_conf) mdgen.doRepoMetadata() # do the final move to the repodata location from .repodata mdgen.doFinalMove() except: # might have missing metadata count not perform final move _LOG.error("Error performing final move, could be missing pkg metadata files")
def do_add(repo_dir, pkg_path): mdgen = MetaDataGenerator(setup_metadata_conf(repo_dir)) try: # mdgen._setup_old_metadata_lookup() print("Adding package %s to repodir %s" % (pkg_path, repo_dir)) add_metadata(repo_dir, pkg_path) mdgen.doRepoMetadata() mdgen.doFinalMove() except (IOError, OSError), e: raise utils.MDError, ('Cannot access/write repodata files: %s') % e
def run(self): """ Invokes the metadata generation by taking a backup of existing repodata; looking up units and merging the per unit snippets; generate sqlite db, repomd files using createrepo apis and finally merge back any other """ # backup existing repodata dir self._backup_existing_repodata() # extract the per rpm unit metadata and merge to create package xml data self.merge_unit_metadata() # setup the yum config to do the final steps of generating sqlite db files mdgen = MetaDataGenerator(self.metadata_conf) mdgen.doRepoMetadata() # do the final move to the repodata location from .repodata mdgen.doFinalMove() # lookup and merge updateinfo, comps and other metadata self.merge_comps_xml() self.merge_updateinfo_xml() # merge any custom metadata stored on the scratchpad, this includes prestodelta self.merge_custom_repodata()
def add_package_to_repo(repodir, packages): mdgen = MetaDataGenerator(setup_metadata_conf(repodir)) try: mdgen._setup_old_metadata_lookup() all_packages = mdgen.getFileList(mdgen.package_dir, '.rpm') + packages mdgen.pkgcount = len(all_packages) mdgen.openMetadataDocs() mdgen.writeMetadataDocs(all_packages) mdgen.closeMetadataDocs() mdgen.doRepoMetadata() mdgen.doFinalMove() except (IOError, OSError), e: raise utils.MDError, ('Cannot access/write repodata files: %s') % e