Only create AAF Perm when needed
[dmaap/dbcapi.git] / src / main / java / org / onap / dmaap / dbcapi / service / DmaapService.java
index 03410f3..de87b00 100644 (file)
@@ -36,6 +36,7 @@ import org.onap.dmaap.dbcapi.aaf.DmaapGrant;
 import org.onap.dmaap.dbcapi.aaf.DmaapPerm;
 import org.onap.dmaap.dbcapi.aaf.AafService.ServiceType;
 import org.onap.dmaap.dbcapi.authentication.ApiPerms;
+import org.onap.dmaap.dbcapi.authentication.ApiPolicy;
 import org.onap.dmaap.dbcapi.database.DatabaseClass;
 import org.onap.dmaap.dbcapi.logging.BaseLoggingClass;
 import org.onap.dmaap.dbcapi.logging.DmaapbcLogMessageEnum;
@@ -52,12 +53,11 @@ public class DmaapService  extends BaseLoggingClass  {
        
        private Singleton<Dmaap> dmaapholder = DatabaseClass.getDmaap();
        
-       // TODO put these in properties file
+       
        String topicFactory; // = "org.openecomp.dcae.dmaap.topicFactory";
        String topicMgrRole; // = "org.openecomp.dmaapBC.TopicMgr";
-       
-       // TODO confirm this is  equivalent to dmaap.getTopicNsRoot() so we can retire it
        String dcaeTopicNs; // = "org.openecomp.dcae.dmaap";
+       private boolean multiSite;
        
        
        public DmaapService() {
@@ -65,6 +65,7 @@ public class DmaapService  extends BaseLoggingClass  {
                topicFactory = p.getProperty("MR.TopicFactoryNS", "MR.topicFactoryNS.not.set");
                topicMgrRole = p.getProperty("MR.TopicMgrRole", "MR.TopicMgrRole.not.set" );
                dcaeTopicNs = dmaapholder.get().getTopicNsRoot();
+               multiSite = "true".equalsIgnoreCase(p.getProperty("MR.multisite", "true"));
                
        }
        
@@ -83,9 +84,16 @@ public class DmaapService  extends BaseLoggingClass  {
                        dmaapholder.update(nd);
 
                        AafService aaf = new AafService( ServiceType.AAF_Admin);
-                       ApiPerms p = new ApiPerms();
-                       p.setEnvMap();
-                       boolean anythingWrong = setTopicMgtPerms(  nd,  aaf ) || createMmaTopic();
+                       ApiPolicy apiPolicy = new ApiPolicy();
+                       if ( apiPolicy.getUseAuthClass() ) {
+                               ApiPerms p = new ApiPerms();
+                               p.setEnvMap();
+                       }
+                       boolean anythingWrong = false;
+                       
+                       if ( multiSite ) {
+                               anythingWrong = setTopicMgtPerms(  nd,  aaf ) || createMmaTopic();
+                       }
                                        
                        if ( anythingWrong ) {
                                dmaap.setStatus(DmaapObject_Status.INVALID); 
@@ -118,10 +126,15 @@ public class DmaapService  extends BaseLoggingClass  {
                if ( ! dmaap.isStatusValid()  || ! nd.getDmaapName().equals(dmaap.getDmaapName()) || dmaap.getVersion().equals( "0") ) {
                        nd.setLastMod();
                        dmaapholder.update(nd);  //need to set this so the following perms will pick up any new vals.
-                       ApiPerms p = new ApiPerms();
-                       p.setEnvMap();
+                       ApiPolicy apiPolicy = new ApiPolicy();
+                       if ( apiPolicy.getUseAuthClass()) {
+                               ApiPerms p = new ApiPerms();
+                               p.setEnvMap();
+                       }
                        AafService aaf = new AafService( ServiceType.AAF_Admin);
-                       anythingWrong = setTopicMgtPerms(  nd,  aaf ) || createMmaTopic();
+                       if ( multiSite ) {
+                               anythingWrong = setTopicMgtPerms(  nd,  aaf ) || createMmaTopic();
+                       }
                }
                                        
                if ( anythingWrong ) {