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 fe418a7  BIGTOP-4190: Remove nop stack and mock real stack on dev mode 
(#48)
fe418a7 is described below

commit fe418a7bf58421052c62ea298829cff587e47d18
Author: Zhiguo Wu <[email protected]>
AuthorDate: Tue Aug 20 18:58:16 2024 +0800

    BIGTOP-4190: Remove nop stack and mock real stack on dev mode (#48)
---
 bigtop-manager-agent/pom.xml                       |   5 -
 .../bigtop/manager/common/utils/Environments.java  |   5 +-
 .../bigtop/manager/server/utils/StackUtils.java    |  10 -
 .../main/resources/stacks/nop/1.0.0/metainfo.xml   |  65 ---
 .../services/kafka/configuration/kafka-broker.xml  | 537 ---------------------
 .../services/kafka/configuration/kafka-env.xml     |  71 ---
 .../services/kafka/configuration/kafka-log4j.xml   | 143 ------
 .../services/kafka/configuration/kafka.conf.xml    |  53 --
 .../stacks/nop/1.0.0/services/kafka/metainfo.xml   |  73 ---
 .../stacks/nop/1.0.0/services/kafka/order.json     |  14 -
 .../services/zookeeper/configuration/zoo.cfg.xml   | 128 -----
 .../zookeeper/configuration/zookeeper-env.xml      |  58 ---
 .../nop/1.0.0/services/zookeeper/metainfo.xml      |  79 ---
 .../stacks/nop/1.0.0/services/zookeeper/order.json |   5 -
 .../manager/stack/core/executor/StackExecutor.java |  29 +-
 .../bigtop-manager-stack-nop/pom.xml               |  39 --
 .../stack/nop/v1_0_0/kafka/KafkaBrokerScript.java  |  67 ---
 .../stack/nop/v1_0_0/kafka/KafkaParams.java        |  32 --
 .../v1_0_0/zookeeper/ZookeeperClientScript.java    |  44 --
 .../nop/v1_0_0/zookeeper/ZookeeperParams.java      |  32 --
 .../v1_0_0/zookeeper/ZookeeperServerScript.java    |  62 ---
 bigtop-manager-stack/pom.xml                       |   1 -
 pom.xml                                            |   6 -
 23 files changed, 16 insertions(+), 1542 deletions(-)

diff --git a/bigtop-manager-agent/pom.xml b/bigtop-manager-agent/pom.xml
index 6a6d703..08fdcfc 100644
--- a/bigtop-manager-agent/pom.xml
+++ b/bigtop-manager-agent/pom.xml
@@ -63,11 +63,6 @@
             <artifactId>bigtop-manager-stack-bigtop</artifactId>
         </dependency>
 
-        <dependency>
-            <groupId>org.apache.bigtop</groupId>
-            <artifactId>bigtop-manager-stack-nop</artifactId>
-        </dependency>
-
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
diff --git 
a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/utils/Environments.java
 
b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/utils/Environments.java
index f344cfb..e3b3cb1 100644
--- 
a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/utils/Environments.java
+++ 
b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/utils/Environments.java
@@ -23,8 +23,9 @@ import org.apache.commons.lang3.StringUtils;
 public class Environments {
 
     /**
-     * Indicates whether the application is running in development mode, which 
is disabled by default.
-     * In development mode, only NOP stacks are available and no real shell 
commands will be executed on the agent side.
+     * Indicates whether the application is running in development mode.
+     * In development mode, most tasks run on agent side will be proxied and 
return success by default.
+     * This should help developers test framework functions without depending 
on the existence of big data components.
      */
     public static Boolean isDevMode() {
         String devMode = System.getenv("DEV_MODE");
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/StackUtils.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/StackUtils.java
index b178b33..86b7525 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/StackUtils.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/StackUtils.java
@@ -19,7 +19,6 @@
 package org.apache.bigtop.manager.server.utils;
 
 import org.apache.bigtop.manager.common.enums.Command;
-import org.apache.bigtop.manager.common.utils.Environments;
 import org.apache.bigtop.manager.common.utils.JsonUtils;
 import org.apache.bigtop.manager.server.exception.ApiException;
 import org.apache.bigtop.manager.server.exception.ServerException;
@@ -77,8 +76,6 @@ public class StackUtils {
 
     private static final String DEPENDENCY_FILE_NAME = "order.json";
 
-    private static final String NOP_STACK = "nop";
-
     private static final Map<String, Map<String, List<String>>> 
STACK_DEPENDENCY_MAP = new HashMap<>();
 
     private static final Map<String, Map<String, List<TypeConfigDTO>>> 
STACK_CONFIG_MAP = new HashMap<>();
@@ -202,13 +199,6 @@ public class StackUtils {
 
         for (File stackFolder : stackFolders) {
             String stackName = stackFolder.getName();
-
-            // If in dev mode, only parse nop stack
-            // If not in dev mode, skip nop stack
-            if (Environments.isDevMode() != stackName.equals(NOP_STACK)) {
-                continue;
-            }
-
             File[] versionFolders = 
Optional.ofNullable(stackFolder.listFiles()).orElse(new File[0]);
 
             for (File versionFolder : versionFolders) {
diff --git 
a/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/metainfo.xml 
b/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/metainfo.xml
deleted file mode 100644
index c87d7b7..0000000
--- a/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/metainfo.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  ~ 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.
--->
-
-<metainfo>
-    <stack>
-        <stack-name>nop</stack-name>
-        <stack-version>1.0.0</stack-version>
-        <user-group>hadoop</user-group>
-        <root>/opt</root>
-        <packages>curl,wget</packages>
-        <repo-template><![CDATA[
-[${repoId}]
-name=${repoName}
-<#if baseUrl?? >
-baseurl=${baseUrl}
-<#else>
-mirrorlist=${mirrorList}
-</#if>
-path=/
-enabled=1
-gpgcheck=0
-]]>
-        </repo-template>
-        <repos>
-            <repo>
-                <repo-id>NOP-1.0.0</repo-id>
-                <repo-name>NOP-1.0.0 for CentOS-7 x86_64</repo-name>
-                <os>centos7</os>
-                <arch>x86_64</arch>
-                
<base-url>http://123.56.2.244/nop/1.0.0/centos7/x86_64/</base-url>
-            </repo>
-            <repo>
-                <repo-id>NOP-1.0.0</repo-id>
-                <repo-name>NOP-1.0.0 for CentOS-7 aarch64</repo-name>
-                <os>centos7</os>
-                <arch>aarch64</arch>
-                
<base-url>https://bigtop-snapshot.s3.amazonaws.com/centos-7/$basearch</base-url>
-            </repo>
-            <repo>
-                <repo-id>NOP-1.0.0</repo-id>
-                <repo-name>NOP-1.0.0 for RockyLinux-8 x86_64</repo-name>
-                <os>rocky8</os>
-                <arch>x86_64</arch>
-                
<base-url>http://123.56.2.244/nop/1.0.0/rocky8/x86_64/</base-url>
-            </repo>
-        </repos>
-    </stack>
-</metainfo>
\ No newline at end of file
diff --git 
a/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/kafka/configuration/kafka-broker.xml
 
b/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/kafka/configuration/kafka-broker.xml
deleted file mode 100644
index 1a4a5a7..0000000
--- 
a/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/kafka/configuration/kafka-broker.xml
+++ /dev/null
@@ -1,537 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  ~ 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.
--->
-
-<configuration>
-    <property>
-        <name>log.dirs</name>
-        <display-name>Log directories</display-name>
-        <value>/kafka-logs</value>
-        <description>
-            A comma-separated list of one or more directories in which Kafka 
data is stored.
-            Each new partition that is created will be placed in the directory 
which currently has the fewest
-            partitions.
-        </description>
-    </property>
-    <property>
-        <name>zookeeper.connect</name>
-        <value><![CDATA[<#if zkHostList?? ><#list zkHostList as 
host>${host}:2181<#sep>,</#sep></#list><#else>localhost:2181</#if>]]></value>
-        <description>
-            Zookeeper also allows you to add a "chroot" path which will make 
all kafka data for this cluster appear
-            under a particular path.
-            This is a way to setup multiple Kafka clusters or other 
applications on the same zookeeper cluster.
-            To do this give a connection string in the form 
hostname1:port1,hostname2:port2,hostname3:port3/chroot/path
-            which would put all this cluster's data under the path 
/chroot/path. Note that consumers must use the same
-            connection string.
-        </description>
-    </property>
-    <property>
-        <name>listeners</name>
-        <value><![CDATA[PLAINTEXT://<#if host?? 
>${host}:9092<#else>localhost:9092</#if>]]></value>
-        <description>
-            host and port where kafka broker will be accepting connections. 
localhost will be substituted with hostname.
-        </description>
-    </property>
-    <property>
-        <name>advertised.listeners</name>
-        <value><![CDATA[PLAINTEXT://<#if host?? 
>${host}:9092<#else>localhost:9092</#if>]]></value>
-        <description>
-            Listeners to publish to ZooKeeper for clients to use, if different 
than the listeners config property.
-        </description>
-    </property>
-    <property>
-        <name>message.max.bytes</name>
-        <value>1000000</value>
-        <description>
-            The maximum size of a message that the server can receive.
-            It is important that this property be in sync with the maximum 
fetch size your consumers use or
-            else an unruly producer will be able to publish messages too large 
for consumers to consume.
-        </description>
-    </property>
-    <property>
-        <name>num.network.threads</name>
-        <value>3</value>
-        <description>
-            The number of network threads that the server uses for handling 
network requests.
-            You probably don't need to change this.
-        </description>
-    </property>
-    <property>
-        <name>num.io.threads</name>
-        <value>8</value>
-        <description>
-            The number of I/O threads that the server uses for executing 
requests. You should have at least as many
-            threads as you have disks.
-        </description>
-    </property>
-    <property>
-        <name>queued.max.requests</name>
-        <value>500</value>
-        <description>
-            The number of requests that can be queued up for processing by the 
I/O threads before the network threads
-            stop reading in new requests.
-        </description>
-    </property>
-    <property>
-        <name>socket.send.buffer.bytes</name>
-        <value>102400</value>
-        <description>The SO_SNDBUFF buffer the server prefers for socket 
connections.</description>
-    </property>
-    <property>
-        <name>socket.receive.buffer.bytes</name>
-        <value>102400</value>
-        <description>The SO_RCVBUFF buffer the server prefers for socket 
connections.</description>
-    </property>
-    <property>
-        <name>socket.request.max.bytes</name>
-        <value>104857600</value>
-        <description>
-            The maximum request size the server will allow. This prevents the 
server from running out of memory and
-            should be smaller than the Java heap size.
-        </description>
-    </property>
-    <property>
-        <name>num.partitions</name>
-        <value>1</value>
-        <description>The default number of partitions per topic.</description>
-    </property>
-    <property>
-        <name>log.segment.bytes</name>
-        <value>1073741824</value>
-        <description>
-            The maximum request size the server will allow.
-            This prevents the server from running out of memory and should be 
smaller than the Java heap size.
-        </description>
-    </property>
-    <property>
-        <name>log.roll.hours</name>
-        <value>168</value>
-        <description>
-            This setting will force Kafka to roll a new log segment even if 
the log.segment.bytes size has not been
-            reached.
-        </description>
-    </property>
-    <property>
-        <name>log.retention.bytes</name>
-        <value>-1</value>
-        <description>
-            The amount of data to retain in the log for each topic-partitions. 
Note that this is the limit per-partition
-            so multiply by the number of partitions to get the total data 
retained for the topic.
-            Also note that if both log.retention.hours and log.retention.bytes 
are both set we delete a segment when
-            either limit is exceeded.
-        </description>
-    </property>
-    <property>
-        <name>log.retention.hours</name>
-        <value>168</value>
-        <description>
-            The number of hours to keep a log segment before it is deleted, 
i.e. the default data retention window for
-            all topics.
-            Note that if both log.retention.hours and log.retention.bytes are 
both set we delete a segment when either
-            limit is exceeded.
-        </description>
-    </property>
-    <property>
-        <name>log.cleanup.interval.mins</name>
-        <value>10</value>
-        <description>
-            The frequency in minutes that the log cleaner checks whether any 
log segment is eligible for deletion to
-            meet the retention policies.
-        </description>
-    </property>
-    <property>
-        <name>log.retention.check.interval.ms</name>
-        <value>600000</value>
-        <description>
-            The frequency in milliseconds that the log cleaner checks whether 
any log segment is eligible for deletion
-            to meet the retention policies.
-        </description>
-    </property>
-    <property>
-        <name>log.index.size.max.bytes</name>
-        <value>10485760</value>
-        <description>
-            The maximum size in bytes we allow for the offset index for each 
log segment.
-            Note that we will always pre-allocate a sparse file with this much 
space and shrink it down when the log
-            rolls.
-            If the index fills up we will roll a new log segment even if we 
haven't reached the log.segment.bytes limit.
-        </description>
-    </property>
-    <property>
-        <name>log.index.interval.bytes</name>
-        <value>4096</value>
-        <description>
-            The byte interval at which we add an entry to the offset index.
-            When executing a fetch request the server must do a linear scan 
for up to this many bytes to find the
-            correct position in the log to begin and end the fetch.
-            So setting this value to be larger will mean larger index files 
(and a bit more memory usage) but less
-            scanning.
-            However the server will never add more than one index entry per 
log append (even if more than
-            log.index.interval worth of messages are appended).
-            In general you probably don't need to mess with this value.
-        </description>
-    </property>
-    <property>
-        <name>auto.create.topics.enable</name>
-        <value>true</value>
-        <description>
-            Enable auto creation of topic on the server.
-            If this is set to true then attempts to produce, consume, or fetch 
metadata for a non-existent topic will
-            automatically create it with the default replication factor and 
number of partitions.
-        </description>
-    </property>
-    <property>
-        <name>controller.socket.timeout.ms</name>
-        <value>30000</value>
-        <description>
-            The socket timeout for commands from the partition management 
controller to the replicas.
-        </description>
-    </property>
-    <property>
-        <name>controller.message.queue.size</name>
-        <value>10</value>
-        <description>The buffer size for 
controller-to-broker-channels</description>
-    </property>
-    <property>
-        <name>default.replication.factor</name>
-        <value>1</value>
-        <description>The default replication factor for automatically created 
topics.</description>
-    </property>
-    <property>
-        <name>replica.lag.time.max.ms</name>
-        <value>10000</value>
-        <description>
-            If a follower hasn't sent any fetch requests for this window of 
time, the leader will remove the follower
-            from ISR (in-sync replicas) and treat it as dead.
-        </description>
-    </property>
-    <property>
-        <name>replica.lag.max.messages</name>
-        <value>4000</value>
-        <description>
-            If a replica falls more than this many messages behind the leader, 
the leader will remove the follower from
-            ISR and treat it as dead.
-        </description>
-    </property>
-    <property>
-        <name>replica.socket.timeout.ms</name>
-        <value>30000</value>
-        <description>The socket timeout for network requests to the leader for 
replicating data.</description>
-    </property>
-    <property>
-        <name>replica.socket.receive.buffer.bytes</name>
-        <value>65536</value>
-        <description>The socket receive buffer for network requests to the 
leader for replicating data.</description>
-    </property>
-    <property>
-        <name>replica.fetch.max.bytes</name>
-        <value>1048576</value>
-        <description>
-            The number of byes of messages to attempt to fetch for each 
partition in the fetch requests the replicas
-            send to the leader.
-        </description>
-    </property>
-    <property>
-        <name>replica.fetch.wait.max.ms</name>
-        <value>500</value>
-        <description>
-            The maximum amount of time to wait time for data to arrive on the 
leader in the fetch requests sent by the
-            replicas to the leader.
-        </description>
-    </property>
-    <property>
-        <name>replica.fetch.min.bytes</name>
-        <value>1</value>
-        <description>
-            Minimum bytes expected for each fetch response for the fetch 
requests from the replica to the leader.
-            If not enough bytes, wait up to replica.fetch.wait.max.ms for this 
many bytes to arrive.
-        </description>
-    </property>
-    <property>
-        <name>num.replica.fetchers</name>
-        <value>1</value>
-        <description>
-            Number of threads used to replicate messages from leaders.
-            Increasing this value can increase the degree of I/O parallelism 
in the follower broker.
-        </description>
-    </property>
-    <property>
-        <name>replica.high.watermark.checkpoint.interval.ms</name>
-        <value>5000</value>
-        <description>
-            The frequency with which each replica saves its high watermark to 
disk to handle recovery.
-        </description>
-    </property>
-    <property>
-        <name>fetch.purgatory.purge.interval.requests</name>
-        <value>10000</value>
-        <description>The purge interval (in number of requests) of the fetch 
request purgatory.</description>
-    </property>
-    <property>
-        <name>producer.purgatory.purge.interval.requests</name>
-        <value>10000</value>
-        <description>The purge interval (in number of requests) of the 
producer request purgatory.</description>
-    </property>
-    <property>
-        <name>zookeeper.session.timeout.ms</name>
-        <value>30000</value>
-        <description>
-            Zookeeper session timeout.
-            If the server fails to heartbeat to zookeeper within this period 
of time it is considered dead.
-            If you set this too low the server may be falsely considered dead; 
if you set it too high it may take too
-            long to recognize a truly dead server.
-        </description>
-    </property>
-    <property>
-        <name>zookeeper.connection.timeout.ms</name>
-        <value>25000</value>
-        <description>
-            The maximum amount of time that the client waits to establish a 
connection to zookeeper.
-        </description>
-    </property>
-    <property>
-        <name>zookeeper.sync.time.ms</name>
-        <value>2000</value>
-        <description>How far a ZK follower can be behind a ZK 
leader.</description>
-    </property>
-    <property>
-        <name>controlled.shutdown.max.retries</name>
-        <value>3</value>
-        <description>
-            Number of retries to complete the controlled shutdown successfully 
before executing an unclean shutdown.
-        </description>
-    </property>
-    <property>
-        <name>controlled.shutdown.retry.backoff.ms</name>
-        <value>5000</value>
-        <description>Backoff time between shutdown retries.</description>
-    </property>
-    <property>
-        <name>controlled.shutdown.enable</name>
-        <value>true</value>
-        <description>
-            Enable controlled shutdown of the broker.
-            If enabled, the broker will move all leaders on it to some other 
brokers before shutting itself down.
-            This reduces the unavailability window during shutdown.
-        </description>
-    </property>
-    <property>
-        <name>auto.leader.rebalance.enable</name>
-        <value>true</value>
-        <description>
-            Enables auto leader balancing.
-            A background thread checks and triggers leader balance if required 
at regular intervals.
-        </description>
-    </property>
-    <property>
-        <name>num.recovery.threads.per.data.dir</name>
-        <value>1</value>
-        <description>
-            The number of threads per data directory to be used for log 
recovery at startup and flushing at shutdown
-        </description>
-    </property>
-    <property>
-        <name>min.insync.replicas</name>
-        <value>1</value>
-        <description>
-            define the minimum number of replicas in ISR needed to satisfy a 
produce request with required.acks=-1 (or
-            all)
-        </description>
-    </property>
-    <property>
-        <name>leader.imbalance.per.broker.percentage</name>
-        <value>10</value>
-        <description>
-            The ratio of leader imbalance allowed per broker.
-            The controller would trigger a leader balance if it goes above 
this value per broker.
-            The value is specified in percentage.
-        </description>
-    </property>
-    <property>
-        <name>leader.imbalance.check.interval.seconds</name>
-        <value>300</value>
-        <description>
-            The frequency with which the partition re-balance check is 
triggered by the controller
-        </description>
-    </property>
-    <property>
-        <name>offset.metadata.max.bytes</name>
-        <value>4096</value>
-        <description>The maximum size for a metadata entry associated with an 
offset commit</description>
-    </property>
-    <property>
-        <name>offsets.load.buffer.size</name>
-        <value>5242880</value>
-        <description>
-            Batch size for reading from the offsets segments when loading 
offsets into the cache.
-        </description>
-    </property>
-    <property>
-        <name>offsets.topic.replication.factor</name>
-        <value>3</value>
-        <description>
-            The replication factor for the offsets topic (set higher to ensure 
availability).
-            To ensure that the effective replication factor of the offsets 
topic is the configured
-            value, the number of alive brokers has to be at least the 
replication factor at the time of the first
-            request for the offsets topic.
-            If not, either the offsets topic creation will fail or it will get 
a replication factor of min(alive
-            brokers, configured replication factor).
-        </description>
-    </property>
-    <property>
-        <name>offsets.topic.num.partitions</name>
-        <value>50</value>
-        <description>
-            The number of partitions for the offset commit topic (should not 
change after deployment)
-        </description>
-    </property>
-    <property>
-        <name>offsets.topic.segment.bytes</name>
-        <value>104857600</value>
-        <description>
-            The offsets topic segment bytes should be kept relatively small in 
order to facilitate faster log compaction
-            and cache loads
-        </description>
-    </property>
-    <property>
-        <name>offsets.topic.compression.codec</name>
-        <value>0</value>
-        <description>
-            Compression codec for the offsets topic - compression may be used 
to achieve \"atomic\" commits.
-            Default is NoCompression.
-            For Gzip add value 1 , SnappyCompression add value 2, 
LZ4CompressionCodec 3.
-        </description>
-    </property>
-    <property>
-        <name>offsets.retention.minutes</name>
-        <value>86400000</value>
-        <description>Log retention window in minutes for offsets 
topic</description>
-    </property>
-    <property>
-        <name>offsets.retention.check.interval.ms</name>
-        <value>600000</value>
-        <description>Frequency at which to check for stale 
offsets</description>
-    </property>
-    <property>
-        <name>offsets.commit.timeout.ms</name>
-        <value>5000</value>
-        <description>
-            Offset commit will be delayed until all replicas for the offsets 
topic receive the commit or this timeout is
-            reached. This is similar to the producer request timeout.
-        </description>
-    </property>
-    <property>
-        <name>offsets.commit.required.acks</name>
-        <value>-1</value>
-        <description>
-            The required acks before the commit can be accepted.
-            In general, the default (-1) should not be overridden
-        </description>
-    </property>
-    <property>
-        <name>delete.topic.enable</name>
-        <value>true</value>
-        <description>
-            Enables delete topic.
-            Delete topic through the admin tool will have no effect if this 
config is turned off
-        </description>
-    </property>
-    <property>
-        <name>compression.type</name>
-        <value>producer</value>
-        <description>
-            Specify the final compression type for a given topic.
-            This configuration accepts the standard compression codecs 
('gzip', 'snappy', lz4).
-            It additionally accepts 'uncompressed' which is equivalent to no 
compression; and 'producer' which means
-            retain the original compression codec set by the producer.
-        </description>
-    </property>
-    <property>
-        <name>external.kafka.metrics.exclude.prefix</name>
-        
<value>kafka.network.RequestMetrics,kafka.server.DelayedOperationPurgatory,kafka.server.BrokerTopicMetrics.BytesRejectedPerSec</value>
-        <description>Exclude metrics starting with these prefixes from being 
collected.</description>
-    </property>
-    <property>
-        <name>external.kafka.metrics.include.prefix</name>
-        
<value>kafka.network.RequestMetrics.ResponseQueueTimeMs.request.OffsetCommit.98percentile,kafka.network.RequestMetrics.ResponseQueueTimeMs.request.Offsets.95percentile,kafka.network.RequestMetrics.ResponseSendTimeMs.request.Fetch.95percentile,kafka.network.RequestMetrics.RequestsPerSec.request</value>
-        <description>
-            These metrics would be included even if the exclude prefix omits 
them.
-        </description>
-    </property>
-    <property>
-        <name>sasl.enabled.mechanisms</name>
-        <value>GSSAPI</value>
-        <description>
-            The list of SASL mechanisms enabled in the Kafka server.
-            The list may contain any mechanism for which a security provider 
is available.
-            Only GSSAPI is enabled by default.
-        </description>
-    </property>
-    <property>
-        <name>security.inter.broker.protocol</name>
-        <value>PLAINTEXT</value>
-        <description>
-            Security protocol used to communicate between brokers.
-            Valid values are: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL.
-            It is an error to set this and inter.broker.listener.name 
properties at the same time.
-        </description>
-    </property>
-    <property>
-        <name>sasl.mechanism.inter.broker.protocol</name>
-        <value>GSSAPI</value>
-        <description>SASL mechanism used for inter-broker communication. 
Default is GSSAPI.</description>
-    </property>
-    <property>
-        <name>ssl.client.auth</name>
-        <value>none</value>
-        <description>Configures kafka broker to request client 
authentication.</description>
-    </property>
-    <property>
-        <name>ssl.key.password</name>
-        <value/>
-        <description>The password of private key in the key store 
file.</description>
-    </property>
-    <property>
-        <name>ssl.keystore.location</name>
-        <value/>
-        <description>The location of key store file.</description>
-    </property>
-    <property>
-        <name>ssl.keystore.password</name>
-        <value/>
-        <description>The store password for key store file.</description>
-    </property>
-    <property>
-        <name>ssl.truststore.location</name>
-        <value/>
-        <description>The location of trust store file.</description>
-    </property>
-    <property>
-        <name>ssl.truststore.password</name>
-        <value/>
-        <description>
-            The password for trust store file.
-            If a password is not set access to the truststore is still 
available, but integrity checking is disabled
-        </description>
-    </property>
-    <property>
-        <name>producer.metrics.enable</name>
-        <value>false</value>
-    </property>
-</configuration>
\ No newline at end of file
diff --git 
a/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/kafka/configuration/kafka-env.xml
 
b/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/kafka/configuration/kafka-env.xml
deleted file mode 100644
index 794129d..0000000
--- 
a/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/kafka/configuration/kafka-env.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~   http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied.  See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
--->
-
-<configuration>
-    <property>
-        <name>logDir</name>
-        <display-name>Kafka Log directory</display-name>
-        <value>/var/log/kafka</value>
-        <description/>
-    </property>
-    <property>
-        <name>pidDir</name>
-        <value>/var/run/kafka</value>
-        <display-name>Kafka PID dir</display-name>
-        <description/>
-    </property>
-    <property>
-        <name>kafkaUserNofileLimit</name>
-        <value>128000</value>
-        <description>Max open files limit setting for KAFKA user.</description>
-    </property>
-    <property>
-        <name>kafkaUserNprocLimit</name>
-        <value>65536</value>
-        <description>Max number of processes limit setting for KAFKA 
user.</description>
-    </property>
-
-    <property>
-        <name>content</name>
-        <display-name>kafka-env template</display-name>
-        <description>This is the freemarker template for kafka-env.sh 
file</description>
-        <value><![CDATA[
-#!/bin/bash
-
-# Set KAFKA specific environment variables here.
-
-# The java implementation to use.
-export JAVA_HOME=${JAVA_HOME!}
-export PATH=$PATH:$JAVA_HOME/bin
-export PID_DIR=${PID_DIR!}
-export LOG_DIR=${LOG_DIR!}
-<#if securityEnabled >
-export KAFKA_OPTS="-Djavax.security.auth.useSubjectCredsOnly=false 
{{kafka_kerberos_params}}"
-<#else>
-export KAFKA_OPTS={{kafka_kerberos_params}}
-</#if>
-export CLASSPATH=$CLASSPATH:${CONF_DIR}
-]]>
-        </value>
-        <attrs>
-            <type>longtext</type>
-        </attrs>
-    </property>
-</configuration>
\ No newline at end of file
diff --git 
a/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/kafka/configuration/kafka-log4j.xml
 
b/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/kafka/configuration/kafka-log4j.xml
deleted file mode 100644
index f6f76a0..0000000
--- 
a/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/kafka/configuration/kafka-log4j.xml
+++ /dev/null
@@ -1,143 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  ~ 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.
--->
-
-<configuration>
-    <property>
-        <name>kafkaLogMaxFileSize</name>
-        <value>256</value>
-        <description>The maximum size of backup file before the log is 
rotated</description>
-        <display-name>Kafka Log: backup file size</display-name>
-    </property>
-    <property>
-        <name>kafkaLogMaxBackupIndex</name>
-        <value>20</value>
-        <description>The number of backup files</description>
-        <display-name>Kafka Log: # of backup files</display-name>
-    </property>
-    <property>
-        <name>controllerLogMaxFileSize</name>
-        <value>256</value>
-        <description>The maximum size of backup file before the log is 
rotated</description>
-        <display-name>Kafka Controller Log: backup file size</display-name>
-    </property>
-    <property>
-        <name>controllerLogMaxBackupIndex</name>
-        <value>20</value>
-        <description>The number of backup files</description>
-        <display-name>Kafka Controller Log: # of backup files</display-name>
-    </property>
-    <property>
-        <name>content</name>
-        <display-name>kafka-log4j template</display-name>
-        <description>Custom log4j.properties</description>
-        <value><![CDATA[
-#
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-#
-#
-kafka.logs.dir=logs
-
-log4j.rootLogger=INFO, stdout
-
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=[%d{ISO8601}] %p %m (%c)%n
-
-log4j.appender.kafkaAppender=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.kafkaAppender.DatePattern='.'yyyy-MM-dd-HH
-<#noparse>log4j.appender.kafkaAppender.File=${kafka.logs.dir}/server.log</#noparse>
-log4j.appender.kafkaAppender.layout=org.apache.log4j.PatternLayout
-log4j.appender.kafkaAppender.layout.ConversionPattern=[%d{ISO8601}] %p %m 
(%c)%n
-log4j.appender.kafkaAppender.MaxFileSize = ${kafkaLogMaxFileSize}MB
-log4j.appender.kafkaAppender.MaxBackupIndex = ${kafkaLogMaxBackupIndex}
-
-log4j.appender.stateChangeAppender=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.stateChangeAppender.DatePattern='.'yyyy-MM-dd-HH
-<#noparse>log4j.appender.stateChangeAppender.File=${kafka.logs.dir}/state-change.log</#noparse>
-log4j.appender.stateChangeAppender.layout=org.apache.log4j.PatternLayout
-log4j.appender.stateChangeAppender.layout.ConversionPattern=[%d{ISO8601}] %p 
%m (%c)%n
-
-log4j.appender.requestAppender=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.requestAppender.DatePattern='.'yyyy-MM-dd-HH
-<#noparse>log4j.appender.requestAppender.File=${kafka.logs.dir}/kafka-request.log</#noparse>
-log4j.appender.requestAppender.layout=org.apache.log4j.PatternLayout
-log4j.appender.requestAppender.layout.ConversionPattern=[%d{ISO8601}] %p %m 
(%c)%n
-
-log4j.appender.cleanerAppender=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.cleanerAppender.DatePattern='.'yyyy-MM-dd-HH
-<#noparse>log4j.appender.cleanerAppender.File=${kafka.logs.dir}/log-cleaner.log</#noparse>
-log4j.appender.cleanerAppender.layout=org.apache.log4j.PatternLayout
-log4j.appender.cleanerAppender.layout.ConversionPattern=[%d{ISO8601}] %p %m 
(%c)%n
-
-log4j.appender.controllerAppender=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.controllerAppender.DatePattern='.'yyyy-MM-dd-HH
-<#noparse>log4j.appender.controllerAppender.File=${kafka.logs.dir}/controller.log</#noparse>
-log4j.appender.controllerAppender.layout=org.apache.log4j.PatternLayout
-log4j.appender.controllerAppender.layout.ConversionPattern=[%d{ISO8601}] %p %m 
(%c)%n
-log4j.appender.controllerAppender.MaxFileSize = ${controllerLogMaxFileSize}MB
-log4j.appender.controllerAppender.MaxBackupIndex = 
${controllerLogMaxBackupIndex}
-# Turn on all our debugging info
-#log4j.logger.kafka.producer.async.DefaultEventHandler=DEBUG, kafkaAppender
-#log4j.logger.kafka.client.ClientUtils=DEBUG, kafkaAppender
-#log4j.logger.kafka.perf=DEBUG, kafkaAppender
-<#noparse>#log4j.logger.kafka.perf.ProducerPerformance$ProducerThread=DEBUG, 
kafkaAppender</#noparse>
-#log4j.logger.org.I0Itec.zkclient.ZkClient=DEBUG
-log4j.logger.kafka=INFO, kafkaAppender
-<#noparse>log4j.logger.kafka.network.RequestChannel$=WARN, 
requestAppender</#noparse>
-<#noparse>log4j.additivity.kafka.network.RequestChannel$=false</#noparse>
-
-#log4j.logger.kafka.network.Processor=TRACE, requestAppender
-#log4j.logger.kafka.server.KafkaApis=TRACE, requestAppender
-#log4j.additivity.kafka.server.KafkaApis=false
-log4j.logger.kafka.request.logger=WARN, requestAppender
-log4j.additivity.kafka.request.logger=false
-
-log4j.logger.kafka.controller=TRACE, controllerAppender
-log4j.additivity.kafka.controller=false
-
-log4j.logger.kafka.log.LogCleaner=INFO, cleanerAppender
-log4j.additivity.kafka.log.LogCleaner=false
-
-log4j.logger.state.change.logger=TRACE, stateChangeAppender
-log4j.additivity.state.change.logger=false
-]]>
-        </value>
-        <attrs>
-            <type>longtext</type>
-        </attrs>
-    </property>
-</configuration>
\ No newline at end of file
diff --git 
a/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/kafka/configuration/kafka.conf.xml
 
b/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/kafka/configuration/kafka.conf.xml
deleted file mode 100644
index 3b9a151..0000000
--- 
a/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/kafka/configuration/kafka.conf.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~   http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied.  See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
--->
-
-<configuration>
-    <property>
-        <name>content</name>
-        <display-name>kafka.conf template</display-name>
-        <description>This is the freemarker template for kafka-env.sh 
file</description>
-        <value><![CDATA[
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-${kafkaUser}    - nofile   ${kafkaUserNofileLimit}
-${kafkaGroup}   - nproc    ${kafkaUserNprocLimit}
-]]>
-        </value>
-        <attrs>
-            <type>longtext</type>
-        </attrs>
-    </property>
-</configuration>
\ No newline at end of file
diff --git 
a/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/kafka/metainfo.xml
 
b/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/kafka/metainfo.xml
deleted file mode 100644
index c2c8df6..0000000
--- 
a/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/kafka/metainfo.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  ~ 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.
--->
-
-<metainfo>
-    <service>
-        <name>kafka</name>
-        <display-name>Kafka</display-name>
-        <desc>
-            Apache Kafka is an open-source distributed event streaming 
platform used by thousands of companies for
-            high-performance data pipelines, streaming analytics, data 
integration, and mission-critical
-            applications.
-        </desc>
-        <version>2.8.2</version>
-        <user>kafka</user>
-
-        <components>
-            <component>
-                <name>kafka_broker</name>
-                <display-name>Kafka Broker</display-name>
-                <category>master</category>
-                <cardinality>1+</cardinality>
-                <command-script>
-                    
<script-id>org.apache.bigtop.manager.stack.nop.v1_0_0.kafka.KafkaBrokerScript</script-id>
-                    <script-type>java</script-type>
-                    <timeout>1200</timeout>
-                </command-script>
-                <custom-commands>
-                    <custom-command>
-                        <name>test</name>
-                        <command-script>
-                            
<script-id>org.apache.bigtop.manager.stack.nop.v1_0_0.kafka.KafkaBrokerScript</script-id>
-                            <script-type>java</script-type>
-                            <timeout>600</timeout>
-                        </command-script>
-                    </custom-command>
-                </custom-commands>
-            </component>
-        </components>
-
-        <os-specifics>
-            <os-specific>
-                <operating-systems>
-                    <os>centos7</os>
-                    <os>rocky8</os>
-                </operating-systems>
-                <architectures>
-                    <arch>x86_64</arch>
-                </architectures>
-                <packages>
-                    <package>kafka_1_0_0</package>
-                </packages>
-            </os-specific>
-        </os-specifics>
-
-    </service>
-</metainfo>
diff --git 
a/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/kafka/order.json
 
b/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/kafka/order.json
deleted file mode 100644
index 78adc63..0000000
--- 
a/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/kafka/order.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-  "KAFKA_BROKER-INSTALL": [
-    "ZOOKEEPER_SERVER-INSTALL"
-  ],
-  "KAFKA_BROKER-START": [
-    "ZOOKEEPER_SERVER-START"
-  ],
-  "KAFKA_BROKER-RESTART": [
-    "ZOOKEEPER_SERVER-RESTART"
-  ],
-  "ZOOKEEPER_SERVER-STOP": [
-    "KAFKA_BROKER-STOP"
-  ]
-}
\ No newline at end of file
diff --git 
a/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/zookeeper/configuration/zoo.cfg.xml
 
b/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/zookeeper/configuration/zoo.cfg.xml
deleted file mode 100644
index 2613910..0000000
--- 
a/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/zookeeper/configuration/zoo.cfg.xml
+++ /dev/null
@@ -1,128 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~   http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied.  See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
--->
-
-<configuration>
-    <property>
-        <name>tickTime</name>
-        <value>3000</value>
-        <display-name>Length of single Tick</display-name>
-        <description>
-            The length of a single tick in milliseconds, which is the basic 
time unit used by ZooKeeper
-        </description>
-    </property>
-    <property>
-        <name>initLimit</name>
-        <value>10</value>
-        <display-name>Ticks to allow for sync at Init</display-name>
-        <description>Ticks to allow for sync at Init.</description>
-    </property>
-    <property>
-        <name>syncLimit</name>
-        <value>5</value>
-        <display-name>Ticks to allow for sync at Runtime</display-name>
-        <description>Ticks to allow for sync at Runtime.</description>
-    </property>
-    <property>
-        <name>clientPort</name>
-        <value>2181</value>
-        <display-name>Port for running ZK Server</display-name>
-        <description>Port for running ZK Server.</description>
-    </property>
-    <property>
-        <name>dataDir</name>
-        <value>/hadoop/zookeeper</value>
-        <display-name>ZooKeeper directory</display-name>
-        <description>Data directory for ZooKeeper.</description>
-    </property>
-    <property>
-        <name>autopurge.snapRetainCount</name>
-        <value>30</value>
-        <description>
-            ZooKeeper purge feature retains the autopurge.
-            snapRetainCount most recent snapshots and the corresponding 
transaction logs in the dataDir and dataLogDir
-            respectively and deletes the rest.
-        </description>
-    </property>
-    <property>
-        <name>autopurge.purgeInterval</name>
-        <value>24</value>
-        <description>
-            The time interval in hours for which the purge task has to be 
triggered.
-            Set to a positive integer (1 and above) to enable the auto purging.
-        </description>
-    </property>
-    <property>
-        <name>4lw.commands.whitelist</name>
-        <value>ruok</value>
-        <description>
-            A list of comma separated Four Letter Words commands that user 
wants to use.
-            A valid Four Letter Words command must be put in this list else 
ZooKeeper server will not enable the
-            command.
-            By default the whitelist only contains "srvr" command which 
zkServer.sh uses.
-            The rest of four letter word commands are disabled by default.
-        </description>
-    </property>
-    <property>
-        <name>admin.enableServer</name>
-        <value>true</value>
-        <description>Set to "false" to disable the AdminServer. By default the 
AdminServer is enabled.</description>
-    </property>
-    <property>
-        <name>admin.serverPort</name>
-        <value>9393</value>
-        <description>The port the embedded Jetty server listens on. Defaults 
to 8080.</description>
-    </property>
-    <property>
-        <name>templateContent</name>
-        <description>The port the embedded Jetty server listens on. Defaults 
to 8080.</description>
-        <value><![CDATA[
-<#compress>
-<#list model as key,value>
-    <#if value??>
-        <#if value?string == 'true'>
-            ${key}=true
-        <#elseif value?string == 'false'>
-            ${key}=false
-        <#else>
-            ${key}=${value}
-        </#if>
-    </#if>
-</#list>
-</#compress>
-
-<#noparse>
-<#if zkServerStr?? >
-${zkServerStr}
-</#if>
-
-<#if securityEnabled?? && securityEnabled >
-authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
-jaasLoginRenew=3600000
-kerberos.removeHostFromPrincipal=true
-kerberos.removeRealmFromPrincipal=true
-</#if>
-</#noparse>
-]]>
-        </value>
-        <attrs>
-            <type>longtext</type>
-        </attrs>
-    </property>
-</configuration>
diff --git 
a/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/zookeeper/configuration/zookeeper-env.xml
 
b/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/zookeeper/configuration/zookeeper-env.xml
deleted file mode 100644
index b5d1209..0000000
--- 
a/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/zookeeper/configuration/zookeeper-env.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~   http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied.  See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
--->
-
-<configuration>
-    <property>
-        <name>logDir</name>
-        <value>/var/log/zookeeper</value>
-        <display-name>ZooKeeper Log Dir</display-name>
-        <description>ZooKeeper Log Dir</description>
-    </property>
-    <property>
-        <name>pidDir</name>
-        <value>/var/run/zookeeper</value>
-        <display-name>ZooKeeper PID Dir</display-name>
-        <description>ZooKeeper Pid Dir</description>
-    </property>
-    <!-- zookeeper-env.sh -->
-    <property>
-        <name>content</name>
-        <display-name>zookeeper-env template</display-name>
-        <description>This is the freemarker template for zookeeper-env.sh 
file</description>
-        <value><![CDATA[
-export JAVA_HOME=${JAVA_HOME!}
-export ZOOKEEPER_HOME=${ZOOKEEPER_HOME!}
-export ZOO_LOG_DIR=${ZOO_LOG_DIR!}
-export ZOOPIDFILE=${ZOOPIDFILE!}
-export SERVER_JVMFLAGS=${SERVER_JVMFLAGS!}
-export JAVA=$JAVA_HOME/bin/java
-export CLASSPATH=$CLASSPATH:/usr/share/zookeeper/*
-
-<#if securityEnabled?? && securityEnabled >
-export SERVER_JVMFLAGS="$SERVER_JVMFLAGS 
-Djava.security.auth.login.config=${zk_server_jaas_file!}"
-export CLIENT_JVMFLAGS="$CLIENT_JVMFLAGS 
-Djava.security.auth.login.config=${zk_client_jaas_file!} 
-Dzookeeper.sasl.client.username=${zk_principal_user!}"
-</#if>
-]]>
-        </value>
-        <attrs>
-            <type>longtext</type>
-        </attrs>
-    </property>
-</configuration>
diff --git 
a/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/zookeeper/metainfo.xml
 
b/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/zookeeper/metainfo.xml
deleted file mode 100644
index 0151b68..0000000
--- 
a/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/zookeeper/metainfo.xml
+++ /dev/null
@@ -1,79 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  ~ 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.
--->
-
-<metainfo>
-    <service>
-        <name>zookeeper</name>
-        <display-name>ZooKeeper</display-name>
-        <desc>
-            Apache ZooKeeper is an effort to develop and maintain an 
open-source server which enables highly
-            reliable distributed coordination.
-        </desc>
-        <version>3.6.4</version>
-        <user>zookeeper</user>
-
-        <components>
-            <component>
-                <name>zookeeper_server</name>
-                <display-name>ZooKeeper Server</display-name>
-                <category>master</category>
-                <cardinality>1+</cardinality>
-                <command-script>
-                    
<script-id>org.apache.bigtop.manager.stack.nop.v1_0_0.zookeeper.ZookeeperServerScript</script-id>
-                    <script-type>java</script-type>
-                    <timeout>1200</timeout>
-                </command-script>
-                <quick-link>
-                    <display-name>ZooKeeper UI(Test)</display-name>
-                    <http-port-property>admin.serverPort</http-port-property>
-                    <http-port-default>9393</http-port-default>
-                    <https-port-property>admin.serverPort</https-port-property>
-                    <https-port-default>9393</https-port-default>
-                </quick-link>
-            </component>
-
-            <component>
-                <name>zookeeper_client</name>
-                <display-name>ZooKeeper Client</display-name>
-                <category>client</category>
-                <cardinality>1+</cardinality>
-                <command-script>
-                    
<script-id>org.apache.bigtop.manager.stack.nop.v1_0_0.zookeeper.ZookeeperClientScript</script-id>
-                    <script-type>java</script-type>
-                </command-script>
-            </component>
-        </components>
-
-        <os-specifics>
-            <os-specific>
-                <operating-systems>
-                    <os>centos7</os>
-                    <os>rocky8</os>
-                </operating-systems>
-                <architectures>
-                    <arch>x86_64</arch>
-                </architectures>
-                <packages>
-                    <package>zookeeper_1_0_0</package>
-                </packages>
-            </os-specific>
-        </os-specifics>
-    </service>
-</metainfo>
\ No newline at end of file
diff --git 
a/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/zookeeper/order.json
 
b/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/zookeeper/order.json
deleted file mode 100644
index a0d75ea..0000000
--- 
a/bigtop-manager-server/src/main/resources/stacks/nop/1.0.0/services/zookeeper/order.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  "KAFKA_BROKER-INSTALL": [
-    "ZOOKEEPER_SERVER-INSTALL"
-  ]
-}
\ No newline at end of file
diff --git 
a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/executor/StackExecutor.java
 
b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/executor/StackExecutor.java
index af23aee..7ef3a42 100644
--- 
a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/executor/StackExecutor.java
+++ 
b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/executor/StackExecutor.java
@@ -69,10 +69,6 @@ public class StackExecutor {
     }
 
     private static void runBeforeHook(String command, Params params) {
-        if (Environments.isDevMode()) {
-            return;
-        }
-
         Hook hook = HOOK_MAP.get(command.toLowerCase());
         if (hook != null) {
             hook.before(params);
@@ -80,10 +76,6 @@ public class StackExecutor {
     }
 
     private static void runAfterHook(String command, Params params) {
-        if (Environments.isDevMode()) {
-            return;
-        }
-
         Hook hook = HOOK_MAP.get(command.toLowerCase());
         if (hook != null) {
             hook.after(params);
@@ -111,17 +103,22 @@ public class StackExecutor {
             Params params = (Params)
                     
paramsClass.getDeclaredConstructor(CommandPayload.class).newInstance(commandPayload);
 
-            runBeforeHook(command, params);
+            if (Environments.isDevMode()) {
+                log.info("Executing {}::{} on dev mode", script.getName(), 
method.getName());
+                return ShellResult.success();
+            } else {
+                runBeforeHook(command, params);
 
-            log.info("Executing {}::{}", script.getName(), method.getName());
-            ShellResult result = (ShellResult) method.invoke(script, params);
-            if (result.getExitCode() != MessageConstants.SUCCESS_CODE) {
-                log.error("Error executing script: {}", result.getErrMsg());
-            }
+                log.info("Executing {}::{}", script.getName(), 
method.getName());
+                ShellResult result = (ShellResult) method.invoke(script, 
params);
+                if (result.getExitCode() != MessageConstants.SUCCESS_CODE) {
+                    log.error("Error executing script: {}", 
result.getErrMsg());
+                }
 
-            runAfterHook(command, params);
+                runAfterHook(command, params);
 
-            return result;
+                return result;
+            }
         } catch (Exception e) {
             log.error("Error executing command, payload: {}", commandPayload, 
e);
             return ShellResult.fail();
diff --git a/bigtop-manager-stack/bigtop-manager-stack-nop/pom.xml 
b/bigtop-manager-stack/bigtop-manager-stack-nop/pom.xml
deleted file mode 100644
index ad17fca..0000000
--- a/bigtop-manager-stack/bigtop-manager-stack-nop/pom.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.bigtop</groupId>
-        <artifactId>bigtop-manager-stack</artifactId>
-        <version>${revision}</version>
-    </parent>
-
-    <artifactId>bigtop-manager-stack-nop</artifactId>
-    <name>${project.artifactId}</name>
-    <description>Bigtop Manager Stack NOP</description>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.bigtop</groupId>
-            <artifactId>bigtop-manager-stack-core</artifactId>
-        </dependency>
-    </dependencies>
-
-</project>
diff --git 
a/bigtop-manager-stack/bigtop-manager-stack-nop/src/main/java/org/apache/bigtop/manager/stack/nop/v1_0_0/kafka/KafkaBrokerScript.java
 
b/bigtop-manager-stack/bigtop-manager-stack-nop/src/main/java/org/apache/bigtop/manager/stack/nop/v1_0_0/kafka/KafkaBrokerScript.java
deleted file mode 100644
index d13f756..0000000
--- 
a/bigtop-manager-stack/bigtop-manager-stack-nop/src/main/java/org/apache/bigtop/manager/stack/nop/v1_0_0/kafka/KafkaBrokerScript.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * 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.stack.nop.v1_0_0.kafka;
-
-import org.apache.bigtop.manager.common.shell.ShellResult;
-import org.apache.bigtop.manager.stack.core.param.Params;
-import org.apache.bigtop.manager.stack.core.spi.script.AbstractServerScript;
-import org.apache.bigtop.manager.stack.core.spi.script.Script;
-
-import com.google.auto.service.AutoService;
-import lombok.extern.slf4j.Slf4j;
-
-@Slf4j
-@AutoService(Script.class)
-public class KafkaBrokerScript extends AbstractServerScript {
-
-    @Override
-    public ShellResult install(Params params) {
-        log.info("Default to success on dev mode");
-        return ShellResult.success();
-    }
-
-    @Override
-    public ShellResult configure(Params params) {
-        log.info("Default to success on dev mode");
-        return ShellResult.success();
-    }
-
-    @Override
-    public ShellResult start(Params params) {
-        log.info("Default to success on dev mode");
-        return ShellResult.success();
-    }
-
-    @Override
-    public ShellResult stop(Params params) {
-        log.info("Default to success on dev mode");
-        return ShellResult.success();
-    }
-
-    @Override
-    public ShellResult status(Params params) {
-        log.info("Default to success on dev mode");
-        return ShellResult.success();
-    }
-
-    public ShellResult test(Params params) {
-        log.info("Default to success on dev mode");
-        return ShellResult.success();
-    }
-}
diff --git 
a/bigtop-manager-stack/bigtop-manager-stack-nop/src/main/java/org/apache/bigtop/manager/stack/nop/v1_0_0/kafka/KafkaParams.java
 
b/bigtop-manager-stack/bigtop-manager-stack-nop/src/main/java/org/apache/bigtop/manager/stack/nop/v1_0_0/kafka/KafkaParams.java
deleted file mode 100644
index b2494f6..0000000
--- 
a/bigtop-manager-stack/bigtop-manager-stack-nop/src/main/java/org/apache/bigtop/manager/stack/nop/v1_0_0/kafka/KafkaParams.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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.stack.nop.v1_0_0.kafka;
-
-import org.apache.bigtop.manager.common.message.entity.payload.CommandPayload;
-import org.apache.bigtop.manager.stack.core.param.BaseParams;
-
-import lombok.Getter;
-
-@Getter
-public class KafkaParams extends BaseParams {
-
-    public KafkaParams(CommandPayload commandPayload) {
-        super(commandPayload);
-    }
-}
diff --git 
a/bigtop-manager-stack/bigtop-manager-stack-nop/src/main/java/org/apache/bigtop/manager/stack/nop/v1_0_0/zookeeper/ZookeeperClientScript.java
 
b/bigtop-manager-stack/bigtop-manager-stack-nop/src/main/java/org/apache/bigtop/manager/stack/nop/v1_0_0/zookeeper/ZookeeperClientScript.java
deleted file mode 100644
index 3244afc..0000000
--- 
a/bigtop-manager-stack/bigtop-manager-stack-nop/src/main/java/org/apache/bigtop/manager/stack/nop/v1_0_0/zookeeper/ZookeeperClientScript.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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.stack.nop.v1_0_0.zookeeper;
-
-import org.apache.bigtop.manager.common.shell.ShellResult;
-import org.apache.bigtop.manager.stack.core.param.Params;
-import org.apache.bigtop.manager.stack.core.spi.script.AbstractClientScript;
-import org.apache.bigtop.manager.stack.core.spi.script.Script;
-
-import com.google.auto.service.AutoService;
-import lombok.extern.slf4j.Slf4j;
-
-@Slf4j
-@AutoService(Script.class)
-public class ZookeeperClientScript extends AbstractClientScript {
-
-    @Override
-    public ShellResult install(Params params) {
-        log.info("Default to success on dev mode");
-        return ShellResult.success();
-    }
-
-    @Override
-    public ShellResult configure(Params params) {
-        log.info("Default to success on dev mode");
-        return ShellResult.success();
-    }
-}
diff --git 
a/bigtop-manager-stack/bigtop-manager-stack-nop/src/main/java/org/apache/bigtop/manager/stack/nop/v1_0_0/zookeeper/ZookeeperParams.java
 
b/bigtop-manager-stack/bigtop-manager-stack-nop/src/main/java/org/apache/bigtop/manager/stack/nop/v1_0_0/zookeeper/ZookeeperParams.java
deleted file mode 100644
index 7668768..0000000
--- 
a/bigtop-manager-stack/bigtop-manager-stack-nop/src/main/java/org/apache/bigtop/manager/stack/nop/v1_0_0/zookeeper/ZookeeperParams.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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.stack.nop.v1_0_0.zookeeper;
-
-import org.apache.bigtop.manager.common.message.entity.payload.CommandPayload;
-import org.apache.bigtop.manager.stack.core.param.BaseParams;
-
-import lombok.Getter;
-
-@Getter
-public class ZookeeperParams extends BaseParams {
-
-    public ZookeeperParams(CommandPayload commandPayload) {
-        super(commandPayload);
-    }
-}
diff --git 
a/bigtop-manager-stack/bigtop-manager-stack-nop/src/main/java/org/apache/bigtop/manager/stack/nop/v1_0_0/zookeeper/ZookeeperServerScript.java
 
b/bigtop-manager-stack/bigtop-manager-stack-nop/src/main/java/org/apache/bigtop/manager/stack/nop/v1_0_0/zookeeper/ZookeeperServerScript.java
deleted file mode 100644
index 9da8e2c..0000000
--- 
a/bigtop-manager-stack/bigtop-manager-stack-nop/src/main/java/org/apache/bigtop/manager/stack/nop/v1_0_0/zookeeper/ZookeeperServerScript.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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.stack.nop.v1_0_0.zookeeper;
-
-import org.apache.bigtop.manager.common.shell.ShellResult;
-import org.apache.bigtop.manager.stack.core.param.Params;
-import org.apache.bigtop.manager.stack.core.spi.script.AbstractServerScript;
-import org.apache.bigtop.manager.stack.core.spi.script.Script;
-
-import com.google.auto.service.AutoService;
-import lombok.extern.slf4j.Slf4j;
-
-@Slf4j
-@AutoService(Script.class)
-public class ZookeeperServerScript extends AbstractServerScript {
-
-    @Override
-    public ShellResult install(Params params) {
-        log.info("Default to success on dev mode");
-        return ShellResult.success();
-    }
-
-    @Override
-    public ShellResult configure(Params params) {
-        log.info("Default to success on dev mode");
-        return ShellResult.success();
-    }
-
-    @Override
-    public ShellResult start(Params params) {
-        log.info("Default to success on dev mode");
-        return ShellResult.success();
-    }
-
-    @Override
-    public ShellResult stop(Params params) {
-        log.info("Default to success on dev mode");
-        return ShellResult.success();
-    }
-
-    @Override
-    public ShellResult status(Params params) {
-        log.info("Default to success on dev mode");
-        return ShellResult.success();
-    }
-}
diff --git a/bigtop-manager-stack/pom.xml b/bigtop-manager-stack/pom.xml
index bc75923..265065f 100644
--- a/bigtop-manager-stack/pom.xml
+++ b/bigtop-manager-stack/pom.xml
@@ -35,7 +35,6 @@
     <modules>
         <module>bigtop-manager-stack-core</module>
         <module>bigtop-manager-stack-bigtop</module>
-        <module>bigtop-manager-stack-nop</module>
     </modules>
 
     <properties>
diff --git a/pom.xml b/pom.xml
index 173c2ef..94fbcd8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -105,12 +105,6 @@
                 <version>${project.version}</version>
             </dependency>
 
-            <dependency>
-                <groupId>org.apache.bigtop</groupId>
-                <artifactId>bigtop-manager-stack-nop</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-
             <dependency>
                 <groupId>org.apache.bigtop</groupId>
                 <artifactId>bigtop-manager-ui</artifactId>

Reply via email to