Improve support for http to MR
[dmaap/dbcapi.git] / src / main / java / org / onap / dmaap / dbcapi / service / MR_ClusterService.java
index 977288b..2dae579 100644 (file)
@@ -26,22 +26,25 @@ import java.util.Map;
 
 import javax.ws.rs.core.Response.Status;
 
-
-
-
-
-
-
-import org.onap.dmaap.dbcapi.aaf.database.DatabaseClass;
+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.DmaapObject.DmaapObject_Status;
+import org.onap.dmaap.dbcapi.util.DmaapConfig;
 
 public class MR_ClusterService extends BaseLoggingClass {
 
        private Map<String, MR_Cluster> mr_clusters = DatabaseClass.getMr_clusters();
+       private boolean multiSite;
+       
+       public MR_ClusterService() {
+               logger.info( "new ClusterService");
+               DmaapConfig p = (DmaapConfig)DmaapConfig.getConfig();
+               multiSite = "true".equalsIgnoreCase(p.getProperty("MR.multisite", "true"));
+                               
+       }
        
        public Map<String, MR_Cluster> getMR_Clusters() {                       
                return mr_clusters;
@@ -95,7 +98,7 @@ public class MR_ClusterService extends BaseLoggingClass {
                mr_clusters.put( cluster.getDcaeLocationName(), cluster );
                DcaeLocationService svc = new DcaeLocationService();
                DcaeLocation loc = svc.getDcaeLocation( cluster.getDcaeLocationName() );
-               if ( loc != null && loc.isCentral() ) {
+               if ( loc != null && loc.isCentral() && multiSite ) {
                        ApiError resp = TopicService.setBridgeClientPerms( cluster );
                        if ( ! resp.is2xx() ) {
                                logger.error( "Unable to provision Bridge to " + cluster.getDcaeLocationName() );
@@ -120,7 +123,12 @@ public class MR_ClusterService extends BaseLoggingClass {
                mr_clusters.put( cluster.getDcaeLocationName(), cluster );
                DcaeLocationService svc = new DcaeLocationService();
                DcaeLocation loc = svc.getDcaeLocation( cluster.getDcaeLocationName() );
-               if ( loc.isCentral() ) {
+               if ( loc == null ) {
+                       logger.error( "DcaeLocation not found for cluster in " + cluster.getDcaeLocationName() );
+                       cluster.setLastMod();
+                       cluster.setStatus(DmaapObject_Status.INVALID);
+                       mr_clusters.put( cluster.getDcaeLocationName(), cluster );
+               } else if ( loc.isCentral()  & multiSite ) {
                        ApiError resp = TopicService.setBridgeClientPerms( cluster );
                        if ( ! resp.is2xx() ) {
                                logger.error( "Unable to provision Bridge to " + cluster.getDcaeLocationName() );