From fb3ecdceeb8fed7509a0817b30b63da4a61406bd Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Tue, 22 Oct 2024 23:33:55 +0200 Subject: [PATCH] check if usersYaml empty and update users tmpl --- .../OzgCloudElsterTransferUserService.java | 22 ++++++++++++------- src/main/resources/users.tmpl | 2 +- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/main/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserService.java b/src/main/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserService.java index e8bd5b8..1e195ea 100644 --- a/src/main/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserService.java +++ b/src/main/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserService.java @@ -91,7 +91,9 @@ public class OzgCloudElsterTransferUserService { if (Objects.isNull(configMap)) { return false; } - return getUsersFromConfigMap(configMap).existsUser(userLogin); + OzgCloudElsterTransferConfigMapUserList users = getUsersFromConfigMap(configMap); + LOG.debug("userExists is '{}' in namespace '{}'", users.existsUser(userLogin), userLogin); + return users.existsUser(userLogin); } @@ -113,6 +115,10 @@ public class OzgCloudElsterTransferUserService { OzgCloudElsterTransferConfigMapUserList getUsersFromConfigMap(ConfigMap configMap) { String usersYaml = configMap.getData().get(Constants.USERS_KEY); + if (Objects.isNull(usersYaml)) { + LOG.debug("userYaml is empty"); + return new OzgCloudElsterTransferConfigMapUserList(new ArrayList<>()); + } Map<String, Object> load = new Yaml().load(usersYaml); List<Map<String, Object>> usersList = (List<Map<String, Object>>) load.get("users"); return new OzgCloudElsterTransferConfigMapUserList(usersList); @@ -123,25 +129,25 @@ public class OzgCloudElsterTransferUserService { } String constructYamlEntries(OzgCloudElsterTransferConfigMapUserList userList) { + LOG.info("constructYamlEntries"); List<Map<String, Object>> usersList = userList.getUsersList(); StringBuilder usersYaml = new StringBuilder(); usersYaml.append("fileFormat: 1\nusers:\n"); for (Map<String, Object> userEntry : usersList) { usersYaml.append(getYamlForUser(userEntry)); + usersYaml.append(System.lineSeparator()); } return usersYaml.toString(); } String getYamlForUser(Map<String, Object> userEntry) { - StringBuilder sb = new StringBuilder(); - sb.append(" - { login: \"").append(userEntry.get("login")) - .append("\", rolle: \"").append(userEntry.get("rolle")) - .append("\", credentials: { passwortHash: \"") - .append(((Map<String, String>) userEntry.get("credentials")).get("passwortHash")) - .append("\" }, gruppe: \"").append(userEntry.get("gruppe")).append("\" }\n"); - return sb.toString(); + MustacheFactory mf = new DefaultMustacheFactory(); + Mustache mustache = mf.compile("users.tmpl"); + StringWriter writer = new StringWriter(); + mustache.execute(writer, userEntry); + return writer.toString(); } String generatePassword() { diff --git a/src/main/resources/users.tmpl b/src/main/resources/users.tmpl index 1a8f29b..7e4b5c4 100644 --- a/src/main/resources/users.tmpl +++ b/src/main/resources/users.tmpl @@ -1 +1 @@ -- { login: "{{login}}", rolle: "{{rolle}}", credentials: { passwortHash: "{{passwortHash}}" }, gruppe: "{{gruppe}}" } \ No newline at end of file + - { login: "{{login}}", rolle: "{{rolle}}", credentials: { passwortHash: "{{credentials.passwortHash}}" }, gruppe: "{{gruppe}}" } \ No newline at end of file -- GitLab