This is an automated email from the ASF dual-hosted git repository.
apappu pushed a commit to branch branch-2.7
in repository https://gitbox.apache.org/repos/asf/ambari.git
The following commit(s) were added to refs/heads/branch-2.7 by this push:
new ca4a712 [AMBARI-25333] Regenerate keytab generates empty keytab file
if no file present in cache (apappu)
new b344827 Merge pull request #3052 from apappu/AMBARI-25333-branch-2.7
ca4a712 is described below
commit ca4a712f8747227ca68575687596d704fd92e8f8
Author: root <[email protected]>
AuthorDate: Wed Jul 17 00:18:50 2019 +0000
[AMBARI-25333] Regenerate keytab generates empty keytab file if no file
present in cache (apappu)
---
.../kerberos/CreatePrincipalsServerAction.java | 5 +++--
.../kerberos/KerberosServerAction.java | 26 ++++++----------------
2 files changed, 10 insertions(+), 21 deletions(-)
diff --git
a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreatePrincipalsServerAction.java
b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreatePrincipalsServerAction.java
index 175b0ac..cd37f50 100644
---
a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreatePrincipalsServerAction.java
+++
b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreatePrincipalsServerAction.java
@@ -150,8 +150,9 @@ public class CreatePrincipalsServerAction extends
KerberosServerAction {
// This principal has not been processed before, process it.
processPrincipal = true;
} else if
(!StringUtils.isEmpty(kerberosPrincipalEntity.getCachedKeytabPath())) {
- // This principal has been processed and a keytab file has been cached
for it... do not process it.
- processPrincipal = false;
+ // This principal has been processed, process again only if there is
no physical keytab file.
+ File file = new File(kerberosPrincipalEntity.getCachedKeytabPath());
+ processPrincipal = !file.exists();
} else {
// This principal has been processed but a keytab file for it has not
been distributed... process it.
processPrincipal = true;
diff --git
a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/KerberosServerAction.java
b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/KerberosServerAction.java
index 37e63a1..55e90ca 100644
---
a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/KerberosServerAction.java
+++
b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/KerberosServerAction.java
@@ -293,19 +293,13 @@ public abstract class KerberosServerAction extends
AbstractServerAction {
* to a given request
* @return A Map of principals-to-password
*/
+ @SuppressWarnings("unchecked")
protected static Map<String, String> getPrincipalPasswordMap(Map<String,
Object> requestSharedDataContext) {
if (requestSharedDataContext == null) {
return null;
- } else {
- Object map = requestSharedDataContext.get(PRINCIPAL_PASSWORD_MAP);
-
- if (map == null) {
- map = new HashMap<String, String>();
- requestSharedDataContext.put(PRINCIPAL_PASSWORD_MAP, map);
- }
-
- return (Map<String, String>) map;
- }
+ }
+ Object map =
requestSharedDataContext.computeIfAbsent(PRINCIPAL_PASSWORD_MAP, k -> new
HashMap<String, String>());
+ return (Map<String, String>) map;
}
/**
@@ -319,19 +313,13 @@ public abstract class KerberosServerAction extends
AbstractServerAction {
* to a given request
* @return A Map of principals-to-key_numbers
*/
+ @SuppressWarnings("unchecked")
protected static Map<String, Integer> getPrincipalKeyNumberMap(Map<String,
Object> requestSharedDataContext) {
if (requestSharedDataContext == null) {
return null;
- } else {
- Object map = requestSharedDataContext.get(PRINCIPAL_KEY_NUMBER_MAP);
-
- if (map == null) {
- map = new HashMap<String, String>();
- requestSharedDataContext.put(PRINCIPAL_KEY_NUMBER_MAP, map);
- }
-
- return (Map<String, Integer>) map;
}
+ Object map =
requestSharedDataContext.computeIfAbsent(PRINCIPAL_KEY_NUMBER_MAP, k -> new
HashMap<String, String>());
+ return (Map<String, Integer>) map;
}
/**