This is an automated email from the ASF dual-hosted git repository.

adoroszlai 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 4d262d33523 HDDS-14771. Split server-side load testers from freon 
(#9874)
4d262d33523 is described below

commit 4d262d335236090eabf0a1e04e9d8c2032532082
Author: Doroszlai, Attila <[email protected]>
AuthorDate: Mon Mar 9 08:45:20 2026 +0100

    HDDS-14771. Split server-side load testers from freon (#9874)
---
 hadoop-ozone/dist/pom.xml                          |  5 ++
 hadoop-ozone/dist/src/main/license/jar-report.txt  |  1 +
 hadoop-ozone/dist/src/shell/ozone/ozone            | 11 ++++
 .../dist/src/shell/ozone/ozone-functions.sh        | 29 +++++++++
 hadoop-ozone/freon/pom.xml                         | 73 ----------------------
 hadoop-ozone/pom.xml                               |  1 +
 .../vapor/dev-support/findbugsExcludeFile.xml      | 16 +++++
 hadoop-ozone/{freon => vapor}/pom.xml              | 61 ++----------------
 .../hadoop/ozone/freon/BaseAppendLogGenerator.java |  2 +-
 .../hadoop/ozone/freon/ChunkManagerDiskWrite.java  |  4 +-
 .../ozone/freon/ClosedContainerReplicator.java     |  4 +-
 .../ozone/freon/DatanodeSimulationState.java       |  0
 .../hadoop/ozone/freon/DatanodeSimulator.java      |  6 +-
 .../freon/FollowerAppendLogEntryGenerator.java     |  2 +-
 .../ozone/freon/LeaderAppendLogEntryGenerator.java |  2 +-
 .../hadoop/ozone/freon/SCMThroughputBenchmark.java |  4 +-
 .../hadoop/ozone/freon/StreamingGenerator.java     |  4 +-
 .../java/org/apache/hadoop/ozone/freon/Vapor.java} | 24 ++++++-
 .../hadoop/ozone/freon/VaporSubcommand.java}       | 10 +--
 .../freon/containergenerator/BaseGenerator.java    |  3 +-
 .../containergenerator/GeneratorDatanode.java      |  8 +--
 .../freon/containergenerator/GeneratorOm.java      |  4 +-
 .../freon/containergenerator/GeneratorScm.java     |  4 +-
 .../freon/containergenerator/package-info.java     |  0
 .../apache/hadoop/ozone/freon}/package-info.java   |  4 +-
 .../containergenerator/TestGeneratorDatanode.java  |  0
 pom.xml                                            |  5 ++
 27 files changed, 126 insertions(+), 161 deletions(-)

diff --git a/hadoop-ozone/dist/pom.xml b/hadoop-ozone/dist/pom.xml
index e0d9c1486af..eb7f2bc2430 100644
--- a/hadoop-ozone/dist/pom.xml
+++ b/hadoop-ozone/dist/pom.xml
@@ -143,6 +143,11 @@
       <artifactId>ozone-tools</artifactId>
       <scope>runtime</scope>
     </dependency>
+    <dependency>
+      <groupId>org.apache.ozone</groupId>
+      <artifactId>ozone-vapor</artifactId>
+      <scope>runtime</scope>
+    </dependency>
   </dependencies>
 
   <build>
diff --git a/hadoop-ozone/dist/src/main/license/jar-report.txt 
b/hadoop-ozone/dist/src/main/license/jar-report.txt
index 94827486c8e..862e779e23c 100644
--- a/hadoop-ozone/dist/src/main/license/jar-report.txt
+++ b/hadoop-ozone/dist/src/main/license/jar-report.txt
@@ -233,6 +233,7 @@ share/ozone/lib/ozone-recon.jar
 share/ozone/lib/ozone-s3-secret-store.jar
 share/ozone/lib/ozone-s3gateway.jar
 share/ozone/lib/ozone-tools.jar
+share/ozone/lib/ozone-vapor.jar
 share/ozone/lib/perfmark-api.jar
 share/ozone/lib/picocli.jar
 share/ozone/lib/picocli-shell-jline3.jar
diff --git a/hadoop-ozone/dist/src/shell/ozone/ozone 
b/hadoop-ozone/dist/src/shell/ozone/ozone
index 4fe37de1d26..2e29126762c 100755
--- a/hadoop-ozone/dist/src/shell/ozone/ozone
+++ b/hadoop-ozone/dist/src/shell/ozone/ozone
@@ -63,6 +63,7 @@ function ozone_usage
   ozone_add_subcommand "debug" client "Ozone debug tool"
   ozone_add_subcommand "repair" client "Ozone repair tool"
   ozone_add_subcommand "ratis" client "Ozone ratis tool"
+  ozone_add_subcommand "vapor" client "Ozone server simulator"
 
   ozone_generate_usage "${OZONE_SHELL_EXECNAME}" false
 }
@@ -129,6 +130,11 @@ function ozonecmd_case
       OZONE_CLASSNAME=org.apache.hadoop.ozone.freon.Freon
       OZONE_FREON_OPTS="${OZONE_FREON_OPTS} ${RATIS_OPTS} 
${OZONE_MODULE_ACCESS_ARGS}"
       OZONE_RUN_ARTIFACT_NAME="ozone-freon"
+      if ozone_is_freon_command_moved_to_vapor; then
+        # backward compatibility
+        OZONE_CLASSNAME=org.apache.hadoop.ozone.freon.Vapor
+        OZONE_RUN_ARTIFACT_NAME="ozone-vapor"
+      fi
     ;;
     getconf)
       OZONE_CLASSNAME=org.apache.hadoop.ozone.conf.OzoneGetConf;
@@ -235,6 +241,11 @@ function ozonecmd_case
       OZONE_CLASSNAME=org.apache.hadoop.ozone.shell.OzoneRatis
       OZONE_RUN_ARTIFACT_NAME="ozone-tools"
     ;;
+    vapor)
+      OZONE_CLASSNAME=org.apache.hadoop.ozone.freon.Vapor
+      OZONE_VAPOR_OPTS="${OZONE_VAPOR_OPTS} ${RATIS_OPTS} 
${OZONE_MODULE_ACCESS_ARGS}"
+      OZONE_RUN_ARTIFACT_NAME="ozone-vapor"
+    ;;
     *)
       OZONE_CLASSNAME="${subcmd}"
       if ! ozone_validate_classname "${OZONE_CLASSNAME}"; then
diff --git a/hadoop-ozone/dist/src/shell/ozone/ozone-functions.sh 
b/hadoop-ozone/dist/src/shell/ozone/ozone-functions.sh
index bee4225070c..d9800cd3b4f 100755
--- a/hadoop-ozone/dist/src/shell/ozone/ozone-functions.sh
+++ b/hadoop-ozone/dist/src/shell/ozone/ozone-functions.sh
@@ -2940,3 +2940,32 @@ function ozone_set_deprecated_hadoop_vars
     ozone_set_deprecated_var "HADOOP_${suffix}" "OZONE_${suffix}"
   done
 }
+
+## @description  Check if command is one that was moved from freon to vapor
+function ozone_is_freon_command_moved_to_vapor
+{
+  local opt subcommand
+
+  for opt in "${OZONE_SUBCMD_ARGS[@]}"; do
+    for subcommand in \
+        cgdn \
+        cgom \
+        cgscm \
+        cmdw chunk-manager-disk-write \
+        cr container-replicator \
+        falg follower-append-log-generator \
+        lalg leader-append-log-generator \
+        simulate-datanode \
+        stb scm-throughput-benchmark \
+        strmg streaming-generator
+    do
+      if [[ "$opt" == "$subcommand" ]]; then
+        echo "WARN: 'ozone freon $subcommand' is changed to 'ozone vapor 
$subcommand'." >&2
+        echo "      Please update your scripts since 'ozone freon $subcommand' 
may no longer" >&2
+        echo "      work in future releases." >&2
+        return 0
+      fi
+    done
+  done
+  return 1
+}
diff --git a/hadoop-ozone/freon/pom.xml b/hadoop-ozone/freon/pom.xml
index 22fa0cfea16..a4dca0ab8d6 100644
--- a/hadoop-ozone/freon/pom.xml
+++ b/hadoop-ozone/freon/pom.xml
@@ -42,10 +42,6 @@
       <groupId>com.fasterxml.jackson.core</groupId>
       <artifactId>jackson-annotations</artifactId>
     </dependency>
-    <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-core</artifactId>
-    </dependency>
     <dependency>
       <groupId>com.fasterxml.jackson.core</groupId>
       <artifactId>jackson-databind</artifactId>
@@ -54,10 +50,6 @@
       <groupId>com.google.guava</groupId>
       <artifactId>guava</artifactId>
     </dependency>
-    <dependency>
-      <groupId>com.google.protobuf</groupId>
-      <artifactId>protobuf-java</artifactId>
-    </dependency>
     <dependency>
       <groupId>commons-codec</groupId>
       <artifactId>commons-codec</artifactId>
@@ -86,18 +78,6 @@
       <groupId>org.apache.hadoop</groupId>
       <artifactId>hadoop-common</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.apache.hadoop</groupId>
-      <artifactId>hadoop-hdfs</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.httpcomponents</groupId>
-      <artifactId>httpclient</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.httpcomponents</groupId>
-      <artifactId>httpcore</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.apache.ozone</groupId>
       <artifactId>hdds-cli-common</artifactId>
@@ -114,26 +94,14 @@
       <groupId>org.apache.ozone</groupId>
       <artifactId>hdds-config</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.apache.ozone</groupId>
-      <artifactId>hdds-container-service</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.apache.ozone</groupId>
       <artifactId>hdds-interface-client</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.apache.ozone</groupId>
-      <artifactId>hdds-interface-server</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.apache.ozone</groupId>
       <artifactId>hdds-server-framework</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.apache.ozone</groupId>
-      <artifactId>hdds-server-scm</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.apache.ozone</groupId>
       <artifactId>ozone-cli-admin</artifactId>
@@ -154,26 +122,10 @@
       <groupId>org.apache.ozone</groupId>
       <artifactId>ozone-interface-client</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.apache.ozone</groupId>
-      <artifactId>ozone-interface-storage</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.ozone</groupId>
-      <artifactId>ozone-manager</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.ratis</groupId>
-      <artifactId>ratis-client</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.apache.ratis</groupId>
       <artifactId>ratis-common</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.apache.ratis</groupId>
-      <artifactId>ratis-proto</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.apache.ratis</groupId>
       <artifactId>ratis-thirdparty-misc</artifactId>
@@ -193,31 +145,6 @@
       <artifactId>slf4j-reload4j</artifactId>
       <scope>runtime</scope>
     </dependency>
-
-    <!-- Test dependencies -->
-    <dependency>
-      <groupId>org.apache.ozone</groupId>
-      <artifactId>hdds-common</artifactId>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.ozone</groupId>
-      <artifactId>hdds-container-service</artifactId>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.ozone</groupId>
-      <artifactId>hdds-server-framework</artifactId>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.ozone</groupId>
-      <artifactId>hdds-test-utils</artifactId>
-      <scope>test</scope>
-    </dependency>
   </dependencies>
   <build>
     <plugins>
diff --git a/hadoop-ozone/pom.xml b/hadoop-ozone/pom.xml
index 417f05064ef..e0ab0556441 100644
--- a/hadoop-ozone/pom.xml
+++ b/hadoop-ozone/pom.xml
@@ -53,6 +53,7 @@
     <module>s3-secret-store</module>
     <module>s3gateway</module>
     <module>tools</module>
+    <module>vapor</module>
   </modules>
 
   <properties>
diff --git a/hadoop-ozone/vapor/dev-support/findbugsExcludeFile.xml 
b/hadoop-ozone/vapor/dev-support/findbugsExcludeFile.xml
new file mode 100644
index 00000000000..ee5ed59808b
--- /dev/null
+++ b/hadoop-ozone/vapor/dev-support/findbugsExcludeFile.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed 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. See accompanying LICENSE file.
+-->
+<FindBugsFilter>
+</FindBugsFilter>
diff --git a/hadoop-ozone/freon/pom.xml b/hadoop-ozone/vapor/pom.xml
similarity index 82%
copy from hadoop-ozone/freon/pom.xml
copy to hadoop-ozone/vapor/pom.xml
index 22fa0cfea16..422333a1ba7 100644
--- a/hadoop-ozone/freon/pom.xml
+++ b/hadoop-ozone/vapor/pom.xml
@@ -19,29 +19,17 @@
     <artifactId>ozone</artifactId>
     <version>2.2.0-SNAPSHOT</version>
   </parent>
-  <artifactId>ozone-freon</artifactId>
+  <artifactId>ozone-vapor</artifactId>
   <version>2.2.0-SNAPSHOT</version>
   <packaging>jar</packaging>
-  <name>Apache Ozone Freon</name>
-  <description>Apache Ozone Freon</description>
+  <name>Apache Ozone Vapor</name>
+  <description>Apache Ozone server-side load testing tools</description>
 
   <properties>
     <classpath.skip>false</classpath.skip>
   </properties>
 
   <dependencies>
-    <dependency>
-      <groupId>com.amazonaws</groupId>
-      <artifactId>aws-java-sdk-core</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.amazonaws</groupId>
-      <artifactId>aws-java-sdk-s3</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-annotations</artifactId>
-    </dependency>
     <dependency>
       <groupId>com.fasterxml.jackson.core</groupId>
       <artifactId>jackson-core</artifactId>
@@ -58,10 +46,6 @@
       <groupId>com.google.protobuf</groupId>
       <artifactId>protobuf-java</artifactId>
     </dependency>
-    <dependency>
-      <groupId>commons-codec</groupId>
-      <artifactId>commons-codec</artifactId>
-    </dependency>
     <dependency>
       <groupId>commons-io</groupId>
       <artifactId>commons-io</artifactId>
@@ -74,10 +58,6 @@
       <groupId>io.dropwizard.metrics</groupId>
       <artifactId>metrics-core</artifactId>
     </dependency>
-    <dependency>
-      <groupId>io.opentelemetry</groupId>
-      <artifactId>opentelemetry-api</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-lang3</artifactId>
@@ -138,21 +118,13 @@
       <groupId>org.apache.ozone</groupId>
       <artifactId>ozone-cli-admin</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.apache.ozone</groupId>
-      <artifactId>ozone-cli-shell</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.ozone</groupId>
-      <artifactId>ozone-client</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.apache.ozone</groupId>
       <artifactId>ozone-common</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.ozone</groupId>
-      <artifactId>ozone-interface-client</artifactId>
+      <artifactId>ozone-freon</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.ozone</groupId>
@@ -193,31 +165,6 @@
       <artifactId>slf4j-reload4j</artifactId>
       <scope>runtime</scope>
     </dependency>
-
-    <!-- Test dependencies -->
-    <dependency>
-      <groupId>org.apache.ozone</groupId>
-      <artifactId>hdds-common</artifactId>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.ozone</groupId>
-      <artifactId>hdds-container-service</artifactId>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.ozone</groupId>
-      <artifactId>hdds-server-framework</artifactId>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.ozone</groupId>
-      <artifactId>hdds-test-utils</artifactId>
-      <scope>test</scope>
-    </dependency>
   </dependencies>
   <build>
     <plugins>
diff --git 
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/BaseAppendLogGenerator.java
 
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/BaseAppendLogGenerator.java
similarity index 96%
rename from 
hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/BaseAppendLogGenerator.java
rename to 
hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/BaseAppendLogGenerator.java
index d68a079de43..6fe07ad7071 100644
--- 
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/BaseAppendLogGenerator.java
+++ 
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/BaseAppendLogGenerator.java
@@ -30,7 +30,7 @@
 /**
  * Generic utility for leader/follower specific isolated tests.
  */
-public class BaseAppendLogGenerator extends BaseFreonGenerator {
+public class BaseAppendLogGenerator extends BaseFreonGenerator implements 
VaporSubcommand {
 
   @SuppressWarnings("checkstyle:VisibilityModifier")
   @Option(names = {"-r", "--raft-peer"},
diff --git 
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/ChunkManagerDiskWrite.java
 
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/ChunkManagerDiskWrite.java
similarity index 98%
rename from 
hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/ChunkManagerDiskWrite.java
rename to 
hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/ChunkManagerDiskWrite.java
index a240698c3ee..b7ca060419d 100644
--- 
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/ChunkManagerDiskWrite.java
+++ 
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/ChunkManagerDiskWrite.java
@@ -60,10 +60,10 @@
     versionProvider = HddsVersionProvider.class,
     mixinStandardHelpOptions = true,
     showDefaultValues = true)
-@MetaInfServices(FreonSubcommand.class)
+@MetaInfServices(VaporSubcommand.class)
 @SuppressWarnings("java:S2245") // no need for secure random
 public class ChunkManagerDiskWrite extends BaseFreonGenerator implements
-    Callable<Void> {
+    Callable<Void>, VaporSubcommand {
 
   private static final Logger LOG =
       LoggerFactory.getLogger(ChunkManagerDiskWrite.class);
diff --git 
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/ClosedContainerReplicator.java
 
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/ClosedContainerReplicator.java
similarity index 99%
rename from 
hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/ClosedContainerReplicator.java
rename to 
hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/ClosedContainerReplicator.java
index 3ad35ecc5a2..6e1be57d420 100644
--- 
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/ClosedContainerReplicator.java
+++ 
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/ClosedContainerReplicator.java
@@ -80,9 +80,9 @@
     versionProvider = HddsVersionProvider.class,
     mixinStandardHelpOptions = true,
     showDefaultValues = true)
-@MetaInfServices(FreonSubcommand.class)
+@MetaInfServices(VaporSubcommand.class)
 public class ClosedContainerReplicator extends BaseFreonGenerator implements
-    Callable<Void> {
+    Callable<Void>, 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 cb3769e7fd2..c4e3d9a5c7d 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.
  * <p>
  * 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<Void>, FreonSubcommand {
+@MetaInfServices(VaporSubcommand.class)
+public class DatanodeSimulator implements Callable<Void>, 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 33b088d6519..00489af7b1b 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<Void>, StreamObserver<AppendEntriesReplyProto> {
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 37b6af06bf7..60b4b84a118 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 41744ffd7ea..e575576428b 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<Void>, 
FreonSubcommand {
+public final class SCMThroughputBenchmark implements Callable<Void>, 
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 52456bf6c2d..0ba76afd1a6 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<Void> {
+    implements Callable<Void>, VaporSubcommand {
 
   private static final Logger LOG =
       LoggerFactory.getLogger(StreamingGenerator.class);
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/Vapor.java
similarity index 58%
copy from 
hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/package-info.java
copy to 
hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/Vapor.java
index c3c98f4abdd..09bb8ca5b0a 100644
--- 
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/Vapor.java
@@ -15,7 +15,27 @@
  * limitations under the License.
  */
 
+package org.apache.hadoop.ozone.freon;
+
+import org.apache.hadoop.hdds.cli.HddsVersionProvider;
+import picocli.CommandLine.Command;
+
 /**
- * Container data/metadata generator components.
+ * Ozone data generator and performance test tool.
  */
-package org.apache.hadoop.ozone.freon.containergenerator;
+@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/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/VaporSubcommand.java
similarity index 82%
copy from 
hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/package-info.java
copy to 
hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/VaporSubcommand.java
index c3c98f4abdd..7aebd5b30fc 100644
--- 
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/VaporSubcommand.java
@@ -15,7 +15,9 @@
  * limitations under the License.
  */
 
-/**
- * Container data/metadata generator components.
- */
-package org.apache.hadoop.ozone.freon.containergenerator;
+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 731276b548a..21cb0f85452 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<Void> {
+    Callable<Void>, 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 ef5d289b220..86e19ddddc7 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 05b498abb2f..fb601236475 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<Void> {
 
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 9de7a6e21dd..0d9fba041fe 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<ContainerID, ContainerInfo> 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%
copy from 
hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/package-info.java
copy to 
hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/package-info.java
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/package-info.java
similarity index 87%
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/package-info.java
index c3c98f4abdd..82f7a208a4f 100644
--- 
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/package-info.java
@@ -16,6 +16,6 @@
  */
 
 /**
- * Container data/metadata generator components.
+ * This package contains class used for testing and benchmarking ozone cluster.
  */
-package org.apache.hadoop.ozone.freon.containergenerator;
+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 cec837839a1..0d3b6eacc43 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1306,6 +1306,11 @@
         <artifactId>ozone-tools</artifactId>
         <version>${ozone.version}</version>
       </dependency>
+      <dependency>
+        <groupId>org.apache.ozone</groupId>
+        <artifactId>ozone-vapor</artifactId>
+        <version>${ozone.version}</version>
+      </dependency>
       <dependency>
         <groupId>org.apache.ozone</groupId>
         <artifactId>rocksdb-checkpoint-differ</artifactId>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


Reply via email to