Skip to content
Snippets Groups Projects
Commit ea49f5f8 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-6177 change configmap null check and userPassword empty check

parent 39ab7992
Branches
Tags
No related merge requests found
...@@ -25,12 +25,10 @@ public class OzgCloudElsterTransferUserRemoteService { ...@@ -25,12 +25,10 @@ public class OzgCloudElsterTransferUserRemoteService {
} }
public ConfigMap createConfigMap(String configmapNamespace, String configMapName) { public ConfigMap createConfigMap(String configmapNamespace, String configMapName) {
String yaml = "fileFormat: 1\nusers:\n";
ConfigMap configMap = new ConfigMapBuilder() ConfigMap configMap = new ConfigMapBuilder()
.withNewMetadata() .withNewMetadata()
.withName(configMapName) .withName(configMapName)
.endMetadata() .endMetadata()
.addToData("users.yaml", yaml)
.build(); .build();
return client.configMaps().inNamespace(configmapNamespace).resource(configMap).create(); return client.configMaps().inNamespace(configmapNamespace).resource(configMap).create();
} }
......
package de.ozgcloud.operator.elstertransfer.user; package de.ozgcloud.operator.elstertransfer.user;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.UUID; import java.util.UUID;
...@@ -29,11 +31,13 @@ public class OzgCloudElsterTransferUserService { ...@@ -29,11 +31,13 @@ public class OzgCloudElsterTransferUserService {
public void updateConfigMapAndRestartDeploymentAndCreateSecret(String namespace) { public void updateConfigMapAndRestartDeploymentAndCreateSecret(String namespace) {
LOG.info("Updating/Creating Configmap"); LOG.info("Updating/Creating Configmap");
String userPassword = generateUsersYamlAndUpdateConfigMap(namespace, ETR_NAMESPACE, CONFIG_MAP_NAME); String userPassword = generateUsersYamlAndUpdateConfigMap(namespace, ETR_NAMESPACE, CONFIG_MAP_NAME);
if (!userPassword.isEmpty()) {
LOG.info("Restarting Deployment"); LOG.info("Restarting Deployment");
restartDeployment(ETR_NAMESPACE, ETR_DEPLOYMENT_NAME); restartDeployment(ETR_NAMESPACE, ETR_DEPLOYMENT_NAME);
LOG.info("Creating Secret"); LOG.info("Creating Secret");
createOrUpdateSecret(namespace, userPassword, MUK_USER_SECRET_NAME); createOrUpdateSecret(namespace, userPassword, MUK_USER_SECRET_NAME);
} }
}
public void deleteUserAndRestartDeploymentIfNotKeepUserAndUserExists(OzgCloudElsterTransferUser user) { public void deleteUserAndRestartDeploymentIfNotKeepUserAndUserExists(OzgCloudElsterTransferUser user) {
String namespace = user.getMetadata().getNamespace(); String namespace = user.getMetadata().getNamespace();
...@@ -54,22 +58,24 @@ public class OzgCloudElsterTransferUserService { ...@@ -54,22 +58,24 @@ public class OzgCloudElsterTransferUserService {
String userPassword = generatePassword(); String userPassword = generatePassword();
ConfigMap configMap = remoteService.getConfigMap(configmapNamespace, configMapName); ConfigMap configMap = remoteService.getConfigMap(configmapNamespace, configMapName);
if (configMap == null) {
LOG.debug("Creating ConfigMap '{}' in namespace '{}'", configMapName, configmapNamespace);
configMap = remoteService.createConfigMap(configmapNamespace, configMapName);
}
String usersYaml = addUserToUserYaml(namespace, configMap, userPassword); String usersYaml = addUserToUserYaml(namespace, configMap, userPassword);
if (!usersYaml.isEmpty()) { if (!usersYaml.isEmpty()) {
updateConfigMap(configmapNamespace, configMapName, configMap, usersYaml); updateConfigMap(configmapNamespace, configMapName, configMap, usersYaml);
} else {
userPassword = "";
} }
return userPassword; return userPassword;
} }
String addUserToUserYaml(String namespace, ConfigMap configMap, String userPassword) { String addUserToUserYaml(String namespace, ConfigMap configMap, String userPassword) {
String usersYaml = ""; String usersYaml = "";
ConfigMapUserList users = getUsersFromConfigMap(configMap); ConfigMapUserList users;
if (configMap != null) {
users = getUsersFromConfigMap(configMap);
} else {
users = new ConfigMapUserList(new ArrayList<>());
}
// use namespace as user "login" and "group" // use namespace as user "login" and "group"
if (userExistsInList(users, namespace)) { if (userExistsInList(users, namespace)) {
...@@ -82,7 +88,10 @@ public class OzgCloudElsterTransferUserService { ...@@ -82,7 +88,10 @@ public class OzgCloudElsterTransferUserService {
} }
void updateConfigMap(String configmapNamespace, String configMapName, ConfigMap configMap, String usersYaml) { void updateConfigMap(String configmapNamespace, String configMapName, ConfigMap configMap, String usersYaml) {
if (configMap == null) {
LOG.debug("Creating ConfigMap '{}' in namespace '{}'", configMapName, configmapNamespace);
configMap = remoteService.createConfigMap(configmapNamespace, configMapName);
}
remoteService.updateConfigMapData(configMap, USERS_KEY, usersYaml); remoteService.updateConfigMapData(configMap, USERS_KEY, usersYaml);
LOG.debug("ConfigMap updated successfully: {}", configMapName); LOG.debug("ConfigMap updated successfully: {}", configMapName);
} }
......
...@@ -128,7 +128,6 @@ class OzgCloudElsterTransferUserRemoteServiceTest { ...@@ -128,7 +128,6 @@ class OzgCloudElsterTransferUserRemoteServiceTest {
.withNewMetadata() .withNewMetadata()
.withName(configMapName) .withName(configMapName)
.endMetadata() .endMetadata()
.addToData("users.yaml", "value")
.build(); .build();
when(configMapResource.create()).thenReturn(configMap); when(configMapResource.create()).thenReturn(configMap);
...@@ -141,8 +140,6 @@ class OzgCloudElsterTransferUserRemoteServiceTest { ...@@ -141,8 +140,6 @@ class OzgCloudElsterTransferUserRemoteServiceTest {
assertNotNull(result); assertNotNull(result);
assert configMapName.equals(result.getMetadata().getName()); assert configMapName.equals(result.getMetadata().getName());
assert "value".equals(result.getData().get("users.yaml"));
} }
@Test @Test
......
...@@ -210,16 +210,6 @@ class OzgCloudElsterTransferUserServiceTest { ...@@ -210,16 +210,6 @@ class OzgCloudElsterTransferUserServiceTest {
when(remoteService.getConfigMap(anyString(), anyString())).thenReturn(configMap); when(remoteService.getConfigMap(anyString(), anyString())).thenReturn(configMap);
} }
@Test
void shouldCallCreateConfigMap() {
when(remoteService.getConfigMap(configMapNamespace, configMapName)).thenReturn(null);
when(remoteService.createConfigMap(configMapNamespace, configMapName)).thenReturn(configMap);
service.generateUsersYamlAndUpdateConfigMap(namespace, configMapNamespace, configMapName);
verify(remoteService).createConfigMap(configMapNamespace, configMapName);
}
@Test @Test
void shouldNotCallCreateConfigMap() { void shouldNotCallCreateConfigMap() {
when(remoteService.getConfigMap(configMapNamespace, configMapName)).thenReturn(configMap); when(remoteService.getConfigMap(configMapNamespace, configMapName)).thenReturn(configMap);
...@@ -271,22 +261,29 @@ class OzgCloudElsterTransferUserServiceTest { ...@@ -271,22 +261,29 @@ class OzgCloudElsterTransferUserServiceTest {
@Nested @Nested
class addUserToUserYamlTests { class addUserToUserYamlTests {
@BeforeEach @Test
public void setUp() { void shouldCallgetUsersFromConfigMap() {
Map<String, String> mockData = new HashMap<>(); Map<String, String> mockData = new HashMap<>();
mockData.put("users.yaml", "users: []"); mockData.put("users.yaml", "users: []");
when(configMap.getData()).thenReturn(mockData); when(configMap.getData()).thenReturn(mockData);
}
@Test
void shouldCallgetUsersFromConfigMap() {
service.addUserToUserYaml(namespace, configMap, "password"); service.addUserToUserYaml(namespace, configMap, "password");
verify(service).getUsersFromConfigMap(configMap); verify(service).getUsersFromConfigMap(configMap);
} }
@Test
void shouldNotCallgetUsersFromConfigMap() {
service.addUserToUserYaml(namespace, null, "password");
verify(service, never()).getUsersFromConfigMap(any());
}
@Test @Test
void shouldCallUserExistsInList() { void shouldCallUserExistsInList() {
Map<String, String> mockData = new HashMap<>();
mockData.put("users.yaml", "users: []");
when(configMap.getData()).thenReturn(mockData);
when(service.getUsersFromConfigMap(configMap)).thenReturn(users); when(service.getUsersFromConfigMap(configMap)).thenReturn(users);
when(users.getUsersList()).thenReturn(List.of(Map.of( when(users.getUsersList()).thenReturn(List.of(Map.of(
"login", "testUser", "login", "testUser",
...@@ -301,6 +298,9 @@ class OzgCloudElsterTransferUserServiceTest { ...@@ -301,6 +298,9 @@ class OzgCloudElsterTransferUserServiceTest {
@Test @Test
void shouldCallAddNewUserToListWhenUserNotExists() { void shouldCallAddNewUserToListWhenUserNotExists() {
Map<String, String> mockData = new HashMap<>();
mockData.put("users.yaml", "users: []");
when(configMap.getData()).thenReturn(mockData);
when(service.getUsersFromConfigMap(configMap)).thenReturn(users); when(service.getUsersFromConfigMap(configMap)).thenReturn(users);
service.addUserToUserYaml(namespace, configMap, "password"); service.addUserToUserYaml(namespace, configMap, "password");
...@@ -310,6 +310,9 @@ class OzgCloudElsterTransferUserServiceTest { ...@@ -310,6 +310,9 @@ class OzgCloudElsterTransferUserServiceTest {
@Test @Test
void shouldCallconstructYamlEntries() { void shouldCallconstructYamlEntries() {
Map<String, String> mockData = new HashMap<>();
mockData.put("users.yaml", "users: []");
when(configMap.getData()).thenReturn(mockData);
when(service.getUsersFromConfigMap(configMap)).thenReturn(users); when(service.getUsersFromConfigMap(configMap)).thenReturn(users);
service.addUserToUserYaml(namespace, configMap, "password"); service.addUserToUserYaml(namespace, configMap, "password");
...@@ -319,6 +322,9 @@ class OzgCloudElsterTransferUserServiceTest { ...@@ -319,6 +322,9 @@ class OzgCloudElsterTransferUserServiceTest {
@Test @Test
void TestUserYamlShouldNotBeEmpty() { void TestUserYamlShouldNotBeEmpty() {
Map<String, String> mockData = new HashMap<>();
mockData.put("users.yaml", "users: []");
when(configMap.getData()).thenReturn(mockData);
// when(service.getUsersFromConfigMap(configMap)).thenReturn(users); // when(service.getUsersFromConfigMap(configMap)).thenReturn(users);
String userYaml = service.addUserToUserYaml(namespace, configMap, "password"); String userYaml = service.addUserToUserYaml(namespace, configMap, "password");
...@@ -328,6 +334,9 @@ class OzgCloudElsterTransferUserServiceTest { ...@@ -328,6 +334,9 @@ class OzgCloudElsterTransferUserServiceTest {
@Test @Test
void TestUserYamlShouldBeEmpty() { void TestUserYamlShouldBeEmpty() {
Map<String, String> mockData = new HashMap<>();
mockData.put("users.yaml", "users: []");
when(configMap.getData()).thenReturn(mockData);
when(service.getUsersFromConfigMap(configMap)).thenReturn(users); when(service.getUsersFromConfigMap(configMap)).thenReturn(users);
when(service.userExistsInList(users, namespace)).thenReturn(true); when(service.userExistsInList(users, namespace)).thenReturn(true);
...@@ -340,13 +349,26 @@ class OzgCloudElsterTransferUserServiceTest { ...@@ -340,13 +349,26 @@ class OzgCloudElsterTransferUserServiceTest {
@Nested @Nested
class UpdateConfigMapTests { class UpdateConfigMapTests {
@Test
void shouldCallCreateConfigMapIfConfigMapNotExists() {
service.updateConfigMap(configMapNamespace, configMapName, null, "mockedUsersYaml");
verify(remoteService).createConfigMap(configMapNamespace, configMapName);
}
@Test
void shouldNotCallCreateConfigMapIfConfigMapExists() {
service.updateConfigMap(configMapNamespace, configMapName, configMap, "mockedUsersYaml");
verify(remoteService, never()).createConfigMap(any(), any());
}
@Test @Test
void shouldCallUpdateConfigMapData() { void shouldCallUpdateConfigMapData() {
service.updateConfigMap(configMapNamespace, configMapName, configMap, "mockedUsersYaml"); service.updateConfigMap(configMapNamespace, configMapName, configMap, "mockedUsersYaml");
verify(remoteService).updateConfigMapData(configMap, usersKey, "mockedUsersYaml"); verify(remoteService).updateConfigMapData(configMap, usersKey, "mockedUsersYaml");
verify(remoteService, never()).createConfigMap(any(), any());
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment