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

wuzhiguo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/bigtop-manager.git


The following commit(s) were added to refs/heads/main by this push:
     new ae950232 BIGTOP-4320: Support component add/start/stop/restart 
commands (#142)
ae950232 is described below

commit ae9502327a42ccf9d1dfce790b87e36c5c5bd060
Author: Zhiguo Wu <[email protected]>
AuthorDate: Tue Jan 7 10:29:01 2025 +0800

    BIGTOP-4320: Support component add/start/stop/restart commands (#142)
---
 .../bigtop/manager/common/enums/Command.java       |   4 +-
 .../factory/cluster/ClusterAddJobFactory.java      |   2 +-
 .../factory/cluster/ClusterRestartJobFactory.java  |   2 +-
 .../factory/cluster/ClusterStartJobFactory.java    |   2 +-
 .../factory/cluster/ClusterStopJobFactory.java     |   2 +-
 .../factory/component/ComponentAddJobFactory.java  |   3 +-
 .../component/ComponentRestartJobFactory.java      |   3 +-
 .../component/ComponentStartJobFactory.java        |   3 +-
 .../factory/component/ComponentStopJobFactory.java |   3 +-
 .../command/factory/host/HostAddJobFactory.java    |   2 +-
 .../factory/host/HostRestartJobFactory.java        |   2 +-
 .../command/factory/host/HostStartJobFactory.java  |   2 +-
 .../command/factory/host/HostStopJobFactory.java   |   2 +-
 .../factory/service/ServiceAddJobFactory.java      |   2 +-
 .../factory/service/ServiceCheckJobFactory.java    |   2 +-
 .../service/ServiceConfigureJobFactory.java        |   2 +-
 .../factory/service/ServiceRestartJobFactory.java  |   2 +-
 .../factory/service/ServiceStartJobFactory.java    |   2 +-
 .../factory/service/ServiceStopJobFactory.java     |   2 +-
 .../job/{ => cluster}/AbstractClusterJob.java      |   4 +-
 .../command/job/{ => cluster}/ClusterAddJob.java   |   4 +-
 .../job/{ => cluster}/ClusterRestartJob.java       |   4 +-
 .../command/job/{ => cluster}/ClusterStartJob.java |   4 +-
 .../command/job/{ => cluster}/ClusterStopJob.java  |   4 +-
 .../AbstractComponentJob.java}                     |  87 +++++++++++------
 .../command/job/component/ComponentAddJob.java     | 108 +++++++++++++++++++++
 .../ComponentRestartJob.java}                      |  10 +-
 .../ComponentStartJob.java}                        |  12 +--
 .../ComponentStopJob.java}                         |  12 +--
 .../command/job/{ => host}/AbstractHostJob.java    |   4 +-
 .../server/command/job/{ => host}/HostAddJob.java  |   5 +-
 .../command/job/{ => host}/HostRestartJob.java     |   4 +-
 .../command/job/{ => host}/HostStartJob.java       |   4 +-
 .../server/command/job/{ => host}/HostStopJob.java |   4 +-
 .../job/{ => service}/AbstractServiceJob.java      |   4 +-
 .../command/job/{ => service}/ServiceAddJob.java   |   3 +-
 .../command/job/{ => service}/ServiceCheckJob.java |   3 +-
 .../job/{ => service}/ServiceConfigureJob.java     |   4 +-
 .../job/{ => service}/ServiceRestartJob.java       |   3 +-
 .../command/job/{ => service}/ServiceStartJob.java |   3 +-
 .../command/job/{ => service}/ServiceStopJob.java  |   3 +-
 .../server/command/task/ComponentAddTask.java      |   7 +-
 .../server/command/task/ComponentCheckTask.java    |  14 ++-
 .../server/command/task/ComponentStartTask.java    |   7 +-
 .../server/command/task/ComponentStopTask.java     |   7 +-
 .../manager/server/model/req/ComponentHostReq.java |   4 +-
 .../model/req/command/ComponentCommandReq.java     |   2 +-
 47 files changed, 283 insertions(+), 95 deletions(-)

diff --git 
a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/enums/Command.java
 
b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/enums/Command.java
index 1bf036be..7ab2acc8 100644
--- 
a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/enums/Command.java
+++ 
b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/enums/Command.java
@@ -35,10 +35,8 @@ public enum Command {
     STOP("stop", "Stop"),
     RESTART("restart", "Restart"),
 
-    // Available for: Service, Component
-    CHECK("check", "Check"),
-
     // Available for: Service
+    CHECK("check", "Check"),
     CONFIGURE("configure", "Configure"),
     CUSTOM("custom", "Custom"),
 
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/cluster/ClusterAddJobFactory.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/cluster/ClusterAddJobFactory.java
index 640df20d..77d7d728 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/cluster/ClusterAddJobFactory.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/cluster/ClusterAddJobFactory.java
@@ -20,9 +20,9 @@ package 
org.apache.bigtop.manager.server.command.factory.cluster;
 
 import org.apache.bigtop.manager.common.enums.Command;
 import org.apache.bigtop.manager.server.command.CommandIdentifier;
-import org.apache.bigtop.manager.server.command.job.ClusterAddJob;
 import org.apache.bigtop.manager.server.command.job.Job;
 import org.apache.bigtop.manager.server.command.job.JobContext;
+import org.apache.bigtop.manager.server.command.job.cluster.ClusterAddJob;
 import org.apache.bigtop.manager.server.enums.CommandLevel;
 
 import org.springframework.beans.factory.config.ConfigurableBeanFactory;
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/cluster/ClusterRestartJobFactory.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/cluster/ClusterRestartJobFactory.java
index 9ad6a2c3..05c1cf1b 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/cluster/ClusterRestartJobFactory.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/cluster/ClusterRestartJobFactory.java
@@ -20,9 +20,9 @@ package 
org.apache.bigtop.manager.server.command.factory.cluster;
 
 import org.apache.bigtop.manager.common.enums.Command;
 import org.apache.bigtop.manager.server.command.CommandIdentifier;
-import org.apache.bigtop.manager.server.command.job.ClusterRestartJob;
 import org.apache.bigtop.manager.server.command.job.Job;
 import org.apache.bigtop.manager.server.command.job.JobContext;
+import org.apache.bigtop.manager.server.command.job.cluster.ClusterRestartJob;
 import org.apache.bigtop.manager.server.enums.CommandLevel;
 
 import org.springframework.beans.factory.config.ConfigurableBeanFactory;
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/cluster/ClusterStartJobFactory.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/cluster/ClusterStartJobFactory.java
index b1b33515..41fdbf78 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/cluster/ClusterStartJobFactory.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/cluster/ClusterStartJobFactory.java
@@ -20,9 +20,9 @@ package 
org.apache.bigtop.manager.server.command.factory.cluster;
 
 import org.apache.bigtop.manager.common.enums.Command;
 import org.apache.bigtop.manager.server.command.CommandIdentifier;
-import org.apache.bigtop.manager.server.command.job.ClusterStartJob;
 import org.apache.bigtop.manager.server.command.job.Job;
 import org.apache.bigtop.manager.server.command.job.JobContext;
+import org.apache.bigtop.manager.server.command.job.cluster.ClusterStartJob;
 import org.apache.bigtop.manager.server.enums.CommandLevel;
 
 import org.springframework.beans.factory.config.ConfigurableBeanFactory;
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/cluster/ClusterStopJobFactory.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/cluster/ClusterStopJobFactory.java
index 9290040b..3d27574c 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/cluster/ClusterStopJobFactory.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/cluster/ClusterStopJobFactory.java
@@ -20,9 +20,9 @@ package 
org.apache.bigtop.manager.server.command.factory.cluster;
 
 import org.apache.bigtop.manager.common.enums.Command;
 import org.apache.bigtop.manager.server.command.CommandIdentifier;
-import org.apache.bigtop.manager.server.command.job.ClusterStopJob;
 import org.apache.bigtop.manager.server.command.job.Job;
 import org.apache.bigtop.manager.server.command.job.JobContext;
+import org.apache.bigtop.manager.server.command.job.cluster.ClusterStopJob;
 import org.apache.bigtop.manager.server.enums.CommandLevel;
 
 import org.springframework.beans.factory.config.ConfigurableBeanFactory;
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/component/ComponentAddJobFactory.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/component/ComponentAddJobFactory.java
index 8f39dce3..f3724f02 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/component/ComponentAddJobFactory.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/component/ComponentAddJobFactory.java
@@ -22,6 +22,7 @@ import org.apache.bigtop.manager.common.enums.Command;
 import org.apache.bigtop.manager.server.command.CommandIdentifier;
 import org.apache.bigtop.manager.server.command.job.Job;
 import org.apache.bigtop.manager.server.command.job.JobContext;
+import org.apache.bigtop.manager.server.command.job.component.ComponentAddJob;
 import org.apache.bigtop.manager.server.enums.CommandLevel;
 
 import org.springframework.beans.factory.config.ConfigurableBeanFactory;
@@ -42,6 +43,6 @@ public class ComponentAddJobFactory extends 
AbstractComponentJobFactory {
 
     @Override
     public Job createJob(JobContext jobContext) {
-        return null;
+        return new ComponentAddJob(jobContext);
     }
 }
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/component/ComponentRestartJobFactory.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/component/ComponentRestartJobFactory.java
index 5c9c8f86..2213f087 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/component/ComponentRestartJobFactory.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/component/ComponentRestartJobFactory.java
@@ -22,6 +22,7 @@ import org.apache.bigtop.manager.common.enums.Command;
 import org.apache.bigtop.manager.server.command.CommandIdentifier;
 import org.apache.bigtop.manager.server.command.job.Job;
 import org.apache.bigtop.manager.server.command.job.JobContext;
+import 
org.apache.bigtop.manager.server.command.job.component.ComponentRestartJob;
 import org.apache.bigtop.manager.server.enums.CommandLevel;
 
 import org.springframework.beans.factory.config.ConfigurableBeanFactory;
@@ -42,6 +43,6 @@ public class ComponentRestartJobFactory extends 
AbstractComponentJobFactory {
 
     @Override
     public Job createJob(JobContext jobContext) {
-        return null;
+        return new ComponentRestartJob(jobContext);
     }
 }
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/component/ComponentStartJobFactory.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/component/ComponentStartJobFactory.java
index eb16c173..124485ee 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/component/ComponentStartJobFactory.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/component/ComponentStartJobFactory.java
@@ -22,6 +22,7 @@ import org.apache.bigtop.manager.common.enums.Command;
 import org.apache.bigtop.manager.server.command.CommandIdentifier;
 import org.apache.bigtop.manager.server.command.job.Job;
 import org.apache.bigtop.manager.server.command.job.JobContext;
+import 
org.apache.bigtop.manager.server.command.job.component.ComponentStartJob;
 import org.apache.bigtop.manager.server.enums.CommandLevel;
 
 import org.springframework.beans.factory.config.ConfigurableBeanFactory;
@@ -42,6 +43,6 @@ public class ComponentStartJobFactory extends 
AbstractComponentJobFactory {
 
     @Override
     public Job createJob(JobContext jobContext) {
-        return null;
+        return new ComponentStartJob(jobContext);
     }
 }
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/component/ComponentStopJobFactory.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/component/ComponentStopJobFactory.java
index 8f2a145d..234e44ce 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/component/ComponentStopJobFactory.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/component/ComponentStopJobFactory.java
@@ -22,6 +22,7 @@ import org.apache.bigtop.manager.common.enums.Command;
 import org.apache.bigtop.manager.server.command.CommandIdentifier;
 import org.apache.bigtop.manager.server.command.job.Job;
 import org.apache.bigtop.manager.server.command.job.JobContext;
+import org.apache.bigtop.manager.server.command.job.component.ComponentStopJob;
 import org.apache.bigtop.manager.server.enums.CommandLevel;
 
 import org.springframework.beans.factory.config.ConfigurableBeanFactory;
@@ -42,6 +43,6 @@ public class ComponentStopJobFactory extends 
AbstractComponentJobFactory {
 
     @Override
     public Job createJob(JobContext jobContext) {
-        return null;
+        return new ComponentStopJob(jobContext);
     }
 }
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/host/HostAddJobFactory.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/host/HostAddJobFactory.java
index 98474d8d..dac20e37 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/host/HostAddJobFactory.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/host/HostAddJobFactory.java
@@ -20,9 +20,9 @@ package org.apache.bigtop.manager.server.command.factory.host;
 
 import org.apache.bigtop.manager.common.enums.Command;
 import org.apache.bigtop.manager.server.command.CommandIdentifier;
-import org.apache.bigtop.manager.server.command.job.HostAddJob;
 import org.apache.bigtop.manager.server.command.job.Job;
 import org.apache.bigtop.manager.server.command.job.JobContext;
+import org.apache.bigtop.manager.server.command.job.host.HostAddJob;
 import org.apache.bigtop.manager.server.enums.CommandLevel;
 
 import org.springframework.beans.factory.config.ConfigurableBeanFactory;
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/host/HostRestartJobFactory.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/host/HostRestartJobFactory.java
index c0e25341..80280824 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/host/HostRestartJobFactory.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/host/HostRestartJobFactory.java
@@ -20,9 +20,9 @@ package org.apache.bigtop.manager.server.command.factory.host;
 
 import org.apache.bigtop.manager.common.enums.Command;
 import org.apache.bigtop.manager.server.command.CommandIdentifier;
-import org.apache.bigtop.manager.server.command.job.HostRestartJob;
 import org.apache.bigtop.manager.server.command.job.Job;
 import org.apache.bigtop.manager.server.command.job.JobContext;
+import org.apache.bigtop.manager.server.command.job.host.HostRestartJob;
 import org.apache.bigtop.manager.server.enums.CommandLevel;
 
 import org.springframework.beans.factory.config.ConfigurableBeanFactory;
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/host/HostStartJobFactory.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/host/HostStartJobFactory.java
index 844f6518..211067df 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/host/HostStartJobFactory.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/host/HostStartJobFactory.java
@@ -20,9 +20,9 @@ package org.apache.bigtop.manager.server.command.factory.host;
 
 import org.apache.bigtop.manager.common.enums.Command;
 import org.apache.bigtop.manager.server.command.CommandIdentifier;
-import org.apache.bigtop.manager.server.command.job.HostStartJob;
 import org.apache.bigtop.manager.server.command.job.Job;
 import org.apache.bigtop.manager.server.command.job.JobContext;
+import org.apache.bigtop.manager.server.command.job.host.HostStartJob;
 import org.apache.bigtop.manager.server.enums.CommandLevel;
 
 import org.springframework.beans.factory.config.ConfigurableBeanFactory;
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/host/HostStopJobFactory.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/host/HostStopJobFactory.java
index efa6e81f..9eb582b7 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/host/HostStopJobFactory.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/host/HostStopJobFactory.java
@@ -20,9 +20,9 @@ package org.apache.bigtop.manager.server.command.factory.host;
 
 import org.apache.bigtop.manager.common.enums.Command;
 import org.apache.bigtop.manager.server.command.CommandIdentifier;
-import org.apache.bigtop.manager.server.command.job.HostStopJob;
 import org.apache.bigtop.manager.server.command.job.Job;
 import org.apache.bigtop.manager.server.command.job.JobContext;
+import org.apache.bigtop.manager.server.command.job.host.HostStopJob;
 import org.apache.bigtop.manager.server.enums.CommandLevel;
 
 import org.springframework.beans.factory.config.ConfigurableBeanFactory;
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/service/ServiceAddJobFactory.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/service/ServiceAddJobFactory.java
index 3d0d4f11..a2fa4dcf 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/service/ServiceAddJobFactory.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/service/ServiceAddJobFactory.java
@@ -22,7 +22,7 @@ import org.apache.bigtop.manager.common.enums.Command;
 import org.apache.bigtop.manager.server.command.CommandIdentifier;
 import org.apache.bigtop.manager.server.command.job.Job;
 import org.apache.bigtop.manager.server.command.job.JobContext;
-import org.apache.bigtop.manager.server.command.job.ServiceAddJob;
+import org.apache.bigtop.manager.server.command.job.service.ServiceAddJob;
 import org.apache.bigtop.manager.server.enums.CommandLevel;
 
 import org.springframework.beans.factory.config.ConfigurableBeanFactory;
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/service/ServiceCheckJobFactory.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/service/ServiceCheckJobFactory.java
index 3335ef18..97bcb199 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/service/ServiceCheckJobFactory.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/service/ServiceCheckJobFactory.java
@@ -22,7 +22,7 @@ import org.apache.bigtop.manager.common.enums.Command;
 import org.apache.bigtop.manager.server.command.CommandIdentifier;
 import org.apache.bigtop.manager.server.command.job.Job;
 import org.apache.bigtop.manager.server.command.job.JobContext;
-import org.apache.bigtop.manager.server.command.job.ServiceCheckJob;
+import org.apache.bigtop.manager.server.command.job.service.ServiceCheckJob;
 import org.apache.bigtop.manager.server.enums.CommandLevel;
 
 import org.springframework.beans.factory.config.ConfigurableBeanFactory;
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/service/ServiceConfigureJobFactory.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/service/ServiceConfigureJobFactory.java
index 15c804d3..ec875a8e 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/service/ServiceConfigureJobFactory.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/service/ServiceConfigureJobFactory.java
@@ -22,7 +22,7 @@ import org.apache.bigtop.manager.common.enums.Command;
 import org.apache.bigtop.manager.server.command.CommandIdentifier;
 import org.apache.bigtop.manager.server.command.job.Job;
 import org.apache.bigtop.manager.server.command.job.JobContext;
-import org.apache.bigtop.manager.server.command.job.ServiceConfigureJob;
+import 
org.apache.bigtop.manager.server.command.job.service.ServiceConfigureJob;
 import org.apache.bigtop.manager.server.enums.CommandLevel;
 
 import org.springframework.beans.factory.config.ConfigurableBeanFactory;
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/service/ServiceRestartJobFactory.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/service/ServiceRestartJobFactory.java
index f71c9d01..d068329a 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/service/ServiceRestartJobFactory.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/service/ServiceRestartJobFactory.java
@@ -22,7 +22,7 @@ import org.apache.bigtop.manager.common.enums.Command;
 import org.apache.bigtop.manager.server.command.CommandIdentifier;
 import org.apache.bigtop.manager.server.command.job.Job;
 import org.apache.bigtop.manager.server.command.job.JobContext;
-import org.apache.bigtop.manager.server.command.job.ServiceRestartJob;
+import org.apache.bigtop.manager.server.command.job.service.ServiceRestartJob;
 import org.apache.bigtop.manager.server.enums.CommandLevel;
 
 import org.springframework.beans.factory.config.ConfigurableBeanFactory;
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/service/ServiceStartJobFactory.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/service/ServiceStartJobFactory.java
index d84995fd..4c992bdc 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/service/ServiceStartJobFactory.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/service/ServiceStartJobFactory.java
@@ -22,7 +22,7 @@ import org.apache.bigtop.manager.common.enums.Command;
 import org.apache.bigtop.manager.server.command.CommandIdentifier;
 import org.apache.bigtop.manager.server.command.job.Job;
 import org.apache.bigtop.manager.server.command.job.JobContext;
-import org.apache.bigtop.manager.server.command.job.ServiceStartJob;
+import org.apache.bigtop.manager.server.command.job.service.ServiceStartJob;
 import org.apache.bigtop.manager.server.enums.CommandLevel;
 
 import org.springframework.beans.factory.config.ConfigurableBeanFactory;
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/service/ServiceStopJobFactory.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/service/ServiceStopJobFactory.java
index b2e2504e..3a607063 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/service/ServiceStopJobFactory.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/factory/service/ServiceStopJobFactory.java
@@ -22,7 +22,7 @@ import org.apache.bigtop.manager.common.enums.Command;
 import org.apache.bigtop.manager.server.command.CommandIdentifier;
 import org.apache.bigtop.manager.server.command.job.Job;
 import org.apache.bigtop.manager.server.command.job.JobContext;
-import org.apache.bigtop.manager.server.command.job.ServiceStopJob;
+import org.apache.bigtop.manager.server.command.job.service.ServiceStopJob;
 import org.apache.bigtop.manager.server.enums.CommandLevel;
 
 import org.springframework.beans.factory.config.ConfigurableBeanFactory;
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractClusterJob.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/cluster/AbstractClusterJob.java
similarity index 96%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractClusterJob.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/cluster/AbstractClusterJob.java
index 4787e197..211788e7 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractClusterJob.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/cluster/AbstractClusterJob.java
@@ -16,12 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.command.job;
+package org.apache.bigtop.manager.server.command.job.cluster;
 
 import org.apache.bigtop.manager.common.enums.Command;
 import org.apache.bigtop.manager.dao.po.ComponentPO;
 import org.apache.bigtop.manager.dao.query.ComponentQuery;
 import org.apache.bigtop.manager.dao.repository.ComponentDao;
+import org.apache.bigtop.manager.server.command.job.AbstractJob;
+import org.apache.bigtop.manager.server.command.job.JobContext;
 import org.apache.bigtop.manager.server.command.stage.ComponentStartStage;
 import org.apache.bigtop.manager.server.command.stage.ComponentStopStage;
 import org.apache.bigtop.manager.server.command.stage.StageContext;
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ClusterAddJob.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/cluster/ClusterAddJob.java
similarity index 95%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ClusterAddJob.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/cluster/ClusterAddJob.java
index 6bf52fee..f8650456 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ClusterAddJob.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/cluster/ClusterAddJob.java
@@ -16,11 +16,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.command.job;
+package org.apache.bigtop.manager.server.command.job.cluster;
 
 import org.apache.bigtop.manager.dao.po.JobPO;
 import org.apache.bigtop.manager.dao.po.StagePO;
 import org.apache.bigtop.manager.dao.po.TaskPO;
+import org.apache.bigtop.manager.server.command.job.AbstractJob;
+import org.apache.bigtop.manager.server.command.job.JobContext;
 import org.apache.bigtop.manager.server.command.stage.CacheFileUpdateStage;
 import org.apache.bigtop.manager.server.command.stage.HostCheckStage;
 import org.apache.bigtop.manager.server.command.stage.SetupJdkStage;
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ClusterRestartJob.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/cluster/ClusterRestartJob.java
similarity index 90%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ClusterRestartJob.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/cluster/ClusterRestartJob.java
index 53d02c9a..6ac4c5d1 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ClusterRestartJob.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/cluster/ClusterRestartJob.java
@@ -16,7 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.command.job;
+package org.apache.bigtop.manager.server.command.job.cluster;
+
+import org.apache.bigtop.manager.server.command.job.JobContext;
 
 public class ClusterRestartJob extends AbstractClusterJob {
 
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ClusterStartJob.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/cluster/ClusterStartJob.java
similarity index 89%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ClusterStartJob.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/cluster/ClusterStartJob.java
index 39036df2..9f8ff7a8 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ClusterStartJob.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/cluster/ClusterStartJob.java
@@ -16,7 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.command.job;
+package org.apache.bigtop.manager.server.command.job.cluster;
+
+import org.apache.bigtop.manager.server.command.job.JobContext;
 
 public class ClusterStartJob extends AbstractClusterJob {
 
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ClusterStopJob.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/cluster/ClusterStopJob.java
similarity index 89%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ClusterStopJob.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/cluster/ClusterStopJob.java
index 843d7a50..ee4cc770 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ClusterStopJob.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/cluster/ClusterStopJob.java
@@ -16,7 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.command.job;
+package org.apache.bigtop.manager.server.command.job.cluster;
+
+import org.apache.bigtop.manager.server.command.job.JobContext;
 
 public class ClusterStopJob extends AbstractClusterJob {
 
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractHostJob.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/component/AbstractComponentJob.java
similarity index 56%
copy from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractHostJob.java
copy to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/component/AbstractComponentJob.java
index 952f6daa..7fa057f5 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractHostJob.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/component/AbstractComponentJob.java
@@ -16,18 +16,24 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.command.job;
+package org.apache.bigtop.manager.server.command.job.component;
 
 import org.apache.bigtop.manager.common.enums.Command;
-import org.apache.bigtop.manager.dao.po.ComponentPO;
-import org.apache.bigtop.manager.dao.query.ComponentQuery;
 import org.apache.bigtop.manager.dao.repository.ComponentDao;
+import org.apache.bigtop.manager.dao.repository.HostDao;
+import org.apache.bigtop.manager.dao.repository.ServiceDao;
+import org.apache.bigtop.manager.server.command.job.AbstractJob;
+import org.apache.bigtop.manager.server.command.job.JobContext;
+import org.apache.bigtop.manager.server.command.stage.CacheFileUpdateStage;
+import org.apache.bigtop.manager.server.command.stage.ComponentAddStage;
+import org.apache.bigtop.manager.server.command.stage.ComponentConfigureStage;
 import org.apache.bigtop.manager.server.command.stage.ComponentStartStage;
 import org.apache.bigtop.manager.server.command.stage.ComponentStopStage;
 import org.apache.bigtop.manager.server.command.stage.StageContext;
 import org.apache.bigtop.manager.server.holder.SpringContextHolder;
 import org.apache.bigtop.manager.server.model.dto.ComponentDTO;
 import org.apache.bigtop.manager.server.model.dto.ServiceDTO;
+import org.apache.bigtop.manager.server.model.dto.command.ComponentCommandDTO;
 import org.apache.bigtop.manager.server.utils.StackDAGUtils;
 import org.apache.bigtop.manager.server.utils.StackUtils;
 
@@ -36,11 +42,13 @@ import org.apache.commons.collections4.CollectionUtils;
 import java.util.ArrayList;
 import java.util.List;
 
-public abstract class AbstractHostJob extends AbstractJob {
+public abstract class AbstractComponentJob extends AbstractJob {
 
+    protected HostDao hostDao;
+    protected ServiceDao serviceDao;
     protected ComponentDao componentDao;
 
-    public AbstractHostJob(JobContext jobContext) {
+    public AbstractComponentJob(JobContext jobContext) {
         super(jobContext);
     }
 
@@ -48,6 +56,8 @@ public abstract class AbstractHostJob extends AbstractJob {
     protected void injectBeans() {
         super.injectBeans();
 
+        this.hostDao = SpringContextHolder.getBean(HostDao.class);
+        this.serviceDao = SpringContextHolder.getBean(ServiceDao.class);
         this.componentDao = SpringContextHolder.getBean(ComponentDao.class);
     }
 
@@ -69,9 +79,39 @@ public abstract class AbstractHostJob extends AbstractJob {
         return stageContext;
     }
 
+    protected void createCacheStage() {
+        StageContext stageContext = 
StageContext.fromCommandDTO(jobContext.getCommandDTO());
+        stages.add(new CacheFileUpdateStage(stageContext));
+    }
+
+    protected void createAddStages() {
+        List<String> todoList = StackDAGUtils.getTodoList(getComponentNames(), 
Command.ADD);
+
+        for (String componentCommand : todoList) {
+            String[] split = componentCommand.split("-");
+            String componentName = split[0];
+            List<String> hostnames = getHostnames(componentName);
+            if (CollectionUtils.isEmpty(hostnames)) {
+                continue;
+            }
+
+            StageContext stageContext = createStageContext(componentName, 
hostnames);
+            stages.add(new ComponentAddStage(stageContext));
+        }
+    }
+
+    protected void createConfigureStages() {
+        for (ComponentCommandDTO componentCommand : 
jobContext.getCommandDTO().getComponentCommands()) {
+            String componentName = componentCommand.getComponentName();
+            List<String> hostnames = componentCommand.getHostnames();
+
+            StageContext stageContext = createStageContext(componentName, 
hostnames);
+            stages.add(new ComponentConfigureStage(stageContext));
+        }
+    }
+
     protected void createStartStages() {
-        List<ComponentPO> componentPOList = getComponentPOList();
-        List<String> todoList = 
StackDAGUtils.getTodoList(getComponentNames(componentPOList), Command.START);
+        List<String> todoList = StackDAGUtils.getTodoList(getComponentNames(), 
Command.START);
 
         for (String componentCommand : todoList) {
             String[] split = componentCommand.split("-");
@@ -81,7 +121,7 @@ public abstract class AbstractHostJob extends AbstractJob {
                 continue;
             }
 
-            List<String> hostnames = getHostnames();
+            List<String> hostnames = getHostnames(componentName);
             if (CollectionUtils.isEmpty(hostnames)) {
                 continue;
             }
@@ -92,8 +132,7 @@ public abstract class AbstractHostJob extends AbstractJob {
     }
 
     protected void createStopStages() {
-        List<ComponentPO> componentPOList = getComponentPOList();
-        List<String> todoList = 
StackDAGUtils.getTodoList(getComponentNames(componentPOList), Command.STOP);
+        List<String> todoList = StackDAGUtils.getTodoList(getComponentNames(), 
Command.STOP);
 
         for (String componentCommand : todoList) {
             String[] split = componentCommand.split("-");
@@ -103,7 +142,7 @@ public abstract class AbstractHostJob extends AbstractJob {
                 continue;
             }
 
-            List<String> hostnames = getHostnames();
+            List<String> hostnames = getHostnames(componentName);
             if (CollectionUtils.isEmpty(hostnames)) {
                 continue;
             }
@@ -113,25 +152,19 @@ public abstract class AbstractHostJob extends AbstractJob 
{
         }
     }
 
-    private List<ComponentPO> getComponentPOList() {
-        ComponentQuery query = ComponentQuery.builder()
-                .clusterId(clusterPO.getId())
-                .hostnames(getHostnames())
-                .build();
-        return componentDao.findByQuery(query);
+    private List<String> getComponentNames() {
+        return jobContext.getCommandDTO().getComponentCommands().stream()
+                .map(ComponentCommandDTO::getComponentName)
+                .toList();
     }
 
-    private List<String> getComponentNames(List<ComponentPO> componentPOList) {
-        if (componentPOList == null) {
-            return new ArrayList<>();
-        } else {
-            return 
componentPOList.stream().map(ComponentPO::getName).distinct().toList();
+    private List<String> getHostnames(String componentName) {
+        for (ComponentCommandDTO componentCommand : 
jobContext.getCommandDTO().getComponentCommands()) {
+            if (componentCommand.getComponentName().equals(componentName)) {
+                return componentCommand.getHostnames();
+            }
         }
-    }
 
-    private List<String> getHostnames() {
-        return jobContext.getCommandDTO().getHostCommands().stream()
-                .flatMap(hostCommandDTO -> 
hostCommandDTO.getHostnames().stream())
-                .toList();
+        return new ArrayList<>();
     }
 }
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/component/ComponentAddJob.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/component/ComponentAddJob.java
new file mode 100644
index 00000000..762b7b08
--- /dev/null
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/component/ComponentAddJob.java
@@ -0,0 +1,108 @@
+/*
+ * 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
+ *
+ *    https://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.bigtop.manager.server.command.job.component;
+
+import org.apache.bigtop.manager.dao.po.ComponentPO;
+import org.apache.bigtop.manager.dao.po.HostPO;
+import org.apache.bigtop.manager.dao.po.ServicePO;
+import org.apache.bigtop.manager.server.command.job.JobContext;
+import org.apache.bigtop.manager.server.enums.HealthyStatusEnum;
+import org.apache.bigtop.manager.server.model.converter.ComponentConverter;
+import org.apache.bigtop.manager.server.model.dto.CommandDTO;
+import org.apache.bigtop.manager.server.model.dto.ComponentDTO;
+import org.apache.bigtop.manager.server.model.dto.ServiceDTO;
+import org.apache.bigtop.manager.server.model.dto.command.ComponentCommandDTO;
+import org.apache.bigtop.manager.server.utils.StackUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ComponentAddJob extends AbstractComponentJob {
+
+    public ComponentAddJob(JobContext jobContext) {
+        super(jobContext);
+    }
+
+    @Override
+    protected void injectBeans() {
+        super.injectBeans();
+    }
+
+    @Override
+    protected void createStages() {
+        // Update cache files
+        super.createCacheStage();
+
+        // Install components
+        super.createAddStages();
+
+        // Configure services
+        super.createConfigureStages();
+
+        // Start all master components
+        super.createStartStages();
+    }
+
+    @Override
+    public void beforeRun() {
+        super.beforeRun();
+
+        // Skip persistent if it's a retry job
+        if (jobContext.getRetryFlag()) {
+            return;
+        }
+
+        CommandDTO commandDTO = jobContext.getCommandDTO();
+        List<ComponentCommandDTO> componentCommands = 
commandDTO.getComponentCommands();
+        for (ComponentCommandDTO componentCommand : componentCommands) {
+            saveComponents(componentCommand);
+        }
+    }
+
+    @Override
+    public String getName() {
+        return "Add components";
+    }
+
+    private void saveComponents(ComponentCommandDTO componentCommand) {
+        Long clusterId = jobContext.getCommandDTO().getClusterId();
+        String componentName = componentCommand.getComponentName();
+        ServiceDTO serviceDTO = 
StackUtils.getServiceDTOByComponentName(componentName);
+        ServicePO servicePO = serviceDao.findByClusterIdAndName(clusterId, 
serviceDTO.getName());
+
+        List<ComponentPO> componentPOList = new ArrayList<>();
+        List<String> hostnames = componentCommand.getHostnames();
+        for (String hostname : hostnames) {
+            HostPO hostPO = hostDao.findByHostname(hostname);
+            ComponentDTO componentDTO = 
StackUtils.getComponentDTO(componentName);
+            ComponentPO componentPO = 
ComponentConverter.INSTANCE.fromDTO2PO(componentDTO);
+            componentPO.setClusterId(clusterId);
+            componentPO.setHostId(hostPO.getId());
+            componentPO.setServiceId(servicePO.getId());
+            componentPO.setStatus(HealthyStatusEnum.UNKNOWN.getCode());
+            componentPOList.add(componentPO);
+        }
+
+        componentDao.saveAll(componentPOList);
+
+        // Require restart after adding new components
+        servicePO.setRestartFlag(true);
+        serviceDao.partialUpdateById(servicePO);
+    }
+}
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/HostRestartJob.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/component/ComponentRestartJob.java
similarity index 78%
copy from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/HostRestartJob.java
copy to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/component/ComponentRestartJob.java
index 926b9d53..820ff6fb 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/HostRestartJob.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/component/ComponentRestartJob.java
@@ -16,11 +16,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.command.job;
+package org.apache.bigtop.manager.server.command.job.component;
 
-public class HostRestartJob extends AbstractHostJob {
+import org.apache.bigtop.manager.server.command.job.JobContext;
 
-    public HostRestartJob(JobContext jobContext) {
+public class ComponentRestartJob extends AbstractComponentJob {
+
+    public ComponentRestartJob(JobContext jobContext) {
         super(jobContext);
     }
 
@@ -33,6 +35,6 @@ public class HostRestartJob extends AbstractHostJob {
 
     @Override
     public String getName() {
-        return "Restart host";
+        return "Restart components";
     }
 }
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/HostRestartJob.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/component/ComponentStartJob.java
similarity index 78%
copy from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/HostRestartJob.java
copy to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/component/ComponentStartJob.java
index 926b9d53..94d2c6c3 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/HostRestartJob.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/component/ComponentStartJob.java
@@ -16,23 +16,23 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.command.job;
+package org.apache.bigtop.manager.server.command.job.component;
 
-public class HostRestartJob extends AbstractHostJob {
+import org.apache.bigtop.manager.server.command.job.JobContext;
 
-    public HostRestartJob(JobContext jobContext) {
+public class ComponentStartJob extends AbstractComponentJob {
+
+    public ComponentStartJob(JobContext jobContext) {
         super(jobContext);
     }
 
     @Override
     protected void createStages() {
-        super.createStopStages();
-
         super.createStartStages();
     }
 
     @Override
     public String getName() {
-        return "Restart host";
+        return "Start components";
     }
 }
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/HostRestartJob.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/component/ComponentStopJob.java
similarity index 78%
copy from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/HostRestartJob.java
copy to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/component/ComponentStopJob.java
index 926b9d53..cef74f65 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/HostRestartJob.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/component/ComponentStopJob.java
@@ -16,23 +16,23 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.command.job;
+package org.apache.bigtop.manager.server.command.job.component;
 
-public class HostRestartJob extends AbstractHostJob {
+import org.apache.bigtop.manager.server.command.job.JobContext;
 
-    public HostRestartJob(JobContext jobContext) {
+public class ComponentStopJob extends AbstractComponentJob {
+
+    public ComponentStopJob(JobContext jobContext) {
         super(jobContext);
     }
 
     @Override
     protected void createStages() {
         super.createStopStages();
-
-        super.createStartStages();
     }
 
     @Override
     public String getName() {
-        return "Restart host";
+        return "Stop components";
     }
 }
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractHostJob.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/host/AbstractHostJob.java
similarity index 96%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractHostJob.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/host/AbstractHostJob.java
index 952f6daa..d1af00f0 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractHostJob.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/host/AbstractHostJob.java
@@ -16,12 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.command.job;
+package org.apache.bigtop.manager.server.command.job.host;
 
 import org.apache.bigtop.manager.common.enums.Command;
 import org.apache.bigtop.manager.dao.po.ComponentPO;
 import org.apache.bigtop.manager.dao.query.ComponentQuery;
 import org.apache.bigtop.manager.dao.repository.ComponentDao;
+import org.apache.bigtop.manager.server.command.job.AbstractJob;
+import org.apache.bigtop.manager.server.command.job.JobContext;
 import org.apache.bigtop.manager.server.command.stage.ComponentStartStage;
 import org.apache.bigtop.manager.server.command.stage.ComponentStopStage;
 import org.apache.bigtop.manager.server.command.stage.StageContext;
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/HostAddJob.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/host/HostAddJob.java
similarity index 93%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/HostAddJob.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/host/HostAddJob.java
index 6f2d9b1a..a10f240a 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/HostAddJob.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/host/HostAddJob.java
@@ -16,8 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.command.job;
+package org.apache.bigtop.manager.server.command.job.host;
 
+import org.apache.bigtop.manager.server.command.job.JobContext;
 import org.apache.bigtop.manager.server.command.stage.CacheFileUpdateStage;
 import org.apache.bigtop.manager.server.command.stage.HostCheckStage;
 import org.apache.bigtop.manager.server.command.stage.SetupJdkStage;
@@ -30,7 +31,7 @@ import org.apache.bigtop.manager.server.service.HostService;
 
 import java.util.List;
 
-public class HostAddJob extends AbstractJob {
+public class HostAddJob extends AbstractHostJob {
 
     private HostService hostService;
 
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/HostRestartJob.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/host/HostRestartJob.java
similarity index 90%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/HostRestartJob.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/host/HostRestartJob.java
index 926b9d53..9bc0b337 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/HostRestartJob.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/host/HostRestartJob.java
@@ -16,7 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.command.job;
+package org.apache.bigtop.manager.server.command.job.host;
+
+import org.apache.bigtop.manager.server.command.job.JobContext;
 
 public class HostRestartJob extends AbstractHostJob {
 
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/HostStartJob.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/host/HostStartJob.java
similarity index 90%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/HostStartJob.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/host/HostStartJob.java
index b49d4d2a..80c2c85a 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/HostStartJob.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/host/HostStartJob.java
@@ -16,7 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.command.job;
+package org.apache.bigtop.manager.server.command.job.host;
+
+import org.apache.bigtop.manager.server.command.job.JobContext;
 
 public class HostStartJob extends AbstractHostJob {
 
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/HostStopJob.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/host/HostStopJob.java
similarity index 90%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/HostStopJob.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/host/HostStopJob.java
index aa4d605e..2ab781ba 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/HostStopJob.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/host/HostStopJob.java
@@ -16,7 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.command.job;
+package org.apache.bigtop.manager.server.command.job.host;
+
+import org.apache.bigtop.manager.server.command.job.JobContext;
 
 public class HostStopJob extends AbstractHostJob {
 
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractServiceJob.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/service/AbstractServiceJob.java
similarity index 97%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractServiceJob.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/service/AbstractServiceJob.java
index 653e55ba..b47292ac 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractServiceJob.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/service/AbstractServiceJob.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.command.job;
+package org.apache.bigtop.manager.server.command.job.service;
 
 import org.apache.bigtop.manager.common.enums.Command;
 import org.apache.bigtop.manager.dao.po.ComponentPO;
@@ -26,6 +26,8 @@ import org.apache.bigtop.manager.dao.repository.HostDao;
 import org.apache.bigtop.manager.dao.repository.ServiceConfigDao;
 import org.apache.bigtop.manager.dao.repository.ServiceConfigSnapshotDao;
 import org.apache.bigtop.manager.dao.repository.ServiceDao;
+import org.apache.bigtop.manager.server.command.job.AbstractJob;
+import org.apache.bigtop.manager.server.command.job.JobContext;
 import org.apache.bigtop.manager.server.command.stage.CacheFileUpdateStage;
 import org.apache.bigtop.manager.server.command.stage.ComponentAddStage;
 import org.apache.bigtop.manager.server.command.stage.ComponentCheckStage;
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ServiceAddJob.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/service/ServiceAddJob.java
similarity index 98%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ServiceAddJob.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/service/ServiceAddJob.java
index 9498ccd3..35553ebd 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ServiceAddJob.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/service/ServiceAddJob.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.command.job;
+package org.apache.bigtop.manager.server.command.job.service;
 
 import org.apache.bigtop.manager.common.utils.JsonUtils;
 import org.apache.bigtop.manager.dao.po.ComponentPO;
@@ -24,6 +24,7 @@ import org.apache.bigtop.manager.dao.po.HostPO;
 import org.apache.bigtop.manager.dao.po.ServiceConfigPO;
 import org.apache.bigtop.manager.dao.po.ServiceConfigSnapshotPO;
 import org.apache.bigtop.manager.dao.po.ServicePO;
+import org.apache.bigtop.manager.server.command.job.JobContext;
 import org.apache.bigtop.manager.server.enums.HealthyStatusEnum;
 import org.apache.bigtop.manager.server.model.converter.ComponentConverter;
 import org.apache.bigtop.manager.server.model.converter.ServiceConfigConverter;
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ServiceCheckJob.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/service/ServiceCheckJob.java
similarity index 95%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ServiceCheckJob.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/service/ServiceCheckJob.java
index 34f798e0..7f3bc192 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ServiceCheckJob.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/service/ServiceCheckJob.java
@@ -16,9 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.command.job;
+package org.apache.bigtop.manager.server.command.job.service;
 
 import org.apache.bigtop.manager.dao.po.ServicePO;
+import org.apache.bigtop.manager.server.command.job.JobContext;
 import org.apache.bigtop.manager.server.enums.HealthyStatusEnum;
 import org.apache.bigtop.manager.server.model.dto.CommandDTO;
 import org.apache.bigtop.manager.server.model.dto.command.ServiceCommandDTO;
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ServiceConfigureJob.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/service/ServiceConfigureJob.java
similarity index 91%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ServiceConfigureJob.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/service/ServiceConfigureJob.java
index 6f60fc6f..03fed56e 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ServiceConfigureJob.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/service/ServiceConfigureJob.java
@@ -16,7 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.command.job;
+package org.apache.bigtop.manager.server.command.job.service;
+
+import org.apache.bigtop.manager.server.command.job.JobContext;
 
 public class ServiceConfigureJob extends AbstractServiceJob {
 
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ServiceRestartJob.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/service/ServiceRestartJob.java
similarity index 95%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ServiceRestartJob.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/service/ServiceRestartJob.java
index 87ccb90a..1124e865 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ServiceRestartJob.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/service/ServiceRestartJob.java
@@ -16,9 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.command.job;
+package org.apache.bigtop.manager.server.command.job.service;
 
 import org.apache.bigtop.manager.dao.po.ServicePO;
+import org.apache.bigtop.manager.server.command.job.JobContext;
 import org.apache.bigtop.manager.server.enums.HealthyStatusEnum;
 import org.apache.bigtop.manager.server.model.dto.CommandDTO;
 import org.apache.bigtop.manager.server.model.dto.command.ServiceCommandDTO;
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ServiceStartJob.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/service/ServiceStartJob.java
similarity index 94%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ServiceStartJob.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/service/ServiceStartJob.java
index 85b4959c..06d8f9bc 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ServiceStartJob.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/service/ServiceStartJob.java
@@ -16,9 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.command.job;
+package org.apache.bigtop.manager.server.command.job.service;
 
 import org.apache.bigtop.manager.dao.po.ServicePO;
+import org.apache.bigtop.manager.server.command.job.JobContext;
 import org.apache.bigtop.manager.server.enums.HealthyStatusEnum;
 import org.apache.bigtop.manager.server.model.dto.CommandDTO;
 import org.apache.bigtop.manager.server.model.dto.command.ServiceCommandDTO;
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ServiceStopJob.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/service/ServiceStopJob.java
similarity index 94%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ServiceStopJob.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/service/ServiceStopJob.java
index 9919769e..bb1296b9 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ServiceStopJob.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/service/ServiceStopJob.java
@@ -16,9 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.command.job;
+package org.apache.bigtop.manager.server.command.job.service;
 
 import org.apache.bigtop.manager.dao.po.ServicePO;
+import org.apache.bigtop.manager.server.command.job.JobContext;
 import org.apache.bigtop.manager.server.enums.HealthyStatusEnum;
 import org.apache.bigtop.manager.server.model.dto.CommandDTO;
 import org.apache.bigtop.manager.server.model.dto.command.ServiceCommandDTO;
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentAddTask.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentAddTask.java
index 4c8ea99e..53469e18 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentAddTask.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentAddTask.java
@@ -43,8 +43,11 @@ public class ComponentAddTask extends AbstractComponentTask {
 
         String componentName = taskContext.getComponentName();
         String hostname = taskContext.getHostname();
-        ComponentQuery componentQuery =
-                
ComponentQuery.builder().hostname(hostname).name(componentName).build();
+        ComponentQuery componentQuery = ComponentQuery.builder()
+                .clusterId(taskContext.getClusterId())
+                .hostname(hostname)
+                .name(componentName)
+                .build();
         ComponentPO componentPO = 
componentDao.findByQuery(componentQuery).get(0);
 
         ComponentDTO componentDTO = StackUtils.getComponentDTO(componentName);
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentCheckTask.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentCheckTask.java
index 66a74283..5c1c1463 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentCheckTask.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentCheckTask.java
@@ -40,8 +40,11 @@ public class ComponentCheckTask extends 
AbstractComponentTask {
 
         String componentName = taskContext.getComponentName();
         String hostname = taskContext.getHostname();
-        ComponentQuery componentQuery =
-                
ComponentQuery.builder().hostname(hostname).name(componentName).build();
+        ComponentQuery componentQuery = ComponentQuery.builder()
+                .clusterId(taskContext.getClusterId())
+                .hostname(hostname)
+                .name(componentName)
+                .build();
         ComponentPO componentPO = 
componentDao.findByQuery(componentQuery).get(0);
         componentPO.setStatus(HealthyStatusEnum.HEALTHY.getCode());
         componentDao.partialUpdateById(componentPO);
@@ -53,8 +56,11 @@ public class ComponentCheckTask extends 
AbstractComponentTask {
 
         String componentName = taskContext.getComponentName();
         String hostname = taskContext.getHostname();
-        ComponentQuery componentQuery =
-                
ComponentQuery.builder().hostname(hostname).name(componentName).build();
+        ComponentQuery componentQuery = ComponentQuery.builder()
+                .clusterId(taskContext.getClusterId())
+                .hostname(hostname)
+                .name(componentName)
+                .build();
         ComponentPO componentPO = 
componentDao.findByQuery(componentQuery).get(0);
         componentPO.setStatus(HealthyStatusEnum.UNHEALTHY.getCode());
         componentDao.partialUpdateById(componentPO);
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentStartTask.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentStartTask.java
index 451aef25..44620e04 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentStartTask.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentStartTask.java
@@ -40,8 +40,11 @@ public class ComponentStartTask extends 
AbstractComponentTask {
 
         String componentName = taskContext.getComponentName();
         String hostname = taskContext.getHostname();
-        ComponentQuery componentQuery =
-                
ComponentQuery.builder().hostname(hostname).name(componentName).build();
+        ComponentQuery componentQuery = ComponentQuery.builder()
+                .clusterId(taskContext.getClusterId())
+                .hostname(hostname)
+                .name(componentName)
+                .build();
         ComponentPO componentPO = 
componentDao.findByQuery(componentQuery).get(0);
         componentPO.setStatus(HealthyStatusEnum.HEALTHY.getCode());
         componentDao.partialUpdateById(componentPO);
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentStopTask.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentStopTask.java
index 24d8294e..73e0f4c4 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentStopTask.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentStopTask.java
@@ -40,8 +40,11 @@ public class ComponentStopTask extends AbstractComponentTask 
{
 
         String componentName = taskContext.getComponentName();
         String hostname = taskContext.getHostname();
-        ComponentQuery componentQuery =
-                
ComponentQuery.builder().hostname(hostname).name(componentName).build();
+        ComponentQuery componentQuery = ComponentQuery.builder()
+                .clusterId(taskContext.getClusterId())
+                .hostname(hostname)
+                .name(componentName)
+                .build();
         ComponentPO componentPO = 
componentDao.findByQuery(componentQuery).get(0);
         componentPO.setStatus(HealthyStatusEnum.UNHEALTHY.getCode());
         componentDao.partialUpdateById(componentPO);
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/ComponentHostReq.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/ComponentHostReq.java
index 34ed4d13..214c04d7 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/ComponentHostReq.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/ComponentHostReq.java
@@ -28,10 +28,10 @@ import java.util.List;
 @Data
 public class ComponentHostReq {
 
-    @NotNull @Schema(description = "Component name", example = 
"zookeeper-server")
+    @NotNull @Schema(description = "Component name", example = 
"zookeeper_server")
     private String componentName;
 
     @NotEmpty
-    @Schema(description = "Hostnames for component", example = "[host1]")
+    @Schema(description = "Hostnames for component", example = "[host1, 
host2]")
     private List<String> hostnames;
 }
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/command/ComponentCommandReq.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/command/ComponentCommandReq.java
index b00c65f6..92a6927c 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/command/ComponentCommandReq.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/command/ComponentCommandReq.java
@@ -33,6 +33,6 @@ public class ComponentCommandReq {
     private String componentName;
 
     @NotEmpty
-    @Schema(description = "Host Name List", example = "[bigtop-manager-server, 
bigtop-manager-agent]")
+    @Schema(description = "Hostnames for component", example = "[host1, 
host2]")
     private List<String> hostnames;
 }

Reply via email to