Skip to content
Snippets Groups Projects
Commit d7471000 authored by Lukasz Lopatowski's avatar Lukasz Lopatowski
Browse files

Pull request #804: NMAAS-957: Allow for using the same generated value...

Pull request #804: NMAAS-957: Allow for using the same generated value multiple times as helm parameters

Merge in NMAAS/nmaas from feature/NMAAS-957-allow-for-autogenerated-strings-to-be-passed-both-as-value-and-config to develop

* commit '35959d43':
  NMAAS-957: Allow for using the same generated value multiple times as helm parameters
parents 3503997e 35959d43
No related branches found
No related tags found
No related merge requests found
......@@ -160,17 +160,25 @@ public class KubernetesManager implements ContainerOrchestrator {
private Map<String, String> createAdditionalGlobalParametersMap(Map<String, String> globalDeployParameters) {
Map<String, String> additionalParameters = new HashMap<>();
globalDeployParameters.forEach((k, v) -> additionalParameters.put(k, createParameterValueString(v)));
globalDeployParameters.forEach((k, v) -> additionalParameters.put(k, createParameterValueString(v, additionalParameters)));
return additionalParameters;
}
private String createParameterValueString(String value) {
private String createParameterValueString(String value, Map<String, String> additionalParameters) {
// verify if parameter needs to be autogenerated
if (value.contains("%RANDOM")) {
String randomExpression = value.split("%")[1];
if (randomExpression.contains("STRING")) {
String randomValue = "";
// verify if an already generated value can be used or generate new one
if (additionalParameters.containsKey(randomExpression)) {
randomValue = additionalParameters.get(randomExpression);
} else if (randomExpression.contains("STRING")) {
int randomStringLength = Integer.parseInt(randomExpression.replace("RANDOM_STRING_", ""));
return value.replace("%" + randomExpression + "%", RandomStringUtils.randomAlphanumeric(randomStringLength));
randomValue = RandomStringUtils.randomAlphanumeric(randomStringLength);
// store generated value to be used for subsequent paramaters
additionalParameters.put(randomExpression, randomValue);
}
return value.replace("%" + randomExpression + "%", randomValue);
}
return value;
}
......
......@@ -206,9 +206,10 @@ public class KubernetesManagerTest {
verify(repositoryManager, times(1)).storeService(serviceInfo.capture());
assertEquals(deploymentId, serviceInfo.getValue().getDeploymentId());
assertNotNull(serviceInfo.getValue().getAdditionalParameters());
assertEquals(11, serviceInfo.getValue().getAdditionalParameters().size());
assertEquals(14, serviceInfo.getValue().getAdditionalParameters().size());
assertEquals("customvalue1", serviceInfo.getValue().getAdditionalParameters().get("customkey1"));
assertEquals("customvalue2", serviceInfo.getValue().getAdditionalParameters().get("customkey2"));
assertEquals(serviceInfo.getValue().getAdditionalParameters().get("customkey3"), serviceInfo.getValue().getAdditionalParameters().get("customkey5"));
assertEquals(4, serviceInfo.getValue().getAdditionalParameters().get("customkey3").length());
assertEquals(49, serviceInfo.getValue().getAdditionalParameters().get("customkey4").length());
assertTrue(serviceInfo.getValue().getAdditionalParameters().get("customkey4").matches("beginning-(.*)-ending"));
......@@ -219,6 +220,8 @@ public class KubernetesManagerTest {
assertEquals("domain", serviceInfo.getValue().getAdditionalParameters().get("domainCodeName"));
assertEquals("extBaseUrl", serviceInfo.getValue().getAdditionalParameters().get("baseUrl"));
assertEquals("descriptiveDeploymentId", serviceInfo.getValue().getAdditionalParameters().get("releaseName"));
assertNotNull(serviceInfo.getValue().getAdditionalParameters().get("RANDOM_STRING_4"));
assertNotNull(serviceInfo.getValue().getAdditionalParameters().get("RANDOM_STRING_32"));
}
private Map<String, String> getStringStringMap() {
......@@ -227,6 +230,7 @@ public class KubernetesManagerTest {
globalDeployParameters.put("customkey2", "customvalue2");
globalDeployParameters.put("customkey3", "%RANDOM_STRING_4%");
globalDeployParameters.put("customkey4", "beginning-%RANDOM_STRING_32%-ending");
globalDeployParameters.put("customkey5", "%RANDOM_STRING_4%");
return globalDeployParameters;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment