[
https://issues.apache.org/jira/browse/HDDS-1622?focusedWorklogId=255211&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-255211
]
ASF GitHub Bot logged work on HDDS-1622:
----------------------------------------
Author: ASF GitHub Bot
Created on: 06/Jun/19 15:57
Start Date: 06/Jun/19 15:57
Worklog Time Spent: 10m
Work Description: anuengineer commented on pull request #918: HDDS-1622
Use picocli for StorageContainerManager
URL: https://github.com/apache/hadoop/pull/918#discussion_r291254145
##########
File path:
hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManagerStarter.java
##########
@@ -0,0 +1,155 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license
+ * agreements. See the NOTICE file distributed with this work for additional
+ * information regarding
+ * copyright ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License. You may obtain a
+ * copy of the License at
+ *
+ * <p>http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * <p>Unless required by applicable law or agreed to in writing, software
+ * distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+ * CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hdds.scm.server;
+
+import org.apache.hadoop.hdds.cli.GenericCli;
+import org.apache.hadoop.hdds.cli.HddsVersionProvider;
+import org.apache.hadoop.hdds.conf.OzoneConfiguration;
+import org.apache.hadoop.hdds.tracing.TracingUtil;
+import org.apache.hadoop.ozone.common.StorageInfo;
+import org.apache.hadoop.util.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import picocli.CommandLine;
+import picocli.CommandLine.Command;
+
+import java.io.IOException;
+
+import static org.apache.hadoop.util.ExitUtil.terminate;
+
+/**
+ * This class provides a command line interface to start the SCM
+ * using Picocli.
+ */
+
+@Command(name = "ozone scm",
+ hidden = true, description = "Start or initialize the scm server.",
+ versionProvider = HddsVersionProvider.class,
+ mixinStandardHelpOptions = true)
+public class StorageContainerManagerStarter extends GenericCli {
+
+ private OzoneConfiguration conf;
+ private SCMStarterInterface receiver;
+ private static final Logger LOG =
+ LoggerFactory.getLogger(StorageContainerManagerStarter.class);
+
+ public static void main(String[] args) throws Exception {
+ TracingUtil.initTracing("StorageContainerManager");
+ new StorageContainerManagerStarter(
+ new StorageContainerManagerStarter.SCMStarterHelper()).run(args);
+ }
+
+ public StorageContainerManagerStarter(SCMStarterInterface receiverObj) {
+ super();
+ receiver = receiverObj;
+ }
+
+ @Override
+ public Void call() throws Exception {
+ commonInit();
+ startScm();
+ return null;
+ }
+
+ /**
+ * This function implements a sub-command to generate a new
+ * cluster ID from the command line.
+ */
+ @CommandLine.Command(name = "--genclusterid",
+ customSynopsis = "ozone scm [global options] --genclusterid [options]",
+ hidden = false,
+ description = "Generate a new Cluster ID",
+ mixinStandardHelpOptions = true,
+ versionProvider = HddsVersionProvider.class)
+ public void generateClusterId() {
+ commonInit();
+ System.out.println("Generating new cluster id:");
+ System.out.println(receiver.generateClusterId());
+ }
+
+ /**
+ * This function implements a sub-command to allow the SCM to be
+ * initialized from the command line.
+ *
+ * @param clusterId - Cluster ID to use when initializing. If null,
+ * a random ID will be generated and used.
+ */
+ @CommandLine.Command(name = "--init",
+ customSynopsis = "ozone scm [global options] --init [options]",
+ hidden = false,
+ description = "Initialize / format the SCM",
Review comment:
Initialize is not format. it is idempotent, that is you can call again and
it will not destroy the current data and is different from format command of
HDFS.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 255211)
Time Spent: 1h 10m (was: 1h)
> Use picocli for StorageContainerManager
> ---------------------------------------
>
> Key: HDDS-1622
> URL: https://issues.apache.org/jira/browse/HDDS-1622
> Project: Hadoop Distributed Data Store
> Issue Type: Improvement
> Reporter: Elek, Marton
> Assignee: Stephen O'Donnell
> Priority: Major
> Labels: pull-request-available
> Time Spent: 1h 10m
> Remaining Estimate: 0h
>
> Recently we switched to use PicoCli with (almost) all of our daemons (eg. s3
> Gateway, Freon, etc.)
> PicoCli has better output, it can generate nice help, and easier to use as
> it's enough to put a few annotations and we don't need to add all the
> boilerplate code to print out help, etc.
> StorageContainerManager and OzoneManager is not yet supported. The previous
> issue was closed HDDS-453 but since then we improved the GenericCli parser
> (eg. in HDDS-1192), so I think we are ready to move.
> The main idea is to create a starter java similar to
> org.apache.hadoop.ozone.s3.Gateway and we can start StorageContainerManager
> from there.
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]