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 a9aa638 BIGTOP-4163: Add quick links for service (#20)
a9aa638 is described below
commit a9aa638e6b452fa822eee047e68459b070fe50b5
Author: Zhiguo Wu <[email protected]>
AuthorDate: Thu Jul 18 17:55:22 2024 +0800
BIGTOP-4163: Add quick links for service (#20)
---
.../bigtop/manager/agent/utils/LogFileUtils.java | 4 +-
.../bigtop/manager/common/utils/JsonUtils.java | 18 +++++++
.../bigtop/manager/dao/entity/Component.java | 3 ++
.../apache/bigtop/manager/dao/entity/Service.java | 2 +-
.../manager/server/controller/SseController.java | 4 +-
.../manager/server/model/dto/ComponentDTO.java | 2 +
.../dto/{ComponentDTO.java => QuickLinkDTO.java} | 14 ++---
.../server/model/mapper/ComponentMapper.java | 1 +
.../vo/QuickLinkVO.java} | 12 ++++-
.../bigtop/manager/server/model/vo/ServiceVO.java | 2 +
.../server/service/impl/ServiceServiceImpl.java | 62 +++++++++++++++++++++-
.../manager/server/stack/pojo/ComponentModel.java | 3 ++
.../manager/server/stack/pojo/QuickLinkModel.java | 26 ++++++++-
.../services/hdfs/configuration/hdfs-site.xml | 2 +-
.../stacks/bigtop/3.3.0/services/hdfs/metainfo.xml | 7 +++
.../services/yarn/configuration/yarn-site.xml | 20 +++----
.../stacks/bigtop/3.3.0/services/yarn/metainfo.xml | 7 +++
.../nop/1.0.0/services/zookeeper/metainfo.xml | 7 +++
.../stack/bigtop/v3_3_0/hdfs/HdfsParams.java | 11 ----
.../stack/bigtop/v3_3_0/yarn/YarnParams.java | 12 -----
bigtop-manager-ui/src/api/service/types.ts | 6 +++
bigtop-manager-ui/src/locales/en_US/service.ts | 3 +-
bigtop-manager-ui/src/locales/zh_CN/service.ts | 3 +-
bigtop-manager-ui/src/pages/service/index.vue | 38 ++++++++-----
24 files changed, 203 insertions(+), 66 deletions(-)
diff --git
a/bigtop-manager-agent/src/main/java/org/apache/bigtop/manager/agent/utils/LogFileUtils.java
b/bigtop-manager-agent/src/main/java/org/apache/bigtop/manager/agent/utils/LogFileUtils.java
index e87929a..de3f482 100644
---
a/bigtop-manager-agent/src/main/java/org/apache/bigtop/manager/agent/utils/LogFileUtils.java
+++
b/bigtop-manager-agent/src/main/java/org/apache/bigtop/manager/agent/utils/LogFileUtils.java
@@ -18,6 +18,8 @@
*/
package org.apache.bigtop.manager.agent.utils;
+import org.apache.bigtop.manager.common.utils.Environments;
+
import org.apache.commons.lang3.SystemUtils;
import java.io.File;
@@ -26,7 +28,7 @@ public class LogFileUtils {
public static String getLogFilePath(Long taskId) {
String baseDir;
- if (SystemUtils.IS_OS_WINDOWS) {
+ if (Environments.isDevMode()) {
baseDir = SystemUtils.getUserDir().getPath();
} else {
File file = new File(LogFileUtils.class
diff --git
a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/utils/JsonUtils.java
b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/utils/JsonUtils.java
index 787d369..963b48a 100644
---
a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/utils/JsonUtils.java
+++
b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/utils/JsonUtils.java
@@ -18,6 +18,7 @@
*/
package org.apache.bigtop.manager.common.utils;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JsonNode;
@@ -34,6 +35,7 @@ public class JsonUtils {
static {
OBJECTMAPPER = new ObjectMapper();
OBJECTMAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,
false);
+ OBJECTMAPPER.setSerializationInclusion(JsonInclude.Include.NON_NULL);
}
public static <T> void writeToFile(String fileName, T obj) {
@@ -73,6 +75,10 @@ public class JsonUtils {
}
public static <T> T readFromString(String json) {
+ if (json == null) {
+ return null;
+ }
+
try {
return OBJECTMAPPER.readValue(json, new TypeReference<>() {});
} catch (Exception e) {
@@ -81,6 +87,10 @@ public class JsonUtils {
}
public static <T> T readFromString(String json, TypeReference<T>
typeReference) {
+ if (json == null) {
+ return null;
+ }
+
try {
return OBJECTMAPPER.readValue(json, typeReference);
} catch (Exception e) {
@@ -89,6 +99,10 @@ public class JsonUtils {
}
public static <T> T readFromString(String json, Class<T> clazz) {
+ if (json == null) {
+ return null;
+ }
+
try {
return OBJECTMAPPER.readValue(json, clazz);
} catch (Exception e) {
@@ -105,6 +119,10 @@ public class JsonUtils {
}
public static <T> String writeAsString(T obj) {
+ if (obj == null) {
+ return null;
+ }
+
try {
return OBJECTMAPPER.writeValueAsString(obj);
} catch (Exception e) {
diff --git
a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/entity/Component.java
b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/entity/Component.java
index e7597e5..a2411c4 100644
---
a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/entity/Component.java
+++
b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/entity/Component.java
@@ -81,6 +81,9 @@ public class Component extends BaseEntity {
@Column(name = "category")
private String category;
+ @Column(name = "quick_link")
+ private String quickLink;
+
@ManyToOne
@JoinColumn(name = "service_id", foreignKey =
@ForeignKey(ConstraintMode.NO_CONSTRAINT))
private Service service;
diff --git
a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/entity/Service.java
b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/entity/Service.java
index af9bcd8..eca5499 100644
---
a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/entity/Service.java
+++
b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/entity/Service.java
@@ -79,7 +79,7 @@ public class Service extends BaseEntity {
@Column(name = "service_group")
private String serviceGroup;
- @Column(name = "required_service")
+ @Column(name = "required_services")
private String requiredServices;
@ManyToOne
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/SseController.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/SseController.java
index 7ed8642..9309a74 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/SseController.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/SseController.java
@@ -44,8 +44,8 @@ public class SseController {
@Operation(summary = "get task log", description = "Get a task log")
@GetMapping("/tasks/{id}/log")
public SseEmitter log(@PathVariable Long id, @PathVariable Long clusterId)
{
- // Default timeout to 5 minutes
- SseEmitter emitter = new SseEmitter(5 * 60 * 1000L);
+ // Default timeout to 30 minutes
+ SseEmitter emitter = new SseEmitter(30 * 60 * 1000L);
Flux<String> flux =
Flux.create(sink -> taskLogService.registerSink(id, sink),
FluxSink.OverflowStrategy.BUFFER);
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/ComponentDTO.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/ComponentDTO.java
index 3589161..8f42108 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/ComponentDTO.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/ComponentDTO.java
@@ -36,4 +36,6 @@ public class ComponentDTO {
private ScriptDTO commandScript;
private List<CustomCommandDTO> customCommands;
+
+ private QuickLinkDTO quickLink;
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/ComponentDTO.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/QuickLinkDTO.java
similarity index 79%
copy from
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/ComponentDTO.java
copy to
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/QuickLinkDTO.java
index 3589161..9db2a09 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/ComponentDTO.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/QuickLinkDTO.java
@@ -20,20 +20,16 @@ package org.apache.bigtop.manager.server.model.dto;
import lombok.Data;
-import java.util.List;
-
@Data
-public class ComponentDTO {
-
- private String componentName;
+public class QuickLinkDTO {
private String displayName;
- private String category;
+ private String httpPortProperty;
- private String cardinality;
+ private String httpPortDefault;
- private ScriptDTO commandScript;
+ private String httpsPortProperty;
- private List<CustomCommandDTO> customCommands;
+ private String httpsPortDefault;
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/ComponentMapper.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/ComponentMapper.java
index 43cec48..961967f 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/ComponentMapper.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/ComponentMapper.java
@@ -39,6 +39,7 @@ public interface ComponentMapper {
@Mapping(target = "commandScript", source = "commandScript",
qualifiedByName = "obj2Json")
@Mapping(target = "customCommands", source = "customCommands",
qualifiedByName = "obj2Json")
+ @Mapping(target = "quickLink", source = "quickLink", qualifiedByName =
"obj2Json")
@Mapping(target = "service", expression = "java(service)")
@Mapping(target = "cluster", expression = "java(cluster)")
Component fromDTO2Entity(ComponentDTO componentDTO, @Context Service
service, @Context Cluster cluster);
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/pojo/QuickLinkModel.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/QuickLinkVO.java
similarity index 83%
copy from
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/pojo/QuickLinkModel.java
copy to
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/QuickLinkVO.java
index e688cbf..4567093 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/pojo/QuickLinkModel.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/QuickLinkVO.java
@@ -16,6 +16,14 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.bigtop.manager.server.stack.pojo;
+package org.apache.bigtop.manager.server.model.vo;
-public class QuickLinkModel {}
+import lombok.Data;
+
+@Data
+public class QuickLinkVO {
+
+ private String displayName;
+
+ private String url;
+}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/ServiceVO.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/ServiceVO.java
index 568fb4a..4310951 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/ServiceVO.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/ServiceVO.java
@@ -46,4 +46,6 @@ public class ServiceVO {
private Boolean isClient;
private Boolean isHealthy;
+
+ private List<QuickLinkVO> quickLinks;
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ServiceServiceImpl.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ServiceServiceImpl.java
index 63fbbaa..8a13917 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ServiceServiceImpl.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ServiceServiceImpl.java
@@ -20,14 +20,28 @@ package org.apache.bigtop.manager.server.service.impl;
import org.apache.bigtop.manager.common.constants.ComponentCategories;
import org.apache.bigtop.manager.common.enums.MaintainState;
+import org.apache.bigtop.manager.common.utils.JsonUtils;
+import org.apache.bigtop.manager.dao.entity.Cluster;
+import org.apache.bigtop.manager.dao.entity.Component;
+import org.apache.bigtop.manager.dao.entity.Host;
import org.apache.bigtop.manager.dao.entity.HostComponent;
import org.apache.bigtop.manager.dao.entity.Service;
+import org.apache.bigtop.manager.dao.entity.ServiceConfig;
+import org.apache.bigtop.manager.dao.entity.TypeConfig;
import org.apache.bigtop.manager.dao.repository.HostComponentRepository;
+import org.apache.bigtop.manager.dao.repository.ServiceConfigRepository;
import org.apache.bigtop.manager.dao.repository.ServiceRepository;
+import org.apache.bigtop.manager.server.model.dto.PropertyDTO;
+import org.apache.bigtop.manager.server.model.dto.QuickLinkDTO;
+import org.apache.bigtop.manager.server.model.dto.TypeConfigDTO;
import org.apache.bigtop.manager.server.model.mapper.ServiceMapper;
+import org.apache.bigtop.manager.server.model.mapper.TypeConfigMapper;
+import org.apache.bigtop.manager.server.model.vo.QuickLinkVO;
import org.apache.bigtop.manager.server.model.vo.ServiceVO;
import org.apache.bigtop.manager.server.service.ServiceService;
+import org.apache.commons.lang3.StringUtils;
+
import lombok.extern.slf4j.Slf4j;
import jakarta.annotation.Resource;
@@ -46,6 +60,9 @@ public class ServiceServiceImpl implements ServiceService {
@Resource
private HostComponentRepository hostComponentRepository;
+ @Resource
+ private ServiceConfigRepository serviceConfigRepository;
+
@Override
public List<ServiceVO> list(Long clusterId) {
List<ServiceVO> res = new ArrayList<>();
@@ -58,11 +75,20 @@ public class ServiceServiceImpl implements ServiceService {
List<HostComponent> hostComponents = entry.getValue();
Service service =
hostComponents.get(0).getComponent().getService();
ServiceVO serviceVO =
ServiceMapper.INSTANCE.fromEntity2VO(service);
+ serviceVO.setQuickLinks(new ArrayList<>());
boolean isHealthy = true;
boolean isClient = true;
for (HostComponent hostComponent : hostComponents) {
- String category = hostComponent.getComponent().getCategory();
+ Component component = hostComponent.getComponent();
+
+ String quickLink = component.getQuickLink();
+ if (StringUtils.isNotBlank(quickLink)) {
+ QuickLinkVO quickLinkVO = resolveQuickLink(hostComponent,
quickLink);
+ serviceVO.getQuickLinks().add(quickLinkVO);
+ }
+
+ String category = component.getCategory();
if (!category.equalsIgnoreCase(ComponentCategories.CLIENT)) {
isClient = false;
}
@@ -88,4 +114,38 @@ public class ServiceServiceImpl implements ServiceService {
Service service = serviceRepository.findById(id).orElse(new Service());
return ServiceMapper.INSTANCE.fromEntity2VO(service);
}
+
+ private QuickLinkVO resolveQuickLink(HostComponent hostComponent, String
quickLinkJson) {
+ QuickLinkVO quickLinkVO = new QuickLinkVO();
+
+ QuickLinkDTO quickLinkDTO = JsonUtils.readFromString(quickLinkJson,
QuickLinkDTO.class);
+ quickLinkVO.setDisplayName(quickLinkDTO.getDisplayName());
+
+ Component component = hostComponent.getComponent();
+ Cluster cluster = component.getCluster();
+ Host host = hostComponent.getHost();
+ Service service = component.getService();
+ ServiceConfig serviceConfig =
+
serviceConfigRepository.findByClusterAndServiceAndSelectedIsTrue(cluster,
service);
+ List<TypeConfig> typeConfigs = serviceConfig.getConfigs();
+
+ // Use HTTP for now, need to handle https in the future
+ for (TypeConfig typeConfig : typeConfigs) {
+ TypeConfigDTO typeConfigDTO =
TypeConfigMapper.INSTANCE.fromEntity2DTO(typeConfig);
+ for (PropertyDTO propertyDTO : typeConfigDTO.getProperties()) {
+ if
(propertyDTO.getName().equals(quickLinkDTO.getHttpPortProperty())) {
+ String port = propertyDTO.getValue().contains(":")
+ ? propertyDTO.getValue().split(":")[1]
+ : propertyDTO.getValue();
+ String url = "http://" + host.getHostname() + ":" + port;
+ quickLinkVO.setUrl(url);
+ return quickLinkVO;
+ }
+ }
+ }
+
+ String url = "http://" + host.getHostname() + ":" +
quickLinkDTO.getHttpPortDefault();
+ quickLinkVO.setUrl(url);
+ return quickLinkVO;
+ }
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/pojo/ComponentModel.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/pojo/ComponentModel.java
index ece81ab..10c5416 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/pojo/ComponentModel.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/pojo/ComponentModel.java
@@ -46,4 +46,7 @@ public class ComponentModel {
@XmlElementWrapper(name = "custom-commands")
@XmlElements(@XmlElement(name = "custom-command"))
private List<CustomCommandModel> customCommands;
+
+ @XmlElement(name = "quick-link")
+ private QuickLinkModel quickLink;
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/pojo/QuickLinkModel.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/pojo/QuickLinkModel.java
index e688cbf..f600333 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/pojo/QuickLinkModel.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/pojo/QuickLinkModel.java
@@ -18,4 +18,28 @@
*/
package org.apache.bigtop.manager.server.stack.pojo;
-public class QuickLinkModel {}
+import lombok.Data;
+
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+
+@Data
+@XmlAccessorType(XmlAccessType.FIELD)
+public class QuickLinkModel {
+
+ @XmlElement(name = "display-name")
+ private String displayName;
+
+ @XmlElement(name = "http-port-property")
+ private String httpPortProperty;
+
+ @XmlElement(name = "http-port-default")
+ private String httpPortDefault;
+
+ @XmlElement(name = "https-port-property")
+ private String httpsPortProperty;
+
+ @XmlElement(name = "https-port-default")
+ private String httpsPortDefault;
+}
diff --git
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/hdfs/configuration/hdfs-site.xml
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/hdfs/configuration/hdfs-site.xml
index bc3335e..74b2354 100644
---
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/hdfs/configuration/hdfs-site.xml
+++
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/hdfs/configuration/hdfs-site.xml
@@ -179,7 +179,7 @@
</property>
<property>
<name>dfs.namenode.rpc-address</name>
- <value>localhost:8020</value>
+ <value>0.0.0.0:8020</value>
<description>RPC address that handles all clients
requests.</description>
</property>
<property>
diff --git
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/hdfs/metainfo.xml
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/hdfs/metainfo.xml
index 2d4f9f0..c2fc518 100644
---
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/hdfs/metainfo.xml
+++
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/hdfs/metainfo.xml
@@ -57,6 +57,13 @@
</command-script>
</custom-command>
</custom-commands>
+ <quick-link>
+ <display-name>NameNode UI</display-name>
+
<http-port-property>dfs.namenode.http-address</http-port-property>
+ <http-port-default>50070</http-port-default>
+
<https-port-property>dfs.namenode.http-address</https-port-property>
+ <https-port-default>50470</https-port-default>
+ </quick-link>
</component>
<component>
<name>datanode</name>
diff --git
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/yarn/configuration/yarn-site.xml
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/yarn/configuration/yarn-site.xml
index f7d5dd3..996cb2e 100644
---
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/yarn/configuration/yarn-site.xml
+++
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/yarn/configuration/yarn-site.xml
@@ -26,17 +26,17 @@
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
- <value>localhost:8025</value>
+ <value>0.0.0.0:8031</value>
<description> The address of ResourceManager. </description>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
- <value>localhost:8030</value>
+ <value>0.0.0.0:8030</value>
<description>The address of the scheduler interface.</description>
</property>
<property>
<name>yarn.resourcemanager.address</name>
- <value>localhost:8050</value>
+ <value>0.0.0.0:8032</value>
<description>
The address of the applications manager interface in the
RM.
@@ -44,7 +44,7 @@
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
- <value>localhost:8141</value>
+ <value>0.0.0.0:8033</value>
<description>The address of the RM admin interface.</description>
</property>
<property>
@@ -277,14 +277,14 @@
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
- <value>localhost:8088</value>
+ <value>0.0.0.0:8088</value>
<description>
The address of the RM web application.
</description>
</property>
<property>
<name>yarn.resourcemanager.webapp.https.address</name>
- <value>localhost:8090</value>
+ <value>0.0.0.0:8090</value>
<description>
The https address of the RM web application.
</description>
@@ -316,7 +316,7 @@
<property>
<name>manage.include.files</name>
<value>false</value>
- <description>If true Ambari will manage include file if
+ <description>If true this will manage include file if
yarn.resourcemanager.nodes.include-path is
configured.</description>
</property>
<property>
@@ -351,21 +351,21 @@
</property>
<property>
<name>yarn.timeline-service.webapp.address</name>
- <value>localhost:8188</value>
+ <value>0.0.0.0:8188</value>
<description>
The http address of the timeline service web application.
</description>
</property>
<property>
<name>yarn.timeline-service.webapp.https.address</name>
- <value>localhost:8190</value>
+ <value>0.0.0.0:8190</value>
<description>
The http address of the timeline service web application.
</description>
</property>
<property>
<name>yarn.timeline-service.address</name>
- <value>localhost:10200</value>
+ <value>0.0.0.0:10200</value>
<description>
This is default address for the timeline server to start
the RPC server.
diff --git
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/yarn/metainfo.xml
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/yarn/metainfo.xml
index d3fc224..44ea8ff 100644
---
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/yarn/metainfo.xml
+++
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/yarn/metainfo.xml
@@ -57,6 +57,13 @@
</command-script>
</custom-command>
</custom-commands>
+ <quick-link>
+ <display-name>ResourceManager UI</display-name>
+
<http-port-property>yarn.resourcemanager.webapp.address</http-port-property>
+ <http-port-default>8088</http-port-default>
+
<https-port-property>yarn.resourcemanager.webapp.https.address</https-port-property>
+ <https-port-default>8090</https-port-default>
+ </quick-link>
</component>
<component>
<name>nodemanager</name>
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
index 97b88cb..55db55e 100644
---
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
@@ -42,6 +42,13 @@
<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>
diff --git
a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/hdfs/HdfsParams.java
b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/hdfs/HdfsParams.java
index 114e17d..24c8d61 100644
---
a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/hdfs/HdfsParams.java
+++
b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/hdfs/HdfsParams.java
@@ -97,17 +97,6 @@ public class HdfsParams extends BaseParams {
@GlobalParams
public Map<String, Object> hdfsSite() {
Map<String, Object> hdfsSite =
LocalSettings.configurations(serviceName(), "hdfs-site");
- List<String> namenodeList = LocalSettings.hosts("namenode");
- if (!namenodeList.isEmpty()) {
- hdfsSite.put("dfs.namenode.rpc-address",
MessageFormat.format("{0}:8020", namenodeList.get(0)));
- hdfsSite.put("dfs.namenode.http-address",
MessageFormat.format("{0}:50070", namenodeList.get(0)));
- hdfsSite.put("dfs.namenode.https-address",
MessageFormat.format("{0}:50470", namenodeList.get(0)));
- }
- List<String> snamenodeList = LocalSettings.hosts("secondary_namenode");
- if (!snamenodeList.isEmpty()) {
- hdfsSite.put(
- "dfs.namenode.secondary.http-address",
MessageFormat.format("{0}:50090", snamenodeList.get(0)));
- }
dfsDataDir = (String) hdfsSite.get("dfs.datanode.data.dir");
dfsNameNodeDir = (String) hdfsSite.get("dfs.namenode.name.dir");
diff --git
a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/yarn/YarnParams.java
b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/yarn/YarnParams.java
index cc9e0eb..7b3f215 100644
---
a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/yarn/YarnParams.java
+++
b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/yarn/YarnParams.java
@@ -81,18 +81,6 @@ public class YarnParams extends BaseParams {
List<String> resourcemanagerList =
LocalSettings.hosts("resourcemanager");
if (!resourcemanagerList.isEmpty()) {
yarnSite.put("yarn.resourcemanager.hostname",
MessageFormat.format("{0}", resourcemanagerList.get(0)));
- yarnSite.put(
- "yarn.resourcemanager.resource-tracker.address",
- MessageFormat.format("{0}:8025",
resourcemanagerList.get(0)));
- yarnSite.put("yarn.resourcemanager.address",
MessageFormat.format("{0}:8050", resourcemanagerList.get(0)));
- yarnSite.put(
- "yarn.resourcemanager.admin.address",
MessageFormat.format("{0}:8141", resourcemanagerList.get(0)));
- yarnSite.put(
- "yarn.resourcemanager.webapp.address",
- MessageFormat.format("{0}:8088",
resourcemanagerList.get(0)));
- yarnSite.put(
- "yarn.resourcemanager.webapp.https.address",
- MessageFormat.format("{0}:8090",
resourcemanagerList.get(0)));
}
rmNodesExcludeDir = (String)
yarnSite.get("yarn.resourcemanager.nodes.exclude-path");
diff --git a/bigtop-manager-ui/src/api/service/types.ts
b/bigtop-manager-ui/src/api/service/types.ts
index d4669ae..d6a5d0d 100644
--- a/bigtop-manager-ui/src/api/service/types.ts
+++ b/bigtop-manager-ui/src/api/service/types.ts
@@ -28,4 +28,10 @@ export interface ServiceVO {
serviceGroup?: string
isClient?: boolean
isHealthy?: boolean
+ quickLinks?: QuickLinkVO[]
+}
+
+export interface QuickLinkVO {
+ displayName: string
+ url: string
}
diff --git a/bigtop-manager-ui/src/locales/en_US/service.ts
b/bigtop-manager-ui/src/locales/en_US/service.ts
index d003f77..06cb845 100644
--- a/bigtop-manager-ui/src/locales/en_US/service.ts
+++ b/bigtop-manager-ui/src/locales/en_US/service.ts
@@ -37,5 +37,6 @@ export default {
summary: 'Summary',
config: 'Config',
components: 'Components',
- quicklinks: 'Quick Links'
+ quick_links: 'Quick Links',
+ no_link: 'No Link'
}
diff --git a/bigtop-manager-ui/src/locales/zh_CN/service.ts
b/bigtop-manager-ui/src/locales/zh_CN/service.ts
index 3070cf2..dee4c8a 100644
--- a/bigtop-manager-ui/src/locales/zh_CN/service.ts
+++ b/bigtop-manager-ui/src/locales/zh_CN/service.ts
@@ -37,5 +37,6 @@ export default {
summary: '总览',
config: '配置',
components: '组件',
- quicklinks: '快速链接'
+ quick_links: '快速链接',
+ no_link: '无'
}
diff --git a/bigtop-manager-ui/src/pages/service/index.vue
b/bigtop-manager-ui/src/pages/service/index.vue
index c1c1d98..c05f821 100644
--- a/bigtop-manager-ui/src/pages/service/index.vue
+++ b/bigtop-manager-ui/src/pages/service/index.vue
@@ -18,7 +18,7 @@
-->
<script setup lang="ts">
- import { onMounted, ref, watch } from 'vue'
+ import { computed, onMounted, ref, watch } from 'vue'
import { useRoute } from 'vue-router'
import type { SelectProps, MenuProps } from 'ant-design-vue'
import {
@@ -32,6 +32,8 @@
import { useComponentStore } from '@/store/component'
import { HostComponentVO } from '@/api/component/types.ts'
import DotState from '@/components/dot-state/index.vue'
+ import { useServiceStore } from '@/store/service'
+ import { ServiceVO } from '@/api/service/types.ts'
const menuOps = [
{
@@ -60,18 +62,18 @@
Stopped: '#ff4d4f'
}
- const links = [
- 'NameNode UINameNode UINameNode',
- 'NameNode Logs',
- 'NameNode JMX',
- 'Thread Stacks'
- ]
-
const route = useRoute()
const configStore = useConfigStore()
const { allConfigs } = storeToRefs(configStore)
const componentStore = useComponentStore()
const { hostComponents } = storeToRefs(componentStore)
+ const serviceStore = useServiceStore()
+ const { installedServices } = storeToRefs(serviceStore)
+ const selectedService = computed(() => {
+ return installedServices.value.filter(
+ (service: ServiceVO) => service.serviceName === serviceName.value
+ )[0]
+ })
const serviceName = ref<string>(route.params.serviceName as string)
@@ -217,13 +219,18 @@
</div>
</div>
<div class="right-section">
- <h2>{{ $t('service.quicklinks') }}</h2>
- <ul v-if="links.length > 0">
- <li v-for="link in links" :key="link">
- <a>{{ link }}</a>
+ <h2>{{ $t('service.quick_links') }}</h2>
+ <ul
+ v-if="
+ selectedService.quickLinks &&
+ selectedService.quickLinks.length > 0
+ "
+ >
+ <li v-for="link in selectedService.quickLinks" :key="link.url">
+ <a :href="link.url" target="_blank">{{ link.displayName }}</a>
</li>
</ul>
- <a-empty v-else />
+ <div v-else class="no-link-text">{{ $t('service.no_link') }}</div>
</div>
</a-layout-content>
</a-tab-pane>
@@ -297,6 +304,11 @@
box-sizing: border-box;
min-height: 33.75rem;
+ .no-link-text {
+ color: #999999;
+ padding: 0.25rem;
+ }
+
ul {
list-style: none;
margin: 0;