From: dglFromAtt Date: Sat, 10 Nov 2018 19:23:57 +0000 (-0500) Subject: Catch topic already assigned to mmagent X-Git-Tag: 1.0.26~92 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F34%2F72434%2F1;p=dmaap%2Fdbcapi.git Catch topic already assigned to mmagent Change-Id: I75c9fffc2785cb59bac9e7ccaddebfec72b4c6e1 Signed-off-by: dglFromAtt Issue-ID: DMAAP-880 --- diff --git a/src/main/java/org/onap/dmaap/dbcapi/service/MirrorMakerService.java b/src/main/java/org/onap/dmaap/dbcapi/service/MirrorMakerService.java index 8acc4f3..382e536 100644 --- a/src/main/java/org/onap/dmaap/dbcapi/service/MirrorMakerService.java +++ b/src/main/java/org/onap/dmaap/dbcapi/service/MirrorMakerService.java @@ -155,7 +155,7 @@ public class MirrorMakerService extends BaseLoggingClass { return ret; } - public MirrorMaker getNextMM( String source, String target ) { + public MirrorMaker getNextMM( String source, String target, String fqtn ) { int i = 0; MirrorMaker mm = null; while( mm == null ) { @@ -164,6 +164,9 @@ public class MirrorMakerService extends BaseLoggingClass { if ( mm == null ) { mm = new MirrorMaker(source, target, i); } + if ( mm.getTopics().contains(fqtn) ) { + break; + } if ( mm.getTopicCount() >= maxTopicsPerMM ) { logger.info( "getNextMM: MM " + mm.getMmName() + " has " + mm.getTopicCount() + " topics. Moving to next MM"); i++; @@ -177,17 +180,17 @@ public class MirrorMakerService extends BaseLoggingClass { public MirrorMaker splitMM( MirrorMaker orig ) { - int index = 1; String source = orig.getSourceCluster(); String target = orig.getTargetCluster(); ArrayList whitelist = orig.getTopics(); while( whitelist.size() > maxTopicsPerMM ) { - MirrorMaker mm = this.getNextMM( source, target ); + int last = whitelist.size() - 1; String topic = whitelist.get(last); whitelist.remove(last); + MirrorMaker mm = this.getNextMM( source, target, topic ); mm.addTopic(topic); this.updateMirrorMaker(mm); } diff --git a/src/main/java/org/onap/dmaap/dbcapi/service/TopicService.java b/src/main/java/org/onap/dmaap/dbcapi/service/TopicService.java index a633982..56ed967 100644 --- a/src/main/java/org/onap/dmaap/dbcapi/service/TopicService.java +++ b/src/main/java/org/onap/dmaap/dbcapi/service/TopicService.java @@ -433,7 +433,7 @@ public class TopicService extends BaseLoggingClass { if ( source != null && target != null ) { try { logger.info( "Create a MM from " + source + " to " + target ); - MirrorMaker mm = bridge.getNextMM( source, target); + MirrorMaker mm = bridge.getNextMM( source, target, topic.getFqtn()); mm.addTopic(topic.getFqtn()); bridge.updateMirrorMaker(mm); } catch ( Exception ex ) {