From 0e39c2d9a88a26693de1cd522766df5894917b3f Mon Sep 17 00:00:00 2001 From: dglFromAtt Date: Thu, 8 Nov 2018 16:19:31 -0500 Subject: [PATCH] Provision topics on mr_clusters Change-Id: I3f6bb1c46ea77bf5c4cd1ad2ed6339adb25fb0d0 Signed-off-by: dglFromAtt Issue-ID: DMAAP-879 --- .../dmaap/dbcapi/service/MR_ClusterService.java | 25 ++++++++++++++++++++-- .../onap/dmaap/dbcapi/service/TopicService.java | 13 +++++++++-- .../dbcapi/resources/MR_ClusterResourceTest.java | 2 +- 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/onap/dmaap/dbcapi/service/MR_ClusterService.java b/src/main/java/org/onap/dmaap/dbcapi/service/MR_ClusterService.java index e2c661b..dea5d83 100644 --- a/src/main/java/org/onap/dmaap/dbcapi/service/MR_ClusterService.java +++ b/src/main/java/org/onap/dmaap/dbcapi/service/MR_ClusterService.java @@ -28,11 +28,13 @@ import java.util.Set; import javax.ws.rs.core.Response.Status; +import org.onap.dmaap.dbcapi.client.MrProvConnection; import org.onap.dmaap.dbcapi.database.DatabaseClass; import org.onap.dmaap.dbcapi.logging.BaseLoggingClass; import org.onap.dmaap.dbcapi.model.ApiError; import org.onap.dmaap.dbcapi.model.DcaeLocation; import org.onap.dmaap.dbcapi.model.MR_Cluster; +import org.onap.dmaap.dbcapi.model.Topic; import org.onap.dmaap.dbcapi.model.DmaapObject.DmaapObject_Status; import org.onap.dmaap.dbcapi.service.DcaeLocationService; import org.onap.dmaap.dbcapi.util.DmaapConfig; @@ -119,7 +121,7 @@ public class MR_ClusterService extends BaseLoggingClass { return null; } cluster.setLastMod(); - cluster.setStatus(DmaapObject_Status.VALID); + cluster.setStatus( addTopicsToCluster( cluster, apiError ) ); mr_clusters.put( cluster.getDcaeLocationName(), cluster ); DcaeLocationService svc = new DcaeLocationService(); DcaeLocation loc = svc.getDcaeLocation( cluster.getDcaeLocationName() ); @@ -145,6 +147,7 @@ public class MR_ClusterService extends BaseLoggingClass { return null; } cluster.setLastMod(); + cluster.setStatus( addTopicsToCluster( cluster, apiError ) ); mr_clusters.put( cluster.getDcaeLocationName(), cluster ); DcaeLocationService svc = new DcaeLocationService(); DcaeLocation loc = svc.getDcaeLocation( cluster.getDcaeLocationName() ); @@ -162,6 +165,7 @@ public class MR_ClusterService extends BaseLoggingClass { mr_clusters.put( cluster.getDcaeLocationName(), cluster ); } } + apiError.setCode(200); return cluster; } @@ -178,5 +182,22 @@ public class MR_ClusterService extends BaseLoggingClass { return mr_clusters.remove(key); } - + private DmaapObject_Status addTopicsToCluster( MR_Cluster cluster, ApiError err ){ + + TopicService ts = new TopicService(); + MrProvConnection prov = new MrProvConnection(); + List topics = ts.getAllTopicsWithoutClients(); + for( Topic topic: topics ) { + logger.info( "POST topic " + topic.getFqtn() + " to cluster " + cluster.getFqdn() + " in loc " + cluster.getDcaeLocationName()); + if ( prov.makeTopicConnection(cluster)) { + String resp = prov.doPostTopic(topic, err); + logger.info( "response code: " + err.getCode() ); + if ( ! err.is2xx() && ! (err.getCode() == 409) ) { + return DmaapObject_Status.INVALID; + } + } + } + + return DmaapObject_Status.VALID; + } } 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 6a93a21..e4bc96c 100644 --- a/src/main/java/org/onap/dmaap/dbcapi/service/TopicService.java +++ b/src/main/java/org/onap/dmaap/dbcapi/service/TopicService.java @@ -80,9 +80,18 @@ public class TopicService extends BaseLoggingClass { } public List getAllTopics() { + return getAllTopics( true ); + } + public List getAllTopicsWithoutClients() { + return getAllTopics(false); + } + + private List getAllTopics( Boolean withClients ) { ArrayList topics = new ArrayList(mr_topics.values()); - for( Topic topic: topics ) { - topic.setClients( clientService.getAllMrClients(topic.getFqtn())); + if ( withClients ) { + for( Topic topic: topics ) { + topic.setClients( clientService.getAllMrClients(topic.getFqtn())); + } } return topics; } diff --git a/src/test/java/org/onap/dmaap/dbcapi/resources/MR_ClusterResourceTest.java b/src/test/java/org/onap/dmaap/dbcapi/resources/MR_ClusterResourceTest.java index 2ff17d8..e4d1da0 100644 --- a/src/test/java/org/onap/dmaap/dbcapi/resources/MR_ClusterResourceTest.java +++ b/src/test/java/org/onap/dmaap/dbcapi/resources/MR_ClusterResourceTest.java @@ -163,7 +163,7 @@ public class MR_ClusterResourceTest extends JerseyTest { System.out.println( "POST MR_Cluster resp=" + resp.getStatus() + " " + resp.readEntity( String.class ) ); - assertTrue( resp.getStatus() == 201 ); + assertTrue( resp.getStatus() == 201 || resp.getStatus() == 200 ); // now really delete it resp = target( "mr_clusters"). -- 2.16.6