Fix sonar issues
[dcaegen2/platform.git] / mod / bpgenerator / onap / src / main / java / org / onap / blueprintgenerator / service / common / PropertiesService.java
index e858d88..2758f8c 100644 (file)
@@ -4,6 +4,7 @@
  *  *  org.onap.dcae
  *  *  ================================================================================
  *  *  Copyright (c) 2020  AT&T Intellectual Property. All rights reserved.
+ *  *  Copyright (c) 2021  Nokia. All rights reserved.
  *  *  ================================================================================
  *  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  *  you may not use this file except in compliance with the License.
 
 package org.onap.blueprintgenerator.service.common;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
 import org.onap.blueprintgenerator.constants.Constants;
 import org.onap.blueprintgenerator.model.common.Appconfig;
 import org.onap.blueprintgenerator.model.common.GetInput;
+import org.onap.blueprintgenerator.model.common.Properties;
 import org.onap.blueprintgenerator.model.common.ResourceConfig;
 import org.onap.blueprintgenerator.model.componentspec.OnapAuxilary;
 import org.onap.blueprintgenerator.model.componentspec.OnapComponentSpec;
@@ -35,25 +42,13 @@ import org.onap.blueprintgenerator.model.dmaap.Streams;
 import org.onap.blueprintgenerator.model.dmaap.TlsInfo;
 import org.onap.blueprintgenerator.service.base.BlueprintHelperService;
 import org.onap.blueprintgenerator.service.dmaap.StreamsService;
-import org.onap.blueprintgenerator.model.common.Properties;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.ArrayList;
-import java.util.List;
-
 /**
  * @author : Ravi Mantena
- * @date 10/16/2020
- * Application: ONAP - Blueprint Generator
- * Common ONAP Service used by ONAP and DMAAP Blueprint to create Properties Node
+ * @date 10/16/2020 Application: ONAP - Blueprint Generator Common ONAP Service to create Properties Node
  */
-
-
-
 @Service("onapPropertiesService")
 public class PropertiesService {
 
@@ -72,24 +67,34 @@ public class PropertiesService {
     @Autowired
     private BlueprintHelperService blueprintHelperService;
 
-    // Method to create ONAP properties
-    public Map<String,Object> createOnapProperties(Map<String, LinkedHashMap<String, Object>> inputs, OnapComponentSpec onapComponentSpec, String override) {
-        Map<String,Object> response = new HashMap<>();
-        org.onap.blueprintgenerator.model.common.Properties properties = new org.onap.blueprintgenerator.model.common.Properties();
+    /**
+     * Creates ONAP properties
+     *
+     * @param inputs            Inputs
+     * @param onapComponentSpec OnapComponentSpec
+     * @param override          Override
+     * @return
+     */
+    public Map<String, Object> createOnapProperties(
+        Map<String, Map<String, Object>> inputs,
+        OnapComponentSpec onapComponentSpec,
+        String override) {
+        Map<String, Object> response = new HashMap<>();
+        org.onap.blueprintgenerator.model.common.Properties properties =
+            new org.onap.blueprintgenerator.model.common.Properties();
 
         GetInput image = new GetInput();
         image.setBpInputName("image");
         properties.setImage(image);
 
-        LinkedHashMap<String, Object> img = new LinkedHashMap<>();
-        inputs.put("image", blueprintHelperService.createStringInput(onapComponentSpec.getArtifacts()[0].getUri()));
-
+        inputs.put(
+            "image",
+            blueprintHelperService.createStringInput(onapComponentSpec.getArtifacts()[0].getUri()));
 
         GetInput location = new GetInput();
         location.setBpInputName("location_id");
         properties.setLocation_id(location);
 
-        LinkedHashMap<String, Object> locMap = new LinkedHashMap();
         inputs.put("location_id", blueprintHelperService.createStringInput(Constants.EMPTY_VALUE));
 
         properties.setLog_info(onapComponentSpec.getAuxilary().getLog_info());
@@ -98,15 +103,17 @@ public class PropertiesService {
         replica.setBpInputName("replicas");
         properties.setReplicas(replica);
 
-        LinkedHashMap<String, Object> replicas = blueprintHelperService.createIntegerInput("number of instances", 1);
+        Map<String, Object> replicas =
+            blueprintHelperService.createIntegerInput("number of instances", 1);
         inputs.put("replicas", replicas);
 
         OnapAuxilary onapAuxilary = onapComponentSpec.getAuxilary();
 
         properties.setDocker_config(onapAuxilary);
 
-        Map<String, Object> appConfigResponse = appConfigService.createAppconfig(inputs, onapComponentSpec, override, false);
-        inputs = (Map<String, LinkedHashMap<String, Object>>) appConfigResponse.get("inputs");
+        Map<String, Object> appConfigResponse =
+            appConfigService.createAppconfig(inputs, onapComponentSpec, false);
+        inputs = (Map<String, Map<String, Object>>) appConfigResponse.get("inputs");
         properties.setApplication_config((Appconfig) appConfigResponse.get("appconfig"));
 
         GetInput always_pull_image = new GetInput();
@@ -114,47 +121,68 @@ public class PropertiesService {
 
         properties.setAlways_pull_image(always_pull_image);
 
-        LinkedHashMap<String, Object> inputAlwaysPullImage = blueprintHelperService.createBooleanInput("Set to true if the image should always be pulled",true);
+        Map<String, Object> inputAlwaysPullImage =
+            blueprintHelperService.createBooleanInput(
+                "Set to true if the image should always be pulled", true);
         inputs.put("always_pull_image", inputAlwaysPullImage);
 
         String sType = onapComponentSpec.getSelf().getName();
         sType = sType.replace('.', '-');
         properties.setService_component_type(sType);
 
+        inputs.put(Constants.SERVICE_COMPONENT_NAME_OVERRIDE,
+            addServiceComponentNameOverride(override, properties));
+
         Map<String, Object> tls_info = onapComponentSpec.getAuxilary().getTls_info();
-        if(tls_info != null) {
+        if (tls_info != null) {
             addTlsInfo(onapComponentSpec, inputs, properties);
             if (tls_info.get(Constants.USE_EXTERNAL_TLS_FIELD) != null) {
-                inputs.putAll(addExternalTlsInfo(onapComponentSpec,properties));
+                inputs.putAll(addExternalTlsInfo(onapComponentSpec, properties));
             }
         }
 
-        Map<String, Object> resourceConfigResponse = resourceConfigService.createResourceConfig(inputs, onapComponentSpec.getSelf().getName());
-        inputs = (Map<String, LinkedHashMap<String, Object>>) resourceConfigResponse.get("inputs");
-        properties.setResource_config((ResourceConfig) resourceConfigResponse.get("resourceConfig"));
+        Map<String, Object> resourceConfigResponse =
+            resourceConfigService
+                .createResourceConfig(inputs, onapComponentSpec.getSelf().getName());
+        inputs = (Map<String, Map<String, Object>>) resourceConfigResponse.get("inputs");
+        properties
+            .setResource_config((ResourceConfig) resourceConfigResponse.get("resourceConfig"));
 
         response.put("properties", properties);
         response.put("inputs", inputs);
         return response;
     }
 
-    // Method to create Dmaap properties
-    public  Map<String,Object> createDmaapProperties(Map<String, LinkedHashMap<String, Object>> inputs, OnapComponentSpec onapComponentSpec, String override) {
-        Map<String,Object> response = new HashMap<>();
-        org.onap.blueprintgenerator.model.common.Properties properties = new org.onap.blueprintgenerator.model.common.Properties();
+    /**
+     * Creates Dmaap properties
+     *
+     * @param inputs            Inputs
+     * @param onapComponentSpec OnapComponentSpec
+     * @param override          Override
+     * @return
+     */
+    public Map<String, Object> createDmaapProperties(
+        Map<String, Map<String, Object>> inputs,
+        OnapComponentSpec onapComponentSpec,
+        String override) {
+        Map<String, Object> response = new HashMap<>();
+        org.onap.blueprintgenerator.model.common.Properties properties =
+            new org.onap.blueprintgenerator.model.common.Properties();
 
         GetInput image = new GetInput();
         image.setBpInputName("tag_version");
         properties.setImage(image);
 
-        LinkedHashMap<String, Object> img = new LinkedHashMap<>();
-        inputs.put("tag_version", blueprintHelperService.createStringInput(onapComponentSpec.getArtifacts()[0].getUri()));
+        Map<String, Object> img = new LinkedHashMap<>();
+        inputs.put(
+            "tag_version",
+            blueprintHelperService.createStringInput(onapComponentSpec.getArtifacts()[0].getUri()));
 
         GetInput location = new GetInput();
         location.setBpInputName("location_id");
         properties.setLocation_id(location);
 
-        LinkedHashMap<String, Object> locMap = new LinkedHashMap();
+        Map<String, Object> locMap = new LinkedHashMap();
         inputs.put("location_id", blueprintHelperService.createStringInput(Constants.EMPTY_VALUE));
 
         properties.setLog_info(onapComponentSpec.getAuxilary().getLog_info());
@@ -163,11 +191,14 @@ public class PropertiesService {
         sType = sType.replace('.', '-');
         properties.setService_component_type(sType);
 
+        inputs.put(Constants.SERVICE_COMPONENT_NAME_OVERRIDE,
+            addServiceComponentNameOverride(override, properties));
+
         Map<String, Object> tls_info = onapComponentSpec.getAuxilary().getTls_info();
-        if(tls_info != null) {
+        if (tls_info != null) {
             addTlsInfo(onapComponentSpec, inputs, properties);
             if (tls_info.get(Constants.USE_EXTERNAL_TLS_FIELD) != null) {
-                inputs.putAll(addExternalTlsInfo(onapComponentSpec,properties));
+                inputs.putAll(addExternalTlsInfo(onapComponentSpec, properties));
             }
         }
 
@@ -175,31 +206,50 @@ public class PropertiesService {
         replica.setBpInputName("replicas");
         properties.setReplicas(replica);
 
-        LinkedHashMap<String, Object> rep =  blueprintHelperService.createIntegerInput( "number of instances", 1);
+        Map<String, Object> rep =
+            blueprintHelperService.createIntegerInput("number of instances", 1);
         inputs.put("replicas", rep);
 
         OnapAuxilary onapAuxilary = onapComponentSpec.getAuxilary();
 
         properties.setDocker_config(onapAuxilary);
 
-        Map<String, Object> appConfigResponse = appConfigService.createAppconfig(inputs, onapComponentSpec, override, true);
-        inputs = (Map<String, LinkedHashMap<String, Object>>) appConfigResponse.get("inputs");
+        Map<String, Object> appConfigResponse =
+            appConfigService.createAppconfig(inputs, onapComponentSpec, true);
+        inputs = (Map<String, Map<String, Object>>) appConfigResponse.get("inputs");
         properties.setApplication_config((Appconfig) appConfigResponse.get("appconfig"));
 
-
         List<Streams> pubStreams = new ArrayList();
-        if(onapComponentSpec.getStreams() != null) {
+        if (onapComponentSpec.getStreams() != null) {
             if (onapComponentSpec.getStreams().getPublishes() != null) {
                 for (Publishes publishes : onapComponentSpec.getStreams().getPublishes()) {
                     if (blueprintHelperService.isMessageRouterType(publishes.getType())) {
-                        String topic = publishes.getConfig_key() + Constants._TOPIC;
-                        Map<String, Object> streamsMessageRouterResponse = streamsService.createStreams(inputs, topic, publishes.getType(), publishes.getConfig_key(), publishes.getRoute(), 'p');
-                        inputs = (Map<String, LinkedHashMap<String, Object>>) streamsMessageRouterResponse.get("inputs");
+                        String topic = publishes.getConfig_key() + Constants.A_TOPIC;
+                        Map<String, Object> streamsMessageRouterResponse =
+                            streamsService.createStreams(
+                                inputs,
+                                topic,
+                                publishes.getType(),
+                                publishes.getConfig_key(),
+                                publishes.getRoute(),
+                                'p');
+                        inputs =
+                            (Map<String, Map<String, Object>>)
+                                streamsMessageRouterResponse.get("inputs");
                         pubStreams.add((Streams) streamsMessageRouterResponse.get("streams"));
                     } else if (blueprintHelperService.isDataRouterType(publishes.getType())) {
-                        String feed = publishes.getConfig_key() + Constants._FEED;
-                        Map<String, Object> streamsDataRouterResponse = streamsService.createStreams(inputs, feed, publishes.getType(), publishes.getConfig_key(), publishes.getRoute(), 'p');
-                        inputs = (Map<String, LinkedHashMap<String, Object>>) streamsDataRouterResponse.get("inputs");
+                        String feed = publishes.getConfig_key() + Constants.A_FEED;
+                        Map<String, Object> streamsDataRouterResponse =
+                            streamsService.createStreams(
+                                inputs,
+                                feed,
+                                publishes.getType(),
+                                publishes.getConfig_key(),
+                                publishes.getRoute(),
+                                'p');
+                        inputs =
+                            (Map<String, Map<String, Object>>)
+                                streamsDataRouterResponse.get("inputs");
                         pubStreams.add((Streams) streamsDataRouterResponse.get("streams"));
                     }
                 }
@@ -207,53 +257,91 @@ public class PropertiesService {
         }
 
         ArrayList<Streams> subStreams = new ArrayList();
-        if(onapComponentSpec.getStreams() != null) {
+        if (onapComponentSpec.getStreams() != null) {
             if (onapComponentSpec.getStreams().getSubscribes() != null) {
                 for (Subscribes subscribes : onapComponentSpec.getStreams().getSubscribes()) {
                     if (blueprintHelperService.isMessageRouterType(subscribes.getType())) {
-                        String topic = subscribes.getConfig_key() + Constants._TOPIC;
-                        Map<String, Object> streamsMessageRouterResponse = streamsService.createStreams(inputs, topic, subscribes.getType(), subscribes.getConfig_key(), subscribes.getRoute(), 's');
-                        inputs = (Map<String, LinkedHashMap<String, Object>>) streamsMessageRouterResponse.get("inputs");
+                        String topic = subscribes.getConfig_key() + Constants.A_TOPIC;
+                        Map<String, Object> streamsMessageRouterResponse =
+                            streamsService.createStreams(
+                                inputs,
+                                topic,
+                                subscribes.getType(),
+                                subscribes.getConfig_key(),
+                                subscribes.getRoute(),
+                                's');
+                        inputs =
+                            (Map<String, Map<String, Object>>)
+                                streamsMessageRouterResponse.get("inputs");
                         subStreams.add((Streams) streamsMessageRouterResponse.get("streams"));
                     } else if (blueprintHelperService.isDataRouterType(subscribes.getType())) {
-                        String feed = subscribes.getConfig_key() + Constants._FEED;
-                        Map<String, Object> streamsDataRouterResponse = streamsService.createStreams(inputs, feed, subscribes.getType(), subscribes.getConfig_key(), subscribes.getRoute(), 's');
-                        inputs = (Map<String, LinkedHashMap<String, Object>>) streamsDataRouterResponse.get("inputs");
+                        String feed = subscribes.getConfig_key() + Constants.A_FEED;
+                        Map<String, Object> streamsDataRouterResponse =
+                            streamsService.createStreams(
+                                inputs,
+                                feed,
+                                subscribes.getType(),
+                                subscribes.getConfig_key(),
+                                subscribes.getRoute(),
+                                's');
+                        inputs =
+                            (Map<String, Map<String, Object>>)
+                                streamsDataRouterResponse.get("inputs");
                         subStreams.add((Streams) streamsDataRouterResponse.get("streams"));
                     }
                 }
             }
         }
 
-        if(!pubStreams.isEmpty())
+        if (!pubStreams.isEmpty()) {
             properties.setStreams_publishes(pubStreams);
+        }
 
-        if(!subStreams.isEmpty())
+        if (!subStreams.isEmpty()) {
             properties.setStreams_subscribes(subStreams);
+        }
 
-        Map<String, Object> resourceConfigResponse = resourceConfigService.createResourceConfig(inputs, onapComponentSpec.getSelf().getName());
-        inputs = (Map<String, LinkedHashMap<String, Object>>) resourceConfigResponse.get("inputs");
-        properties.setResource_config((ResourceConfig) resourceConfigResponse.get("resourceConfig"));
+        Map<String, Object> resourceConfigResponse =
+            resourceConfigService
+                .createResourceConfig(inputs, onapComponentSpec.getSelf().getName());
+        inputs = (Map<String, Map<String, Object>>) resourceConfigResponse.get("inputs");
+        properties
+            .setResource_config((ResourceConfig) resourceConfigResponse.get("resourceConfig"));
 
         response.put("properties", properties);
         response.put("inputs", inputs);
         return response;
     }
 
-    private void addTlsInfo(OnapComponentSpec onapComponentSpec, Map<String, LinkedHashMap<String, Object>> inputs, Properties properties) {
+    private Map<String, Object> addServiceComponentNameOverride(String override, Properties properties) {
+        GetInput overrideGetInput = new GetInput();
+        overrideGetInput.setBpInputName(Constants.SERVICE_COMPONENT_NAME_OVERRIDE);
+        properties.setService_component_name_override(overrideGetInput);
+        return blueprintHelperService.createStringInput(override != null ? override : "");
+    }
+
+    private void addTlsInfo(
+        OnapComponentSpec onapComponentSpec,
+        Map<String, Map<String, Object>> inputs,
+        Properties properties) {
         TlsInfo tlsInfo = new TlsInfo();
-        tlsInfo.setCertDirectory((String) onapComponentSpec.getAuxilary().getTls_info().get("cert_directory"));
+        tlsInfo.setCertDirectory(
+            (String) onapComponentSpec.getAuxilary().getTls_info().get("cert_directory"));
         GetInput useTLSFlag = new GetInput();
         useTLSFlag.setBpInputName("use_tls");
         tlsInfo.setUseTls(useTLSFlag);
         properties.setTls_info(tlsInfo);
-        LinkedHashMap<String, Object> useTlsFlagInput = blueprintHelperService.createBooleanInput("flag to indicate tls enable/disable",onapComponentSpec.getAuxilary().getTls_info().get("use_tls"));
+        Map<String, Object> useTlsFlagInput =
+            blueprintHelperService.createBooleanInput(
+                "flag to indicate tls enable/disable",
+                onapComponentSpec.getAuxilary().getTls_info().get("use_tls"));
         inputs.put("use_tls", useTlsFlagInput);
     }
 
- private Map<String, LinkedHashMap<String, Object>> addExternalTlsInfo(OnapComponentSpec onapComponentSpec, Properties properties) {
-  properties.setExternal_cert(externalTlsInfoFactoryService.createFromComponentSpec(onapComponentSpec));
-  return externalTlsInfoFactoryService.createInputListFromComponentSpec(onapComponentSpec);
- }
-
+    private Map<String, Map<String, Object>> addExternalTlsInfo(
+        OnapComponentSpec onapComponentSpec, Properties properties) {
+        properties.setExternal_cert(
+            externalTlsInfoFactoryService.createFromComponentSpec(onapComponentSpec));
+        return externalTlsInfoFactoryService.createInputListFromComponentSpec(onapComponentSpec);
+    }
 }