Skip to content

Commit 991b398

Browse files
authored
Merge pull request #2507 from yma96/master
Fix koji proxy group member concurrent issue, use API to update member instead of override
2 parents b61172b + 8ad742a commit 991b398

File tree

7 files changed

+43
-8
lines changed

7 files changed

+43
-8
lines changed

addons/koji/common/src/main/java/org/commonjava/indy/koji/content/KojiContentManagerDecorator.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -566,13 +566,13 @@ private Group adjustTargetGroup( final RemoteRepository buildRepo, final Group s
566566
"Adding remote repository for Koji build: "
567567
+ buildRepo.getMetadata( NVR ) );
568568

569-
storeDataManager.storeArtifactStore( targetGroup, changeSummary, false, true, new EventMetadata() );
569+
// storeDataManager.storeArtifactStore( targetGroup, changeSummary, false, true, new EventMetadata() );
570+
// Use repo service API to append the member of group instead of to override during target group update.
571+
storeDataManager.addConstituentToGroup( targetGroup.getKey(), buildRepo.getKey() );
570572
}
571-
catch ( IndyDataException e )
573+
catch ( IndyWorkflowException e )
572574
{
573-
wfEx.set( new IndyWorkflowException( "Cannot store target-group: %s changes for: %s. Error: %s", e,
574-
targetGroup.getName(), buildRepo.getMetadata( NVR ),
575-
e.getMessage() ) );
575+
wfEx.set( e );
576576
return null;
577577
}
578578

api/src/main/java/org/commonjava/indy/data/StoreDataManager.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package org.commonjava.indy.data;
1717

18+
import org.commonjava.indy.IndyWorkflowException;
1819
import org.commonjava.indy.audit.ChangeSummary;
1920
import org.commonjava.indy.model.core.ArtifactStore;
2021
import org.commonjava.indy.model.core.Group;
@@ -177,6 +178,9 @@ Set<Group> affectedBy( Collection<StoreKey> keys )
177178

178179
Set<Group> filterAffectedGroups( Set<Group> affectedGroups );
179180

181+
void addConstituentToGroup( StoreKey key, StoreKey member )
182+
throws IndyWorkflowException;
183+
180184
class ContextualTask
181185
{
182186
private String threadName;

db/common/src/main/java/org/commonjava/indy/db/common/AbstractStoreDataManager.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import org.apache.commons.lang3.StringUtils;
1919
import org.commonjava.cdi.util.weft.Locker;
2020
import org.commonjava.cdi.util.weft.NamedThreadFactory;
21+
import org.commonjava.indy.IndyWorkflowException;
2122
import org.commonjava.indy.audit.ChangeSummary;
2223
import org.commonjava.indy.change.event.ArtifactStoreUpdateType;
2324
import org.commonjava.indy.conf.IndyConfiguration;
@@ -681,4 +682,8 @@ public boolean isExcludedGroup( Group group )
681682
String filter = indyConfiguration.getAffectedGroupsExcludeFilter();
682683
return isNotBlank( filter ) && group.getName().matches( filter );
683684
}
685+
686+
@Override
687+
public abstract void addConstituentToGroup( StoreKey key, StoreKey member )
688+
throws IndyWorkflowException;
684689
}

db/infinispan/src/main/java/org/commonjava/indy/infinispan/data/InfinispanStoreDataManager.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package org.commonjava.indy.infinispan.data;
1717

18+
import org.commonjava.indy.IndyWorkflowException;
1819
import org.commonjava.indy.audit.ChangeSummary;
1920
import org.commonjava.indy.conf.IndyConfiguration;
2021
import org.commonjava.indy.data.NoOpStoreEventDispatcher;
@@ -344,4 +345,10 @@ public void initByPkgMap()
344345
keys.add( store.getKey() );
345346
}
346347
}
348+
349+
@Override
350+
public void addConstituentToGroup( StoreKey key, StoreKey member )
351+
throws IndyWorkflowException
352+
{
353+
}
347354
}

db/memory/src/main/java/org/commonjava/indy/mem/data/MemoryStoreDataManager.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package org.commonjava.indy.mem.data;
1717

1818
import org.commonjava.cdi.util.weft.NamedThreadFactory;
19+
import org.commonjava.indy.IndyWorkflowException;
1920
import org.commonjava.indy.audit.ChangeSummary;
2021
import org.commonjava.indy.data.IndyDataException;
2122
import org.commonjava.indy.data.NoOpStoreEventDispatcher;
@@ -29,7 +30,6 @@
2930
import org.slf4j.LoggerFactory;
3031

3132
import javax.enterprise.context.ApplicationScoped;
32-
import javax.enterprise.inject.Alternative;
3333
import javax.inject.Inject;
3434
import java.util.HashMap;
3535
import java.util.HashSet;
@@ -180,4 +180,9 @@ protected ArtifactStore putArtifactStoreInternal( StoreKey storeKey, ArtifactSto
180180
return stores.put( storeKey, store );
181181
}
182182

183+
@Override
184+
public void addConstituentToGroup( StoreKey key, StoreKey member )
185+
throws IndyWorkflowException
186+
{
187+
}
183188
}

db/service/src/main/java/org/commonjava/indy/db/service/ServiceStoreDataManager.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package org.commonjava.indy.db.service;
1717

18+
import org.commonjava.indy.IndyWorkflowException;
1819
import org.commonjava.indy.audit.ChangeSummary;
1920
import org.commonjava.indy.client.core.Indy;
2021
import org.commonjava.indy.client.core.IndyClientException;
@@ -56,7 +57,6 @@
5657
import static java.util.Collections.emptyMap;
5758
import static java.util.Collections.emptySet;
5859
import static org.apache.commons.lang3.StringUtils.isBlank;
59-
import static org.commonjava.indy.db.common.StoreUpdateAction.STORE;
6060
import static org.commonjava.indy.model.core.ArtifactStore.METADATA_CHANGELOG;
6161
import static org.commonjava.indy.model.core.StoreType.hosted;
6262

@@ -492,4 +492,18 @@ protected void removeAffectedStore( StoreKey key )
492492
logger.debug( "Do nothing here. Delegate to repository service for further operations." );
493493
}
494494

495+
@Override
496+
public void addConstituentToGroup( StoreKey key, StoreKey member )
497+
throws IndyWorkflowException
498+
{
499+
try
500+
{
501+
client.module( IndyStoresClientModule.class ).addConstituentToGroup( key, member );
502+
}
503+
catch ( IndyClientException e )
504+
{
505+
throw new IndyWorkflowException( "Failed to add member %s into Group %s, Error: %s", e, member, key,
506+
e.getMessage() );
507+
}
508+
}
495509
}

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@
106106

107107
<!-- commonjava/redhat projects -->
108108
<indyModelVersion>1.5</indyModelVersion>
109-
<indyClientVersion>3.4.0</indyClientVersion>
109+
<indyClientVersion>3.4.4-SNAPSHOT</indyClientVersion>
110110
<atlasVersion>1.1.4</atlasVersion>
111111
<galleyVersion>1.20</galleyVersion>
112112
<weftVersion>1.24</weftVersion>

0 commit comments

Comments
 (0)