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 b041addb BIGTOP-4488: Add required attribute for config property (#258)
b041addb is described below
commit b041addb6db65f1d4ef2966d54ae7e0b04582856
Author: Zhiguo Wu <[email protected]>
AuthorDate: Tue Aug 26 12:01:38 2025 +0800
BIGTOP-4488: Add required attribute for config property (#258)
---
.../ServerEventsListener.java} | 20 +++++++-----
.../manager/server/mcp/tool/StackMcpTool.java | 3 --
.../bigtop/manager/server/model/dto/AttrsDTO.java | 2 ++
.../bigtop/manager/server/model/req/AttrsReq.java | 2 ++
.../bigtop/manager/server/model/vo/AttrsVO.java | 2 ++
.../manager/server/stack/model/AttrsModel.java | 2 ++
.../manager/server/utils/StackConfigUtils.java | 1 +
.../bigtop/manager/server/utils/StackUtils.java | 12 ++++---
.../services/zookeeper/configuration/zoo.cfg.xml | 3 ++
.../command/stage/AbstractComponentStageTest.java | 37 +++++++++++-----------
.../command/stage/ComponentAddStageTest.java | 23 +++++++++++---
.../command/stage/ComponentCheckStageTest.java | 23 +++++++++++---
.../command/stage/ComponentConfigureStageTest.java | 23 +++++++++++---
.../command/stage/ComponentInitStageTest.java | 23 +++++++++++---
.../command/stage/ComponentPrepareStageTest.java | 23 +++++++++++---
.../command/stage/ComponentStartStageTest.java | 23 +++++++++++---
.../command/stage/ComponentStopStageTest.java | 23 +++++++++++---
.../manager/stack/infra/param/InfraParams.java | 30 ------------------
18 files changed, 176 insertions(+), 99 deletions(-)
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/model/AttrsModel.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/config/ServerEventsListener.java
similarity index 61%
copy from
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/model/AttrsModel.java
copy to
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/config/ServerEventsListener.java
index e765bde9..b12dc37e 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/model/AttrsModel.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/config/ServerEventsListener.java
@@ -16,16 +16,20 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.bigtop.manager.server.stack.model;
+package org.apache.bigtop.manager.server.config;
-import lombok.Data;
+import org.apache.bigtop.manager.server.utils.StackUtils;
-import jakarta.xml.bind.annotation.XmlAccessType;
-import jakarta.xml.bind.annotation.XmlAccessorType;
+import org.springframework.boot.context.event.ApplicationStartedEvent;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.event.EventListener;
-@Data
-@XmlAccessorType(XmlAccessType.FIELD)
-public class AttrsModel {
+@Configuration
+public class ServerEventsListener {
- private String type;
+ @EventListener(ApplicationStartedEvent.class)
+ public void onApplicationReadyEvent() {
+ // Init stacks
+ StackUtils.parseStack();
+ }
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/mcp/tool/StackMcpTool.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/mcp/tool/StackMcpTool.java
index 229d6b78..f27bf40b 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/mcp/tool/StackMcpTool.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/mcp/tool/StackMcpTool.java
@@ -46,9 +46,6 @@ public class StackMcpTool implements McpTool {
for (Map.Entry<StackDTO, List<ServiceDTO>> entry :
StackUtils.STACK_SERVICE_MAP.entrySet()) {
StackDTO stackDTO = entry.getKey();
List<ServiceDTO> serviceDTOList = entry.getValue();
- for (ServiceDTO serviceDTO : serviceDTOList) {
-
serviceDTO.setConfigs(StackUtils.SERVICE_CONFIG_MAP.get(serviceDTO.getName()));
- }
StackVO stackVO = StackConverter.INSTANCE.fromDTO2VO(stackDTO);
stackVO.setServices(ServiceConverter.INSTANCE.fromDTO2VO(serviceDTOList));
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/AttrsDTO.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/AttrsDTO.java
index 422846b0..b3552e78 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/AttrsDTO.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/AttrsDTO.java
@@ -25,5 +25,7 @@ import java.io.Serializable;
@Data
public class AttrsDTO implements Serializable {
+ private Boolean required;
+
private String type;
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/AttrsReq.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/AttrsReq.java
index 71e26bc9..3f34aa61 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/AttrsReq.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/AttrsReq.java
@@ -23,5 +23,7 @@ import lombok.Data;
@Data
public class AttrsReq {
+ private Boolean required;
+
private String type;
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/AttrsVO.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/AttrsVO.java
index ec52426d..9738c0f2 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/AttrsVO.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/AttrsVO.java
@@ -23,5 +23,7 @@ import lombok.Data;
@Data
public class AttrsVO {
+ private Boolean required;
+
private String type;
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/model/AttrsModel.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/model/AttrsModel.java
index e765bde9..8222c2c4 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/model/AttrsModel.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/model/AttrsModel.java
@@ -27,5 +27,7 @@ import jakarta.xml.bind.annotation.XmlAccessorType;
@XmlAccessorType(XmlAccessType.FIELD)
public class AttrsModel {
+ private Boolean required;
+
private String type;
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/StackConfigUtils.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/StackConfigUtils.java
index d4a86d7c..3ac22694 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/StackConfigUtils.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/StackConfigUtils.java
@@ -66,6 +66,7 @@ public class StackConfigUtils {
if (propertyModel.getAttrs() != null) {
AttrsModel attrsModel = propertyModel.getAttrs();
AttrsDTO attrsDTO = new AttrsDTO();
+ attrsDTO.setRequired(attrsModel.getRequired());
attrsDTO.setType(attrsModel.getType());
propertyDTO.setAttrs(attrsDTO);
}
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 1f49dc47..42002e08 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
@@ -78,11 +78,13 @@ public class StackUtils {
public static final DAG<String, ComponentCommandWrapper, DagGraphEdge> DAG
= new DAG<>();
- static {
- parseStack();
- }
+ private static boolean parsed = false;
+
+ public static synchronized void parseStack() {
+ if (parsed) {
+ return;
+ }
- private static void parseStack() {
File stacksFolder = loadStacksFolder();
File[] stackFolders =
Optional.ofNullable(stacksFolder.listFiles()).orElse(new File[0]);
@@ -95,6 +97,8 @@ public class StackUtils {
parseService(new StackDTO(stackName, stackVersion),
versionFolder);
}
}
+
+ parsed = true;
}
/**
diff --git
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/zookeeper/configuration/zoo.cfg.xml
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/zookeeper/configuration/zoo.cfg.xml
index 09d3478b..44ed0977 100644
---
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/zookeeper/configuration/zoo.cfg.xml
+++
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/zookeeper/configuration/zoo.cfg.xml
@@ -44,6 +44,9 @@
<value>2181</value>
<display-name>Port for running ZK Server</display-name>
<description>Port for running ZK Server.</description>
+ <attrs>
+ <required>true</required>
+ </attrs>
</property>
<property>
<name>dataDir</name>
diff --git
a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/AbstractComponentStageTest.java
b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/AbstractComponentStageTest.java
index c921a054..cdc385e1 100644
---
a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/AbstractComponentStageTest.java
+++
b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/AbstractComponentStageTest.java
@@ -21,7 +21,10 @@ package org.apache.bigtop.manager.server.command.stage;
import org.apache.bigtop.manager.common.utils.Environments;
import org.apache.bigtop.manager.dao.po.ClusterPO;
import org.apache.bigtop.manager.server.command.task.TaskContext;
+import org.apache.bigtop.manager.server.utils.StackUtils;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
@@ -29,10 +32,6 @@ import org.mockito.MockedStatic;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.test.util.ReflectionTestUtils;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doCallRealMethod;
@@ -45,6 +44,21 @@ public class AbstractComponentStageTest {
@Mock
private AbstractComponentStage stage;
+ private static MockedStatic<Environments> mocked;
+
+ @BeforeAll
+ public static void setup() {
+ mocked = mockStatic(Environments.class);
+ when(Environments.isDevMode()).thenReturn(true);
+
+ StackUtils.parseStack();
+ }
+
+ @AfterAll
+ public static void teardown() {
+ mocked.close();
+ }
+
@Test
@SuppressWarnings("unchecked")
public void testCreateTaskContext() {
@@ -61,13 +75,6 @@ public class AbstractComponentStageTest {
ReflectionTestUtils.setField(stage, "stageContext", stageContext);
ReflectionTestUtils.setField(stage, "clusterPO", clusterPO);
- MockedStatic<Environments> mocked = mockStatic(Environments.class);
- when(Environments.isDevMode()).thenReturn(true);
-
- Map<String, List<String>> componentHosts = new HashMap<>();
- componentHosts.put("test", List.of("host1"));
-
- when(stage.getClusterHosts()).thenReturn(componentHosts);
doCallRealMethod().when(stage).createTaskContext(any());
TaskContext taskContext = stage.createTaskContext("host1");
@@ -79,13 +86,5 @@ public class AbstractComponentStageTest {
assertEquals("zookeeper", taskContext.getServiceUser());
assertEquals("test", taskContext.getUserGroup());
assertEquals("/opt", taskContext.getRootDir());
-
- Map<String, Object> properties = taskContext.getProperties();
- Map<String, List<String>> clusterHosts = (Map<String, List<String>>)
properties.get("clusterHosts");
- assertEquals(1, taskContext.getProperties().size());
- assertEquals(1, clusterHosts.size());
- assertEquals("host1", clusterHosts.get("test").get(0));
-
- mocked.close();
}
}
diff --git
a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentAddStageTest.java
b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentAddStageTest.java
index e2b213e5..a7a94c29 100644
---
a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentAddStageTest.java
+++
b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentAddStageTest.java
@@ -21,7 +21,10 @@ package org.apache.bigtop.manager.server.command.stage;
import org.apache.bigtop.manager.common.utils.Environments;
import org.apache.bigtop.manager.server.command.task.ComponentAddTask;
import org.apache.bigtop.manager.server.command.task.Task;
+import org.apache.bigtop.manager.server.utils.StackUtils;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
@@ -44,6 +47,21 @@ public class ComponentAddStageTest {
@Mock
private ComponentAddStage stage;
+ private static MockedStatic<Environments> mocked;
+
+ @BeforeAll
+ public static void setup() {
+ mocked = mockStatic(Environments.class);
+ when(Environments.isDevMode()).thenReturn(true);
+
+ StackUtils.parseStack();
+ }
+
+ @AfterAll
+ public static void teardown() {
+ mocked.close();
+ }
+
@Test
public void testCreateTask() {
MockedConstruction<?> mocked =
mockConstruction(ComponentAddTask.class);
@@ -65,12 +83,7 @@ public class ComponentAddStageTest {
ReflectionTestUtils.setField(stage, "stageContext", stageContext);
- MockedStatic<Environments> mocked = mockStatic(Environments.class);
- when(Environments.isDevMode()).thenReturn(true);
-
doCallRealMethod().when(stage).getName();
assertEquals("Add ZooKeeper Server", stage.getName());
-
- mocked.close();
}
}
diff --git
a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentCheckStageTest.java
b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentCheckStageTest.java
index 2db9eda9..caa81988 100644
---
a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentCheckStageTest.java
+++
b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentCheckStageTest.java
@@ -21,7 +21,10 @@ package org.apache.bigtop.manager.server.command.stage;
import org.apache.bigtop.manager.common.utils.Environments;
import org.apache.bigtop.manager.server.command.task.ComponentCheckTask;
import org.apache.bigtop.manager.server.command.task.Task;
+import org.apache.bigtop.manager.server.utils.StackUtils;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
@@ -44,6 +47,21 @@ public class ComponentCheckStageTest {
@Mock
private ComponentCheckStage stage;
+ private static MockedStatic<Environments> mocked;
+
+ @BeforeAll
+ public static void setup() {
+ mocked = mockStatic(Environments.class);
+ when(Environments.isDevMode()).thenReturn(true);
+
+ StackUtils.parseStack();
+ }
+
+ @AfterAll
+ public static void teardown() {
+ mocked.close();
+ }
+
@Test
public void testCreateTask() {
MockedConstruction<?> mocked =
mockConstruction(ComponentCheckTask.class);
@@ -65,12 +83,7 @@ public class ComponentCheckStageTest {
ReflectionTestUtils.setField(stage, "stageContext", stageContext);
- MockedStatic<Environments> mocked = mockStatic(Environments.class);
- when(Environments.isDevMode()).thenReturn(true);
-
doCallRealMethod().when(stage).getName();
assertEquals("Check ZooKeeper Server", stage.getName());
-
- mocked.close();
}
}
diff --git
a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentConfigureStageTest.java
b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentConfigureStageTest.java
index 0967eb0a..04bbebb1 100644
---
a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentConfigureStageTest.java
+++
b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentConfigureStageTest.java
@@ -21,7 +21,10 @@ package org.apache.bigtop.manager.server.command.stage;
import org.apache.bigtop.manager.common.utils.Environments;
import org.apache.bigtop.manager.server.command.task.ComponentConfigureTask;
import org.apache.bigtop.manager.server.command.task.Task;
+import org.apache.bigtop.manager.server.utils.StackUtils;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
@@ -44,6 +47,21 @@ public class ComponentConfigureStageTest {
@Mock
private ComponentConfigureStage stage;
+ private static MockedStatic<Environments> mocked;
+
+ @BeforeAll
+ public static void setup() {
+ mocked = mockStatic(Environments.class);
+ when(Environments.isDevMode()).thenReturn(true);
+
+ StackUtils.parseStack();
+ }
+
+ @AfterAll
+ public static void teardown() {
+ mocked.close();
+ }
+
@Test
public void testCreateTask() {
MockedConstruction<?> mocked =
mockConstruction(ComponentConfigureTask.class);
@@ -65,12 +83,7 @@ public class ComponentConfigureStageTest {
ReflectionTestUtils.setField(stage, "stageContext", stageContext);
- MockedStatic<Environments> mocked = mockStatic(Environments.class);
- when(Environments.isDevMode()).thenReturn(true);
-
doCallRealMethod().when(stage).getName();
assertEquals("Configure ZooKeeper Server", stage.getName());
-
- mocked.close();
}
}
diff --git
a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentInitStageTest.java
b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentInitStageTest.java
index 9457b703..dc7cae98 100644
---
a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentInitStageTest.java
+++
b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentInitStageTest.java
@@ -21,7 +21,10 @@ package org.apache.bigtop.manager.server.command.stage;
import org.apache.bigtop.manager.common.utils.Environments;
import org.apache.bigtop.manager.server.command.task.ComponentInitTask;
import org.apache.bigtop.manager.server.command.task.Task;
+import org.apache.bigtop.manager.server.utils.StackUtils;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
@@ -44,6 +47,21 @@ public class ComponentInitStageTest {
@Mock
private ComponentInitStage stage;
+ private static MockedStatic<Environments> mocked;
+
+ @BeforeAll
+ public static void setup() {
+ mocked = mockStatic(Environments.class);
+ when(Environments.isDevMode()).thenReturn(true);
+
+ StackUtils.parseStack();
+ }
+
+ @AfterAll
+ public static void teardown() {
+ mocked.close();
+ }
+
@Test
public void testCreateTask() {
MockedConstruction<?> mocked =
mockConstruction(ComponentInitTask.class);
@@ -65,12 +83,7 @@ public class ComponentInitStageTest {
ReflectionTestUtils.setField(stage, "stageContext", stageContext);
- MockedStatic<Environments> mocked = mockStatic(Environments.class);
- when(Environments.isDevMode()).thenReturn(true);
-
doCallRealMethod().when(stage).getName();
assertEquals("Init ZooKeeper Server", stage.getName());
-
- mocked.close();
}
}
diff --git
a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentPrepareStageTest.java
b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentPrepareStageTest.java
index 20339b66..c90a6d9e 100644
---
a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentPrepareStageTest.java
+++
b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentPrepareStageTest.java
@@ -21,7 +21,10 @@ package org.apache.bigtop.manager.server.command.stage;
import org.apache.bigtop.manager.common.utils.Environments;
import org.apache.bigtop.manager.server.command.task.ComponentPrepareTask;
import org.apache.bigtop.manager.server.command.task.Task;
+import org.apache.bigtop.manager.server.utils.StackUtils;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
@@ -44,6 +47,21 @@ public class ComponentPrepareStageTest {
@Mock
private ComponentPrepareStage stage;
+ private static MockedStatic<Environments> mocked;
+
+ @BeforeAll
+ public static void setup() {
+ mocked = mockStatic(Environments.class);
+ when(Environments.isDevMode()).thenReturn(true);
+
+ StackUtils.parseStack();
+ }
+
+ @AfterAll
+ public static void teardown() {
+ mocked.close();
+ }
+
@Test
public void testCreateTask() {
MockedConstruction<?> mocked =
mockConstruction(ComponentPrepareTask.class);
@@ -65,12 +83,7 @@ public class ComponentPrepareStageTest {
ReflectionTestUtils.setField(stage, "stageContext", stageContext);
- MockedStatic<Environments> mocked = mockStatic(Environments.class);
- when(Environments.isDevMode()).thenReturn(true);
-
doCallRealMethod().when(stage).getName();
assertEquals("Prepare ZooKeeper Server", stage.getName());
-
- mocked.close();
}
}
diff --git
a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentStartStageTest.java
b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentStartStageTest.java
index d625e8e8..bbff7bee 100644
---
a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentStartStageTest.java
+++
b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentStartStageTest.java
@@ -21,7 +21,10 @@ package org.apache.bigtop.manager.server.command.stage;
import org.apache.bigtop.manager.common.utils.Environments;
import org.apache.bigtop.manager.server.command.task.ComponentStartTask;
import org.apache.bigtop.manager.server.command.task.Task;
+import org.apache.bigtop.manager.server.utils.StackUtils;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
@@ -44,6 +47,21 @@ public class ComponentStartStageTest {
@Mock
private ComponentStartStage stage;
+ private static MockedStatic<Environments> mocked;
+
+ @BeforeAll
+ public static void setup() {
+ mocked = mockStatic(Environments.class);
+ when(Environments.isDevMode()).thenReturn(true);
+
+ StackUtils.parseStack();
+ }
+
+ @AfterAll
+ public static void teardown() {
+ mocked.close();
+ }
+
@Test
public void testCreateTask() {
MockedConstruction<?> mocked =
mockConstruction(ComponentStartTask.class);
@@ -65,12 +83,7 @@ public class ComponentStartStageTest {
ReflectionTestUtils.setField(stage, "stageContext", stageContext);
- MockedStatic<Environments> mocked = mockStatic(Environments.class);
- when(Environments.isDevMode()).thenReturn(true);
-
doCallRealMethod().when(stage).getName();
assertEquals("Start ZooKeeper Server", stage.getName());
-
- mocked.close();
}
}
diff --git
a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentStopStageTest.java
b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentStopStageTest.java
index de6e0b54..fc8cee81 100644
---
a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentStopStageTest.java
+++
b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/command/stage/ComponentStopStageTest.java
@@ -21,7 +21,10 @@ package org.apache.bigtop.manager.server.command.stage;
import org.apache.bigtop.manager.common.utils.Environments;
import org.apache.bigtop.manager.server.command.task.ComponentStopTask;
import org.apache.bigtop.manager.server.command.task.Task;
+import org.apache.bigtop.manager.server.utils.StackUtils;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
@@ -44,6 +47,21 @@ public class ComponentStopStageTest {
@Mock
private ComponentStopStage stage;
+ private static MockedStatic<Environments> mocked;
+
+ @BeforeAll
+ public static void setup() {
+ mocked = mockStatic(Environments.class);
+ when(Environments.isDevMode()).thenReturn(true);
+
+ StackUtils.parseStack();
+ }
+
+ @AfterAll
+ public static void teardown() {
+ mocked.close();
+ }
+
@Test
public void testCreateTask() {
MockedConstruction<?> mocked =
mockConstruction(ComponentStopTask.class);
@@ -65,12 +83,7 @@ public class ComponentStopStageTest {
ReflectionTestUtils.setField(stage, "stageContext", stageContext);
- MockedStatic<Environments> mocked = mockStatic(Environments.class);
- when(Environments.isDevMode()).thenReturn(true);
-
doCallRealMethod().when(stage).getName();
assertEquals("Stop ZooKeeper Server", stage.getName());
-
- mocked.close();
}
}
diff --git
a/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/param/InfraParams.java
b/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/param/InfraParams.java
index fe586d77..33e3ce2d 100644
---
a/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/param/InfraParams.java
+++
b/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/param/InfraParams.java
@@ -18,16 +18,12 @@
*/
package org.apache.bigtop.manager.stack.infra.param;
-import org.apache.bigtop.manager.common.utils.Environments;
import org.apache.bigtop.manager.grpc.payload.ComponentCommandPayload;
import org.apache.bigtop.manager.stack.core.spi.param.BaseParams;
-import org.apache.commons.lang3.SystemUtils;
-
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import java.io.File;
import java.util.List;
import java.util.Map;
@@ -49,32 +45,6 @@ public abstract class InfraParams extends BaseParams {
return "infra";
}
- /**
- * Infra stack do not belong to any cluster, we cannot use stack home of
cluster
- *
- * @return group name
- */
- @Override
- public String stackHome() {
- // Parent path of agent dir, which is bigtop-manager-agent/../
- String parentPath;
- if (Environments.isDevMode()) {
- return SystemUtils.getUserDir().getParentFile().getPath();
- } else {
- parentPath = new File(InfraParams.class
- .getProtectionDomain()
- .getCodeSource()
- .getLocation()
- .getPath())
- .getParentFile()
- .getParentFile()
- .getParentFile()
- .getPath();
- }
-
- return parentPath + "/infras";
- }
-
public Map<String, List<String>> getClusterHosts() {
// In Component Status stage, clusterHosts is null
return payload.getClusterHosts();