package org.onap.blueprintgenerator.models.blueprint;
+import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.createStringInput;
+import static org.onap.blueprintgenerator.models.blueprint.BpConstants.CPU_LIMIT;
+import static org.onap.blueprintgenerator.models.blueprint.BpConstants.MEMORY_LIMIT;
+
import java.util.LinkedHashMap;
import java.util.TreeMap;
-
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
//TODO: Auto-generated Javadoc
/* (non-Javadoc)
-* @see java.lang.Object#toString()
-*/
-@Getter @Setter
+ * @see java.lang.Object#toString()
+ */
+@Getter
+@Setter
/* (non-Javadoc)
-* @see java.lang.Object#toString()
-*/
+ * @see java.lang.Object#toString()
+ */
@Builder
/**
-* Instantiates a new resource config obj.
-*/
+ * Instantiates a new resource config obj.
+ */
@NoArgsConstructor
/**
-* Instantiates a new resource config obj.
-*
-* @param limits the limits
-* @param requests the requests
-*/
+ * Instantiates a new resource config obj.
+ *
+ * @param limits the limits
+ * @param requests the requests
+ */
@AllArgsConstructor
public class ResourceConfig {
- /** The limits. */
- private TreeMap<String, GetInput> limits;
-
- /** The requests. */
- private TreeMap<String, GetInput> requests;
-
-
- /**
- * Creates the resource config.
- *
- * @param inps the inps
- * @param name the name
- * @return the tree map
- */
- public TreeMap<String, LinkedHashMap<String, Object>> createResourceConfig(TreeMap<String, LinkedHashMap<String, Object>> inps, String name){
-
- LinkedHashMap<String, Object> mi = new LinkedHashMap<>();
- mi.put("type", "string");
- mi.put("default", "128Mi");
-
- LinkedHashMap<String, Object> m = new LinkedHashMap<>();
- m.put("type", "string");
- m.put("default", "250m");
+ private TreeMap<String, GetInput> limits;
+ private TreeMap<String, GetInput> requests;
- if(!name.equals("")) {
- name = name + "_";
- }
+ /**
+ * Creates the resource config.
+ *
+ * @param inputs the inputs
+ * @param name the name
+ * @return the tree map
+ */
+ public TreeMap<String, LinkedHashMap<String, Object>> createResourceConfig(
+ TreeMap<String, LinkedHashMap<String, Object>> inputs, String name) {
- //set the limits
- TreeMap<String, GetInput> lim = new TreeMap<>();
+ String namePrefix = getNamePrefix(name);
- GetInput cpu = new GetInput();
- cpu.setBpInputName(name + "cpu_limit");
- lim.put("cpu", cpu);
+ limits = createInputs(inputs, namePrefix, "limit");
+ requests = createInputs(inputs, namePrefix, "request");
- GetInput memL = new GetInput();
- memL.setBpInputName(name + "memory_limit");
- lim.put("memory", memL);
+ return inputs;
+ }
- inps.put(name + "cpu_limit", m);
- inps.put(name + "memory_limit", mi);
+ private TreeMap<String, GetInput> createInputs(TreeMap<String, LinkedHashMap<String, Object>> inputs,
+ String namePrefix,
+ String inputType) {
- this.setLimits(lim);
+ LinkedHashMap<String, Object> memoryLimit = createStringInput(MEMORY_LIMIT);
+ LinkedHashMap<String, Object> cpuLimit = createStringInput(CPU_LIMIT);
- //set the requests
- TreeMap<String, GetInput> req = new TreeMap<>();
+ final String cpuKey = namePrefix + "cpu_" + inputType;
+ final String memoryKey = namePrefix + "memory_" + inputType;
+ TreeMap<String, GetInput> inps = new TreeMap<>();
- GetInput cpuR = new GetInput();
- cpuR.setBpInputName(name + "cpu_request");
- req.put("cpu", cpuR);
+ insertInput("cpu", cpuKey, inps);
+ insertInput("memory", memoryKey, inps);
- GetInput memR = new GetInput();
- memR.setBpInputName(name + "memory_request");
- req.put("memory", memR);
+ inputs.put(cpuKey, cpuLimit);
+ inputs.put(memoryKey, memoryLimit);
- inps.put(name + "cpu_request", m);
- inps.put(name + "memory_request", mi);
+ return inps;
+ }
- this.setRequests(req);
+ private void insertInput(String type, String name, TreeMap<String, GetInput> inputs) {
+ GetInput input = new GetInput();
+ input.setBpInputName(name);
+ inputs.put(type, input);
+ }
- return inps;
- }
+ private String getNamePrefix(String name) {
+ return (name == null || name.isEmpty()) ? "" : name + "_";
+ }
}