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
No related branches found
No related tags found
No related merge requests found
......@@ -25,12 +25,10 @@ public class OzgCloudElsterTransferUserRemoteService {
}
public ConfigMap createConfigMap(String configmapNamespace, String configMapName) {
String yaml = "fileFormat: 1\nusers:\n";
ConfigMap configMap = new ConfigMapBuilder()
.withNewMetadata()
.withName(configMapName)
.endMetadata()
.addToData("users.yaml", yaml)
.build();
return client.configMaps().inNamespace(configmapNamespace).resource(configMap).create();
}
......
package de.ozgcloud.operator.elstertransfer.user;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
......@@ -29,11 +31,13 @@ public class OzgCloudElsterTransferUserService {
public void updateConfigMapAndRestartDeploymentAndCreateSecret(String namespace) {
LOG.info("Updating/Creating Configmap");
String userPassword = generateUsersYamlAndUpdateConfigMap(namespace, ETR_NAMESPACE, CONFIG_MAP_NAME);
if (!userPassword.isEmpty()) {
LOG.info("Restarting Deployment");
restartDeployment(ETR_NAMESPACE, ETR_DEPLOYMENT_NAME);
LOG.info("Creating Secret");
createOrUpdateSecret(namespace, userPassword, MUK_USER_SECRET_NAME);
}
}
public void deleteUserAndRestartDeploymentIfNotKeepUserAndUserExists(OzgCloudElsterTransferUser user) {
String namespace = user.getMetadata().getNamespace();
......@@ -54,22 +58,24 @@ public class OzgCloudElsterTransferUserService {
String userPassword = generatePassword();
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);
if (!usersYaml.isEmpty()) {
updateConfigMap(configmapNamespace, configMapName, configMap, usersYaml);
} else {
userPassword = "";
}
return userPassword;
}
String addUserToUserYaml(String namespace, ConfigMap configMap, String userPassword) {
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"
if (userExistsInList(users, namespace)) {
......@@ -82,7 +88,10 @@ public class OzgCloudElsterTransferUserService {
}
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);
LOG.debug("ConfigMap updated successfully: {}", configMapName);
}
......
......@@ -128,7 +128,6 @@ class OzgCloudElsterTransferUserRemoteServiceTest {
.withNewMetadata()
.withName(configMapName)
.endMetadata()
.addToData("users.yaml", "value")
.build();
when(configMapResource.create()).thenReturn(configMap);
......@@ -141,8 +140,6 @@ class OzgCloudElsterTransferUserRemoteServiceTest {
assertNotNull(result);
assert configMapName.equals(result.getMetadata().getName());
assert "value".equals(result.getData().get("users.yaml"));
}
@Test
......
......@@ -210,16 +210,6 @@ class OzgCloudElsterTransferUserServiceTest {
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
void shouldNotCallCreateConfigMap() {
when(remoteService.getConfigMap(configMapNamespace, configMapName)).thenReturn(configMap);
......@@ -271,22 +261,29 @@ class OzgCloudElsterTransferUserServiceTest {
@Nested
class addUserToUserYamlTests {
@BeforeEach
public void setUp() {
@Test
void shouldCallgetUsersFromConfigMap() {
Map<String, String> mockData = new HashMap<>();
mockData.put("users.yaml", "users: []");
when(configMap.getData()).thenReturn(mockData);
}
@Test
void shouldCallgetUsersFromConfigMap() {
service.addUserToUserYaml(namespace, configMap, "password");
verify(service).getUsersFromConfigMap(configMap);
}
@Test
void shouldNotCallgetUsersFromConfigMap() {
service.addUserToUserYaml(namespace, null, "password");
verify(service, never()).getUsersFromConfigMap(any());
}
@Test
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(users.getUsersList()).thenReturn(List.of(Map.of(
"login", "testUser",
......@@ -301,6 +298,9 @@ class OzgCloudElsterTransferUserServiceTest {
@Test
void shouldCallAddNewUserToListWhenUserNotExists() {
Map<String, String> mockData = new HashMap<>();
mockData.put("users.yaml", "users: []");
when(configMap.getData()).thenReturn(mockData);
when(service.getUsersFromConfigMap(configMap)).thenReturn(users);
service.addUserToUserYaml(namespace, configMap, "password");
......@@ -310,6 +310,9 @@ class OzgCloudElsterTransferUserServiceTest {
@Test
void shouldCallconstructYamlEntries() {
Map<String, String> mockData = new HashMap<>();
mockData.put("users.yaml", "users: []");
when(configMap.getData()).thenReturn(mockData);
when(service.getUsersFromConfigMap(configMap)).thenReturn(users);
service.addUserToUserYaml(namespace, configMap, "password");
......@@ -319,6 +322,9 @@ class OzgCloudElsterTransferUserServiceTest {
@Test
void TestUserYamlShouldNotBeEmpty() {
Map<String, String> mockData = new HashMap<>();
mockData.put("users.yaml", "users: []");
when(configMap.getData()).thenReturn(mockData);
// when(service.getUsersFromConfigMap(configMap)).thenReturn(users);
String userYaml = service.addUserToUserYaml(namespace, configMap, "password");
......@@ -328,6 +334,9 @@ class OzgCloudElsterTransferUserServiceTest {
@Test
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.userExistsInList(users, namespace)).thenReturn(true);
......@@ -340,13 +349,26 @@ class OzgCloudElsterTransferUserServiceTest {
@Nested
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
void shouldCallUpdateConfigMapData() {
service.updateConfigMap(configMapNamespace, configMapName, configMap, "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