private boolean isValidRepository() { return groupRepository != null && !groupRepository.getMemberRepositories().isEmpty(); }
private List<UpdateSiteProxyRepository> updateSites(GroupRepository group) { List<UpdateSiteProxyRepository> us = Lists.newArrayList(); for (Repository repo : group.getMemberRepositories()) { if (repo.getRepositoryKind().isFacetAvailable(UpdateSiteProxyRepository.class)) { us.add(repo.adaptToFacet(UpdateSiteProxyRepository.class)); } } if (us.isEmpty()) { getLogger().warn( "Group '" + group.getId() + "' has no UpdateSite repositories members. " + ROLE_HINT + " will be silent skipped!"); } return us; }
private void checkForCyclicReference( final String id, List<String> memberRepositoryIds, String path ) throws InvalidGroupingException { if ( memberRepositoryIds.contains( id ) ) { throw new InvalidGroupingException( id, path ); } for ( String memberId : memberRepositoryIds ) { try { GroupRepository group = repoRegistry.getRepositoryWithFacet( memberId, GroupRepository.class ); checkForCyclicReference( id, group.getMemberRepositoryIds(), path + '/' + memberId ); } catch ( NoSuchRepositoryException e ) { // not a group repo, just ignore } } }
private void reindexRepositoryGroup( GroupRepository groupRepo, boolean fullReindex ) throws IOException, NoSuchRepositoryException { if ( groupRepo.isIndexable() ) { if ( fullReindex ) { resetGroupIndex( groupRepo.getId(), true ); } List<Repository> group = groupRepo.getMemberRepositories(); for ( Repository repository : group ) { if ( repository.getRepositoryKind().isFacetAvailable( GroupRepository.class ) ) { reindexRepositoryGroup( repository.adaptToFacet( GroupRepository.class ), fullReindex ); mergeRepositoryGroupIndexWithMember( repository ); } else { reindexRepository( repository, fullReindex ); } } publishRepositoryGroupIndex( groupRepo.getId() ); } }
RepositoryItemUid groupRepoMdUid = groupRepository.createUid("/" + PATH_OF_REPOMD_XML); try { groupRepoMdUid.getLock().lock(Action.update); log.debug("Merging repository group '{}' out of {}", groupRepository.getId(), memberReposBaseDirs); commandLineExecutor.exec(buildCommand(repoBaseDir, memberReposBaseDirs)); MetadataProcessor.processMergedMetadata(groupRepository, memberReposBaseDirs); log.debug("Group repository '{}' merged", groupRepository.getId()); log.debug( "Copying Yum metadata from {} to group repository {}", memberReposBaseDirs.get(0), groupRepository.getId() ); copyDirectory(new File(memberReposBaseDirs.get(0), PATH_OF_REPODATA), groupRepodata); return new YumRepositoryImpl(repoBaseDir, groupRepository.getId(), null);
resource.setId(group.getId()); resource.setName(group.getName()); resource.setFormat(group.getRepositoryContentClass().getId()); resource.setExposed(group.isExposed()); for (String repoId : group.getMemberRepositoryIds()) { RepositoryGroupMemberRepository member = new RepositoryGroupMemberRepository();
@Override protected String getMessage() { return format("Merging Yum metadata in repository '%s'", groupRepository.getId()); }
resource.setResourceURI(createRepositoryGroupReference(request, group.getId()).toString()); resource.setId(group.getId()); resource.setExposed(group.isExposed()); resource.setUserManaged(group.isUserManaged()); .getRepositoryWithFacet(group.getId(), GroupRepository.class).getRepositoryContentClass() .getId()); resource.setName(group.getName());
protected void publishRepositoryGroupIndex( GroupRepository group ) throws IOException { if ( group.isIndexable() ) { for ( Repository repository : group.getMemberRepositories() ) { if ( repository.getRepositoryKind().isFacetAvailable( GroupRepository.class ) ) { publishRepositoryGroupIndex( repository.adaptToFacet( GroupRepository.class ) ); } else { publishRepositoryIndex( repository ); } } publishRepositoryIndex( group ); } }
if ( !group.isIndexable() ) String groupId = group.getId(); getLogger().info( "Cascading merge of group indexes for group \"" + groupId + "\", where repository \""
resource.setId( group.getId() ); resource.setName( group.getName() ); resource.setFormat( group.getRepositoryContentClass().getId() ); resource.setExposed( group.isExposed() ); for ( String repoId : group.getMemberRepositoryIds() )
@Override public void markDirty() { try { lock.writeLock().lock(); yumRepository = null; log.debug("Marked {} as dirty.", repository.getId()); } finally { lock.writeLock().unlock(); } }
resource.setResourceURI( createRepositoryGroupReference( request, group.getId() ).toString() ); resource.setId( group.getId() ); resource.setExposed( group.isExposed() ); resource.setUserManaged( group.isUserManaged() ); .getRepositoryWithFacet( group.getId(), GroupRepository.class ).getRepositoryContentClass() .getId() ); resource.setName( group.getName() );
if ( !group.isIndexable() ) List<Repository> repositoriesList = group.getMemberRepositories();
private void process( SnapshotRemovalRequest request, SnapshotRemovalResult result, GroupRepository group ) { for ( Repository repository : group.getMemberRepositories() ) { process( request, result, repository ); } }
final String requestPath = request.getRequestPath(); if (Action.read.equals(action) && requestPath.endsWith(PATH_OF_REPOMD_XML) && groupRepository != null) { Yum yum = yumRegistry.get(groupRepository.getId()); if (yum != null && yum instanceof YumGroup) { for (Repository member : groupRepository.getMemberRepositories()) { if (member.getRepositoryKind().isFacetAvailable(ProxyRepository.class)) { try { log.debug("Fetching {}:{} member of {}", member.getId(), PATH_OF_REPOMD_XML, groupRepository.getId()); member.retrieveItem(new ResourceStoreRequest(PATH_OF_REPOMD_XML)); log.debug( "Could not retrieve {} from {}, member of yum enabled group {}. Ignoring.", PATH_OF_REPOMD_XML, member.getId(), groupRepository.getId(), e );
public List<IOException> perform() { final List<IOException> exceptions = new ArrayList<IOException>(); if (ISGROUP(repository)) { List<Repository> members = repository.adaptToFacet(GroupRepository.class).getMemberRepositories(); for (Repository member : members) { TaskUtil.checkInterruption(); try { perform(member); } catch (IOException e) { exceptions.add(e); } } } return exceptions; }
for (final Repository memberRepository : groupRepository.getMemberRepositories()) { log.trace("Looking up latest Yum metadata in {} member of {}", memberRepository.getId(), groupRepository.getId()); StorageItem repomdItem = null; try {
public List<String> getGroupsOfRepository( final String repositoryId ) { final ArrayList<String> result = new ArrayList<String>(); try { final Repository repository = getRepository( repositoryId ); for ( GroupRepository group : getGroupsOfRepository( repository ) ) { result.add( group.getId() ); } } catch ( NoSuchRepositoryException e ) { // ignore, just return empty collection } return result; }