, VaporSubcommand {
@Option(names = {"--datanode"},
description = "Replicate only containers on this specific datanode.",
diff --git a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulationState.java b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulationState.java
similarity index 100%
rename from hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulationState.java
rename to hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulationState.java
diff --git a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulator.java b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulator.java
similarity index 99%
rename from hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulator.java
rename to hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulator.java
index cb3769e7fd2d..c4e3d9a5c7dc 100644
--- a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulator.java
+++ b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulator.java
@@ -100,7 +100,7 @@
* datanodes and exabytes of container data.
*
* Usage:
- * ozone freon simulate-datanode -t 20 -n 5000 -c 40000
+ * ozone vapor simulate-datanode -t 20 -n 5000 -c 40000
* -t: number of threads to run datanodes heartbeat.
* -n: number of data node to simulate.
* -c: number containers to simulate per datanode.
@@ -119,8 +119,8 @@
versionProvider = HddsVersionProvider.class,
mixinStandardHelpOptions = true,
showDefaultValues = true)
-@MetaInfServices(FreonSubcommand.class)
-public class DatanodeSimulator implements Callable, FreonSubcommand {
+@MetaInfServices(VaporSubcommand.class)
+public class DatanodeSimulator implements Callable, VaporSubcommand {
private static final Logger LOGGER = LoggerFactory.getLogger(
DatanodeSimulator.class);
diff --git a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/FollowerAppendLogEntryGenerator.java b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/FollowerAppendLogEntryGenerator.java
similarity index 99%
rename from hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/FollowerAppendLogEntryGenerator.java
rename to hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/FollowerAppendLogEntryGenerator.java
index 33b088d65199..00489af7b1bc 100644
--- a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/FollowerAppendLogEntryGenerator.java
+++ b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/FollowerAppendLogEntryGenerator.java
@@ -88,7 +88,7 @@
versionProvider = HddsVersionProvider.class,
mixinStandardHelpOptions = true,
showDefaultValues = true)
-@MetaInfServices(FreonSubcommand.class)
+@MetaInfServices(VaporSubcommand.class)
@SuppressWarnings("java:S2245") // no need for secure random
public class FollowerAppendLogEntryGenerator extends BaseAppendLogGenerator
implements Callable, StreamObserver {
diff --git a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/LeaderAppendLogEntryGenerator.java b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/LeaderAppendLogEntryGenerator.java
similarity index 99%
rename from hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/LeaderAppendLogEntryGenerator.java
rename to hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/LeaderAppendLogEntryGenerator.java
index 37b6af06bf71..60b4b84a118e 100644
--- a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/LeaderAppendLogEntryGenerator.java
+++ b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/LeaderAppendLogEntryGenerator.java
@@ -82,7 +82,7 @@
versionProvider = HddsVersionProvider.class,
mixinStandardHelpOptions = true,
showDefaultValues = true)
-@MetaInfServices(FreonSubcommand.class)
+@MetaInfServices(VaporSubcommand.class)
@SuppressWarnings("java:S2245") // no need for secure random
public class LeaderAppendLogEntryGenerator extends BaseAppendLogGenerator
implements
diff --git a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/SCMThroughputBenchmark.java b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/SCMThroughputBenchmark.java
similarity index 99%
rename from hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/SCMThroughputBenchmark.java
rename to hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/SCMThroughputBenchmark.java
index 41744ffd7ea3..e575576428b3 100644
--- a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/SCMThroughputBenchmark.java
+++ b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/SCMThroughputBenchmark.java
@@ -109,9 +109,9 @@
versionProvider = HddsVersionProvider.class,
mixinStandardHelpOptions = true,
showDefaultValues = true)
-@MetaInfServices(FreonSubcommand.class)
+@MetaInfServices(VaporSubcommand.class)
@SuppressWarnings("java:S2245") // no need for secure random
-public final class SCMThroughputBenchmark implements Callable, FreonSubcommand {
+public final class SCMThroughputBenchmark implements Callable, VaporSubcommand {
private static final Logger LOG =
LoggerFactory.getLogger(SCMThroughputBenchmark.class);
diff --git a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/StreamingGenerator.java b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/StreamingGenerator.java
similarity index 98%
rename from hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/StreamingGenerator.java
rename to hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/StreamingGenerator.java
index 52456bf6c2d7..0ba76afd1a69 100644
--- a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/StreamingGenerator.java
+++ b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/StreamingGenerator.java
@@ -45,9 +45,9 @@
versionProvider = HddsVersionProvider.class,
mixinStandardHelpOptions = true,
showDefaultValues = true)
-@MetaInfServices(FreonSubcommand.class)
+@MetaInfServices(VaporSubcommand.class)
public class StreamingGenerator extends BaseFreonGenerator
- implements Callable {
+ implements Callable, VaporSubcommand {
private static final Logger LOG =
LoggerFactory.getLogger(StreamingGenerator.class);
diff --git a/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/Vapor.java b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/Vapor.java
new file mode 100644
index 000000000000..09bb8ca5b0ae
--- /dev/null
+++ b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/Vapor.java
@@ -0,0 +1,41 @@
+/*
+ * 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
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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.ozone.freon;
+
+import org.apache.hadoop.hdds.cli.HddsVersionProvider;
+import picocli.CommandLine.Command;
+
+/**
+ * Ozone data generator and performance test tool.
+ */
+@Command(
+ name = "ozone vapor",
+ description = "Load generator using Ozone server components",
+ versionProvider = HddsVersionProvider.class,
+ mixinStandardHelpOptions = true)
+public class Vapor extends Freon {
+
+ @Override
+ public Class> subcommandType() {
+ return VaporSubcommand.class;
+ }
+
+ public static void main(String[] args) {
+ new Vapor().run(args);
+ }
+}
diff --git a/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/VaporSubcommand.java b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/VaporSubcommand.java
new file mode 100644
index 000000000000..7aebd5b30fcd
--- /dev/null
+++ b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/VaporSubcommand.java
@@ -0,0 +1,23 @@
+/*
+ * 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
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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.ozone.freon;
+
+/** Marker interface for subcommands to be registered for {@code ozone vapor}. */
+public interface VaporSubcommand {
+ // marker
+}
diff --git a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/BaseGenerator.java b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/BaseGenerator.java
similarity index 96%
rename from hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/BaseGenerator.java
rename to hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/BaseGenerator.java
index 731276b548ac..21cb0f854523 100644
--- a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/BaseGenerator.java
+++ b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/BaseGenerator.java
@@ -22,13 +22,14 @@
import org.apache.hadoop.hdds.conf.StorageUnit;
import org.apache.hadoop.hdds.scm.ScmConfigKeys;
import org.apache.hadoop.ozone.freon.BaseFreonGenerator;
+import org.apache.hadoop.ozone.freon.VaporSubcommand;
import picocli.CommandLine.Option;
/**
* Common options of data generators for fast scale test.
*/
public abstract class BaseGenerator extends BaseFreonGenerator implements
- Callable {
+ Callable, VaporSubcommand {
@Option(names = {"-u", "--user"},
description = "Owner of the files",
diff --git a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorDatanode.java b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorDatanode.java
similarity index 98%
rename from hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorDatanode.java
rename to hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorDatanode.java
index ef5d289b2205..86e19ddddc79 100644
--- a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorDatanode.java
+++ b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorDatanode.java
@@ -61,7 +61,7 @@
import org.apache.hadoop.ozone.container.keyvalue.impl.BlockManagerImpl;
import org.apache.hadoop.ozone.container.keyvalue.impl.ChunkManagerFactory;
import org.apache.hadoop.ozone.container.keyvalue.interfaces.ChunkManager;
-import org.apache.hadoop.ozone.freon.FreonSubcommand;
+import org.apache.hadoop.ozone.freon.VaporSubcommand;
import org.kohsuke.MetaInfServices;
import picocli.CommandLine.Command;
import picocli.CommandLine.Option;
@@ -74,13 +74,13 @@
optionListHeading =
"\nExecute this command with different parameters for each datanodes. "
+ "For example if you have 10 datanodes, use "
- + "'ozone freon cgdn --index=1 --datanodes=10', 'ozone freon"
- + " cgdn --index=2 --datanodes=10', 'ozone freon cgdn "
+ + "'ozone vapor cgdn --index=1 --datanodes=10', 'ozone vapor"
+ + " cgdn --index=2 --datanodes=10', 'ozone vapor cgdn "
+ "--index=3 --datanodes=10', ...\n\n",
versionProvider = HddsVersionProvider.class,
mixinStandardHelpOptions = true,
showDefaultValues = true)
-@MetaInfServices(FreonSubcommand.class)
+@MetaInfServices(VaporSubcommand.class)
@SuppressWarnings("java:S2245") // no need for secure random
public class GeneratorDatanode extends BaseGenerator {
diff --git a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorOm.java b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorOm.java
similarity index 98%
rename from hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorOm.java
rename to hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorOm.java
index 05b498abb2fe..fb6012364755 100644
--- a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorOm.java
+++ b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorOm.java
@@ -37,7 +37,7 @@
import org.apache.hadoop.hdds.utils.db.DBStoreBuilder;
import org.apache.hadoop.hdds.utils.db.Table;
import org.apache.hadoop.ozone.OzoneAcl;
-import org.apache.hadoop.ozone.freon.FreonSubcommand;
+import org.apache.hadoop.ozone.freon.VaporSubcommand;
import org.apache.hadoop.ozone.om.OMStorage;
import org.apache.hadoop.ozone.om.codec.OMDBDefinition;
import org.apache.hadoop.ozone.om.helpers.OmBucketInfo;
@@ -61,7 +61,7 @@
versionProvider = HddsVersionProvider.class,
mixinStandardHelpOptions = true,
showDefaultValues = true)
-@MetaInfServices(FreonSubcommand.class)
+@MetaInfServices(VaporSubcommand.class)
public class GeneratorOm extends BaseGenerator implements
Callable {
diff --git a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorScm.java b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorScm.java
similarity index 97%
rename from hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorScm.java
rename to hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorScm.java
index 9de7a6e21dda..0d9fba041fe4 100644
--- a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorScm.java
+++ b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorScm.java
@@ -32,7 +32,7 @@
import org.apache.hadoop.hdds.utils.db.DBStore;
import org.apache.hadoop.hdds.utils.db.DBStoreBuilder;
import org.apache.hadoop.hdds.utils.db.Table;
-import org.apache.hadoop.ozone.freon.FreonSubcommand;
+import org.apache.hadoop.ozone.freon.VaporSubcommand;
import org.kohsuke.MetaInfServices;
import picocli.CommandLine.Command;
@@ -45,7 +45,7 @@
versionProvider = HddsVersionProvider.class,
mixinStandardHelpOptions = true,
showDefaultValues = true)
-@MetaInfServices(FreonSubcommand.class)
+@MetaInfServices(VaporSubcommand.class)
public class GeneratorScm extends BaseGenerator {
private Table containerStore;
diff --git a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/package-info.java b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/package-info.java
similarity index 100%
rename from hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/package-info.java
rename to hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/package-info.java
diff --git a/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/package-info.java b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/package-info.java
new file mode 100644
index 000000000000..82f7a208a4f4
--- /dev/null
+++ b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/package-info.java
@@ -0,0 +1,21 @@
+/*
+ * 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
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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.
+ */
+
+/**
+ * This package contains class used for testing and benchmarking ozone cluster.
+ */
+package org.apache.hadoop.ozone.freon;
diff --git a/hadoop-ozone/freon/src/test/java/org/apache/hadoop/ozone/freon/containergenerator/TestGeneratorDatanode.java b/hadoop-ozone/vapor/src/test/java/org/apache/hadoop/ozone/freon/containergenerator/TestGeneratorDatanode.java
similarity index 100%
rename from hadoop-ozone/freon/src/test/java/org/apache/hadoop/ozone/freon/containergenerator/TestGeneratorDatanode.java
rename to hadoop-ozone/vapor/src/test/java/org/apache/hadoop/ozone/freon/containergenerator/TestGeneratorDatanode.java
diff --git a/pom.xml b/pom.xml
index 02afd292ecee..7dfe565833bc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1306,6 +1306,11 @@
ozone-tools
${ozone.version}
+
+ org.apache.ozone
+ ozone-vapor
+ ${ozone.version}
+
org.apache.ozone
rocksdb-checkpoint-differ