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 09529d5a7a92..198bd74830e0 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 @@ -988,6 +988,18 @@ public static boolean scmInit(OzoneConfiguration conf, } else { clusterId = scmStorageConfig.getClusterID(); final boolean isSCMHAEnabled = scmStorageConfig.isSCMHAEnabled(); + + // Initialize security if security is enabled later. + if (OzoneSecurityUtil.isSecurityEnabled(conf) + && scmStorageConfig.getScmCertSerialId() == null) { + HASecurityUtils.initializeSecurity(scmStorageConfig, conf, + getScmAddress(haDetails, conf), true); + scmStorageConfig.forceInitialize(); + LOG.info("SCM unsecure cluster is converted to secure cluster. " + + "Persisted SCM Certificate SerialID {}", + scmStorageConfig.getScmCertSerialId()); + } + if (SCMHAUtils.isSCMHAEnabled(conf) && !isSCMHAEnabled) { SCMRatisServerImpl.initialize(scmStorageConfig.getClusterID(), scmStorageConfig.getScmId(), haDetails.getLocalNodeDetails(), @@ -997,6 +1009,7 @@ public static boolean scmInit(OzoneConfiguration conf, scmStorageConfig.forceInitialize(); LOG.debug("Enabled SCM HA"); } + LOG.info("SCM already initialized. Reusing existing cluster id for sd={}" + ";cid={}; layoutVersion={}; HAEnabled={}", scmStorageConfig.getStorageDir(), clusterId,