This is an automated email from the ASF dual-hosted git repository.
duong pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 86700ca7c3 HDDS-9872. OM/DN startup failure with non-HA SCM for secret
manager not initialized (#5750)
86700ca7c3 is described below
commit 86700ca7c341984051f1da853b3a8febc0495198
Author: Sumit Agrawal <[email protected]>
AuthorDate: Tue Dec 12 05:33:50 2023 +0530
HDDS-9872. OM/DN startup failure with non-HA SCM for secret manager not
initialized (#5750)
---
.../hdds/scm/server/StorageContainerManager.java | 3 +++
.../hadoop/ozone/TestSecureOzoneCluster.java | 24 ++++++++++++++++++++++
2 files changed, 27 insertions(+)
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java
index 59a533a665..722244d4c1 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java
@@ -412,6 +412,9 @@ public final class StorageContainerManager extends
ServiceRuntimeInfoImpl
if (isSecretKeyEnable(securityConfig)) {
secretKeyManagerService = new SecretKeyManagerService(scmContext, conf,
scmHAManager.getRatisServer());
+ if (!ratisEnabled) {
+ secretKeyManagerService.getSecretKeyManager().checkAndInitialize();
+ }
serviceManager.register(secretKeyManagerService);
} else {
secretKeyManagerService = null;
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestSecureOzoneCluster.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestSecureOzoneCluster.java
index cfc3fdf437..717a2fafa1 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestSecureOzoneCluster.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestSecureOzoneCluster.java
@@ -60,6 +60,7 @@ import org.apache.hadoop.hdds.scm.server.SCMStorageConfig;
import org.apache.hadoop.hdds.scm.server.StorageContainerManager;
import org.apache.hadoop.hdds.security.exception.SCMSecurityException;
import org.apache.hadoop.hdds.security.SecurityConfig;
+import org.apache.hadoop.hdds.security.symmetric.SecretKeyManager;
import org.apache.hadoop.hdds.security.x509.certificate.authority.CAType;
import
org.apache.hadoop.hdds.security.x509.certificate.authority.DefaultApprover;
import
org.apache.hadoop.hdds.security.x509.certificate.authority.profile.DefaultProfile;
@@ -110,6 +111,7 @@ import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils;
import static
org.apache.hadoop.fs.CommonConfigurationKeysPublic.HADOOP_SECURITY_AUTHENTICATION;
+import static org.apache.hadoop.hdds.HddsConfigKeys.HDDS_BLOCK_TOKEN_ENABLED;
import static org.apache.hadoop.hdds.HddsConfigKeys.HDDS_GRPC_TLS_ENABLED;
import static
org.apache.hadoop.hdds.HddsConfigKeys.HDDS_X509_CA_ROTATION_ACK_TIMEOUT;
import static
org.apache.hadoop.hdds.HddsConfigKeys.HDDS_X509_CA_ROTATION_CHECK_INTERNAL;
@@ -159,6 +161,7 @@ import org.bouncycastle.asn1.x500.X500Name;
import org.bouncycastle.asn1.x500.style.BCStyle;
import org.bouncycastle.cert.X509CertificateHolder;
import org.bouncycastle.cert.jcajce.JcaX509CertificateHolder;
+import org.junit.Assert;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
@@ -447,6 +450,27 @@ final class TestSecureOzoneCluster {
}
}
+ @Test
+ public void testSecretManagerInitializedNonHASCM() throws Exception {
+ conf.setBoolean(HDDS_BLOCK_TOKEN_ENABLED, true);
+ initSCM();
+ scm = HddsTestUtils.getScmSimple(conf);
+ //Reads the SCM Info from SCM instance
+ try {
+ scm.start();
+
+ SecretKeyManager secretKeyManager = scm.getSecretKeyManager();
+ boolean inSafeMode = scm.getScmSafeModeManager().getInSafeMode();
+ Assert.assertTrue(!SCMHAUtils.isSCMHAEnabled(conf));
+ Assert.assertTrue(inSafeMode);
+ Assert.assertTrue(secretKeyManager.isInitialized());
+ } finally {
+ if (scm != null) {
+ scm.stop();
+ }
+ }
+ }
+
private void initSCM() throws IOException {
Path scmPath = new File(tempDir, "scm-meta").toPath();
Files.createDirectories(scmPath);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]