diff --git a/bigtop-manager-agent/src/main/java/org/apache/bigtop/manager/agent/grpc/service/SetupJdkServiceGrpcImpl.java b/bigtop-manager-agent/src/main/java/org/apache/bigtop/manager/agent/grpc/service/SetupJdkServiceGrpcImpl.java index 4a9994549..5edc6f066 100644 --- a/bigtop-manager-agent/src/main/java/org/apache/bigtop/manager/agent/grpc/service/SetupJdkServiceGrpcImpl.java +++ b/bigtop-manager-agent/src/main/java/org/apache/bigtop/manager/agent/grpc/service/SetupJdkServiceGrpcImpl.java @@ -26,7 +26,7 @@ import org.apache.bigtop.manager.grpc.generated.SetupJdkServiceGrpc; import org.apache.bigtop.manager.grpc.pojo.ClusterInfo; import org.apache.bigtop.manager.grpc.pojo.PackageInfo; -import org.apache.bigtop.manager.grpc.pojo.ToolInfo; +import org.apache.bigtop.manager.grpc.pojo.RepoInfo; import org.apache.bigtop.manager.stack.core.utils.LocalSettings; import org.apache.bigtop.manager.stack.core.utils.TarballUtils; import org.apache.bigtop.manager.stack.core.utils.linux.LinuxFileUtils; @@ -53,17 +53,16 @@ public void setup(SetupJdkRequest request, StreamObserver respons log.info("Setting up cluster jdk..."); ClusterInfo clusterInfo = LocalSettings.cluster(); - String toolsHome = clusterInfo.getRootDir() + "/tools"; + String dependenciesHome = clusterInfo.getRootDir() + "/dependencies"; String user = System.getProperty("user.name"); - LinuxFileUtils.createDirectories(toolsHome, user, user, Constants.PERMISSION_755, true); + LinuxFileUtils.createDirectories(dependenciesHome, user, user, Constants.PERMISSION_755, true); - String jdkHome = toolsHome + "/jdk"; - ToolInfo tool = LocalSettings.getTool("jdk8"); + String jdkHome = dependenciesHome + "/jdk"; + RepoInfo repoInfo = LocalSettings.repo("jdk8"); PackageInfo packageInfo = new PackageInfo(); - packageInfo.setUrl(tool.getBaseUrl()); - packageInfo.setName(tool.getPkgName()); - packageInfo.setChecksum(tool.getChecksum()); - TarballUtils.installPackage(null, toolsHome, jdkHome, packageInfo, 1); + packageInfo.setName(repoInfo.getPkgName()); + packageInfo.setChecksum(repoInfo.getChecksum()); + TarballUtils.installPackage(repoInfo.getBaseUrl(), dependenciesHome, jdkHome, packageInfo, 1); LinuxFileUtils.createDirectories(jdkHome, user, user, Constants.PERMISSION_755, true); SetupJdkReply reply = SetupJdkReply.newBuilder() diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/RepoPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/RepoPO.java index bd64fc49c..ae995fd7d 100644 --- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/RepoPO.java +++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/RepoPO.java @@ -43,4 +43,13 @@ public class RepoPO extends BasePO implements Serializable { @Column(name = "base_url") private String baseUrl; + + @Column(name = "pkg_name") + private String pkgName; + + @Column(name = "checksum") + private String checksum; + + @Column(name = "type") + private Integer type; } diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ToolPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ToolPO.java deleted file mode 100644 index b7e16ca9e..000000000 --- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ToolPO.java +++ /dev/null @@ -1,52 +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.dao.po; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -import jakarta.persistence.Column; -import jakarta.persistence.Id; -import jakarta.persistence.Table; -import java.io.Serializable; - -@Data -@EqualsAndHashCode(callSuper = true) -@Table(name = "tool") -public class ToolPO extends BasePO implements Serializable { - - @Id - @Column(name = "id") - private Long id; - - @Column(name = "name") - private String name; - - @Column(name = "base_url") - private String baseUrl; - - @Column(name = "pkg_name") - private String pkgName; - - @Column(name = "arch") - private String arch; - - @Column(name = "checksum") - private String checksum; -} diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/RepoDao.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/RepoDao.java index 32e4cb088..62870c848 100644 --- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/RepoDao.java +++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/RepoDao.java @@ -21,4 +21,9 @@ import org.apache.bigtop.manager.dao.po.RepoPO; -public interface RepoDao extends BaseDao {} +import org.apache.ibatis.annotations.Param; + +public interface RepoDao extends BaseDao { + + RepoPO findByName(@Param("name") String name); +} diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ToolDao.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ToolDao.java deleted file mode 100644 index b09f60ba7..000000000 --- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ToolDao.java +++ /dev/null @@ -1,29 +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 - * - * 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. - */ - -package org.apache.bigtop.manager.dao.repository; - -import org.apache.bigtop.manager.dao.po.ToolPO; - -import org.apache.ibatis.annotations.Param; - -public interface ToolDao extends BaseDao { - - ToolPO findByName(@Param("name") String name); -} diff --git a/bigtop-manager-dao/src/main/resources/mapper/mysql/RepoMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/mysql/RepoMapper.xml index fe0670ea9..f94f35a60 100644 --- a/bigtop-manager-dao/src/main/resources/mapper/mysql/RepoMapper.xml +++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/RepoMapper.xml @@ -24,6 +24,18 @@ - id, name, arch, base_url, type + id, name, arch, base_url, pkg_name, checksum, type - \ No newline at end of file + + ${alias}.id, ${alias}.name, ${alias}.arch, ${alias}.base_url, ${alias}.pkg_name, ${alias}.checksum, ${alias}.type + + + + diff --git a/bigtop-manager-dao/src/main/resources/mapper/mysql/ToolMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/mysql/ToolMapper.xml deleted file mode 100644 index bf95e5364..000000000 --- a/bigtop-manager-dao/src/main/resources/mapper/mysql/ToolMapper.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - id, name, base_url, pkg_name, arch, checksum - - - ${alias}.id, ${alias}.name, ${alias}.base_url, ${alias}.pkg_name, ${alias}.arch, ${alias}.checksum - - - - \ No newline at end of file diff --git a/bigtop-manager-dao/src/main/resources/mapper/postgresql/RepoMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/postgresql/RepoMapper.xml index fe0670ea9..f94f35a60 100644 --- a/bigtop-manager-dao/src/main/resources/mapper/postgresql/RepoMapper.xml +++ b/bigtop-manager-dao/src/main/resources/mapper/postgresql/RepoMapper.xml @@ -24,6 +24,18 @@ - id, name, arch, base_url, type + id, name, arch, base_url, pkg_name, checksum, type - \ No newline at end of file + + ${alias}.id, ${alias}.name, ${alias}.arch, ${alias}.base_url, ${alias}.pkg_name, ${alias}.checksum, ${alias}.type + + + + diff --git a/bigtop-manager-dao/src/main/resources/mapper/postgresql/ToolMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/postgresql/ToolMapper.xml deleted file mode 100644 index bf95e5364..000000000 --- a/bigtop-manager-dao/src/main/resources/mapper/postgresql/ToolMapper.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - id, name, base_url, pkg_name, arch, checksum - - - ${alias}.id, ${alias}.name, ${alias}.base_url, ${alias}.pkg_name, ${alias}.arch, ${alias}.checksum - - - - \ No newline at end of file diff --git a/bigtop-manager-grpc/src/main/java/org/apache/bigtop/manager/grpc/pojo/ClusterInfo.java b/bigtop-manager-grpc/src/main/java/org/apache/bigtop/manager/grpc/pojo/ClusterInfo.java index 358e646a4..957e0c868 100644 --- a/bigtop-manager-grpc/src/main/java/org/apache/bigtop/manager/grpc/pojo/ClusterInfo.java +++ b/bigtop-manager-grpc/src/main/java/org/apache/bigtop/manager/grpc/pojo/ClusterInfo.java @@ -20,8 +20,6 @@ import lombok.Data; -import java.util.List; - @Data public class ClusterInfo { @@ -30,6 +28,4 @@ public class ClusterInfo { private String userGroup; private String rootDir; - - private List tools; } diff --git a/bigtop-manager-grpc/src/main/java/org/apache/bigtop/manager/grpc/pojo/PackageInfo.java b/bigtop-manager-grpc/src/main/java/org/apache/bigtop/manager/grpc/pojo/PackageInfo.java index 4dada510c..ca8ace389 100644 --- a/bigtop-manager-grpc/src/main/java/org/apache/bigtop/manager/grpc/pojo/PackageInfo.java +++ b/bigtop-manager-grpc/src/main/java/org/apache/bigtop/manager/grpc/pojo/PackageInfo.java @@ -27,8 +27,6 @@ @NoArgsConstructor public class PackageInfo { - private String url; - private String name; private String checksum; diff --git a/bigtop-manager-grpc/src/main/java/org/apache/bigtop/manager/grpc/pojo/RepoInfo.java b/bigtop-manager-grpc/src/main/java/org/apache/bigtop/manager/grpc/pojo/RepoInfo.java index e92415b25..97eca2ac7 100644 --- a/bigtop-manager-grpc/src/main/java/org/apache/bigtop/manager/grpc/pojo/RepoInfo.java +++ b/bigtop-manager-grpc/src/main/java/org/apache/bigtop/manager/grpc/pojo/RepoInfo.java @@ -32,4 +32,10 @@ public class RepoInfo { private String arch; private String baseUrl; + + private String pkgName; + + private String checksum; + + private Integer type; } diff --git a/bigtop-manager-grpc/src/main/java/org/apache/bigtop/manager/grpc/pojo/ToolInfo.java b/bigtop-manager-grpc/src/main/java/org/apache/bigtop/manager/grpc/pojo/ToolInfo.java deleted file mode 100644 index 6069809e3..000000000 --- a/bigtop-manager-grpc/src/main/java/org/apache/bigtop/manager/grpc/pojo/ToolInfo.java +++ /dev/null @@ -1,35 +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.grpc.pojo; - -import lombok.Data; - -@Data -public class ToolInfo { - - private String name; - - private String baseUrl; - - private String pkgName; - - private String arch; - - private String checksum; -} diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/helper/JobCacheHelper.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/helper/JobCacheHelper.java index 6abf0f2c7..d02f4fb59 100644 --- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/helper/JobCacheHelper.java +++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/helper/JobCacheHelper.java @@ -25,21 +25,18 @@ import org.apache.bigtop.manager.dao.po.HostPO; import org.apache.bigtop.manager.dao.po.RepoPO; import org.apache.bigtop.manager.dao.po.ServiceConfigPO; -import org.apache.bigtop.manager.dao.po.ToolPO; import org.apache.bigtop.manager.dao.query.ComponentQuery; import org.apache.bigtop.manager.dao.repository.ClusterDao; import org.apache.bigtop.manager.dao.repository.ComponentDao; import org.apache.bigtop.manager.dao.repository.HostDao; import org.apache.bigtop.manager.dao.repository.RepoDao; import org.apache.bigtop.manager.dao.repository.ServiceConfigDao; -import org.apache.bigtop.manager.dao.repository.ToolDao; import org.apache.bigtop.manager.grpc.generated.JobCacheReply; import org.apache.bigtop.manager.grpc.generated.JobCacheRequest; import org.apache.bigtop.manager.grpc.generated.JobCacheServiceGrpc; import org.apache.bigtop.manager.grpc.payload.JobCachePayload; import org.apache.bigtop.manager.grpc.pojo.ClusterInfo; import org.apache.bigtop.manager.grpc.pojo.RepoInfo; -import org.apache.bigtop.manager.grpc.pojo.ToolInfo; import org.apache.bigtop.manager.server.exception.ServerException; import org.apache.bigtop.manager.server.grpc.GrpcClient; import org.apache.bigtop.manager.server.holder.SpringContextHolder; @@ -66,7 +63,6 @@ public class JobCacheHelper { private static RepoDao repoDao; private static HostDao hostDao; private static ComponentDao componentDao; - private static ToolDao toolDao; private static final AtomicBoolean INITIALIZED = new AtomicBoolean(false); @@ -76,7 +72,6 @@ private static void initialize() { repoDao = SpringContextHolder.getBean(RepoDao.class); hostDao = SpringContextHolder.getBean(HostDao.class); componentDao = SpringContextHolder.getBean(ComponentDao.class); - toolDao = SpringContextHolder.getBean(ToolDao.class); INITIALIZED.set(true); } @@ -132,25 +127,12 @@ private static void genClusterPayload(JobCachePayload payload, Long clusterId) { } ClusterPO clusterPO = clusterDao.findById(clusterId); - List toolPOList = toolDao.findAll(); ClusterInfo clusterInfo = new ClusterInfo(); clusterInfo.setName(clusterPO.getName()); clusterInfo.setUserGroup(clusterPO.getUserGroup()); clusterInfo.setRootDir(clusterPO.getRootDir()); - List toolInfoList = new ArrayList<>(); - for (ToolPO toolPO : toolPOList) { - ToolInfo toolInfo = new ToolInfo(); - toolInfo.setName(toolPO.getName()); - toolInfo.setBaseUrl(toolPO.getBaseUrl()); - toolInfo.setPkgName(toolPO.getPkgName()); - toolInfo.setArch(toolPO.getArch()); - toolInfo.setChecksum(toolPO.getChecksum()); - toolInfoList.add(toolInfo); - } - clusterInfo.setTools(toolInfoList); - Map> serviceConfigMap = payload.getConfigurations(); serviceConfigMap.putAll(getServiceConfigMap(clusterId)); @@ -180,6 +162,9 @@ private static void genGlobalPayload(JobCachePayload payload) { repoInfo.setName(repoPO.getName()); repoInfo.setArch(repoPO.getArch()); repoInfo.setBaseUrl(repoPO.getBaseUrl()); + repoInfo.setPkgName(repoPO.getPkgName()); + repoInfo.setChecksum(repoPO.getChecksum()); + repoInfo.setType(repoPO.getType()); repoList.add(repoInfo); }); diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/AbstractComponentTask.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/AbstractComponentTask.java index 3f50a4a15..9d141fc25 100644 --- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/AbstractComponentTask.java +++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/AbstractComponentTask.java @@ -127,7 +127,6 @@ private List convertPackageSpecificInfo(List packageInfoList = new ArrayList<>(); for (PackageDTO packageDTO : packageSpecificDTO.getPackages()) { PackageInfo packageInfo = new PackageInfo(); - packageInfo.setUrl(packageDTO.getUrl()); packageInfo.setName(packageDTO.getName()); packageInfo.setChecksum(packageDTO.getChecksum()); packageInfoList.add(packageInfo); diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/PackageDTO.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/PackageDTO.java index eb0c37ab1..8cabb51a8 100644 --- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/PackageDTO.java +++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/PackageDTO.java @@ -27,8 +27,6 @@ @NoArgsConstructor public class PackageDTO { - private String url; - private String name; private String checksum; diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/RepoDTO.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/RepoDTO.java index 28c1dd843..7fbc41eac 100644 --- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/RepoDTO.java +++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/RepoDTO.java @@ -34,4 +34,10 @@ public class RepoDTO { private String arch; private String baseUrl; + + private String pkgName; + + private String checksum; + + private Integer type; } diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/RepoVO.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/RepoVO.java index 6c3143b9f..7a49a2a93 100644 --- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/RepoVO.java +++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/RepoVO.java @@ -30,4 +30,10 @@ public class RepoVO { private String arch; private String baseUrl; + + private String pkgName; + + private String checksum; + + private Integer type; } diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/prometheus/PrometheusProxy.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/prometheus/PrometheusProxy.java index 079842075..a41cfc0a9 100644 --- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/prometheus/PrometheusProxy.java +++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/prometheus/PrometheusProxy.java @@ -436,15 +436,11 @@ private List convertList(List list) { private List convertList(List list, Integer multiply) { List resultList = getEmptyList(); - if (list == null) { - Collections.fill(resultList, ""); - } else { + if (list != null) { for (int i = 0; i < list.size(); i++) { BigDecimal value = list.get(i); if (value != null) { resultList.set(i, value.multiply(new BigDecimal(multiply)).toString()); - } else { - resultList.set(i, ""); } } } diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/HostServiceImpl.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/HostServiceImpl.java index 969b8977b..e726ae9b8 100644 --- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/HostServiceImpl.java +++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/HostServiceImpl.java @@ -28,7 +28,7 @@ import org.apache.bigtop.manager.dao.query.HostQuery; import org.apache.bigtop.manager.dao.repository.ComponentDao; import org.apache.bigtop.manager.dao.repository.HostDao; -import org.apache.bigtop.manager.dao.repository.ToolDao; +import org.apache.bigtop.manager.dao.repository.RepoDao; import org.apache.bigtop.manager.server.enums.ApiExceptionEnum; import org.apache.bigtop.manager.server.enums.HealthyStatusEnum; import org.apache.bigtop.manager.server.enums.HostAuthTypeEnum; @@ -47,6 +47,7 @@ import org.apache.bigtop.manager.server.utils.RemoteSSHUtils; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -80,7 +81,7 @@ public class HostServiceImpl implements HostService { private ComponentDao componentDao; @Resource - private ToolDao toolDao; + private RepoDao repoDao; private final List installedStatus = new CopyOnWriteArrayList<>(); @@ -273,7 +274,7 @@ public Boolean checkDuplicate(HostDTO hostDTO) { public void installDependencies(HostDTO hostDTO, String hostname, InstalledStatusVO installedStatusVO) { String path = hostDTO.getAgentDir(); - String repoUrl = toolDao.findByName("agent").getBaseUrl(); + String repoUrl = repoDao.findByName("agent").getBaseUrl(); int grpcPort = hostDTO.getGrpcPort(); String command; @@ -340,7 +341,7 @@ private void setDefaultValues(HostDTO hostDTO) { if (hostDTO.getSshPort() == null) { hostDTO.setSshPort(DEFAULT_SSH_PORT); } - if (hostDTO.getAgentDir() == null) { + if (StringUtils.isBlank(hostDTO.getAgentDir())) { hostDTO.setAgentDir(DEFAULT_AGENT_DIR); } } diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/model/PackageModel.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/model/PackageModel.java index df9a8f45a..ca9b2bea3 100644 --- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/model/PackageModel.java +++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/model/PackageModel.java @@ -27,8 +27,6 @@ @XmlAccessorType(XmlAccessType.FIELD) public class PackageModel { - private String url; - private String name; private String checksum; diff --git a/bigtop-manager-server/src/main/resources/ddl/MySQL-DDL-CREATE.sql b/bigtop-manager-server/src/main/resources/ddl/MySQL-DDL-CREATE.sql index 9ab4f66fe..e91185358 100644 --- a/bigtop-manager-server/src/main/resources/ddl/MySQL-DDL-CREATE.sql +++ b/bigtop-manager-server/src/main/resources/ddl/MySQL-DDL-CREATE.sql @@ -127,6 +127,9 @@ CREATE TABLE `repo` `name` VARCHAR(32) DEFAULT NULL, `arch` VARCHAR(32) DEFAULT NULL, `base_url` VARCHAR(255) DEFAULT NULL, + `pkg_name` VARCHAR(64) DEFAULT NULL, + `checksum` VARCHAR(255) DEFAULT NULL, + `type` INTEGER DEFAULT NULL COMMENT '1-service, 2-dependency', `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP, `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `create_by` BIGINT, @@ -331,29 +334,20 @@ CREATE TABLE `llm_chat_message` KEY `idx_user_id` (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -CREATE TABLE `tool` -( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `name` VARCHAR(64) DEFAULT NULL, - `base_url` VARCHAR(255) DEFAULT NULL, - `pkg_name` VARCHAR(64) DEFAULT NULL, - `arch` VARCHAR(64) DEFAULT NULL, - `checksum` VARCHAR(255) DEFAULT NULL, - `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP, - `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `create_by` BIGINT, - `update_by` BIGINT, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -- Adding default admin user INSERT INTO user (username, password, nickname, status) VALUES ('admin', '$2b$10$bdTvADKA0dSJYT3wMU3LFeIEnxzKQHeWN3XcHJ5jQpsIo7ju1U5Yi', 'Administrator', true); -INSERT INTO repo (name, arch, base_url) +INSERT INTO repo (name, arch, base_url, pkg_name, checksum, type) VALUES -('Service tarballs', 'x86_64', 'http://your-repo/'), -('Service tarballs', 'aarch64', 'http://your-repo/'); +('general', 'x86_64,aarch64', 'http://your-repo/', null, null, 1), +('mysql', 'x86_64,aarch64', 'https://dev.mysql.com/get/Downloads/MySQL-8.0/', null, null, 1), +('grafana', 'x86_64,aarch64', 'https://dl.grafana.com/oss/release/', null, null, 1), +('agent', 'x86_64,aarch64', 'http://your-repo/', 'bigtop-manager-agent.tar.gz', null, 2), +('jdk8', 'x86_64', 'https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u452-b09/', 'OpenJDK8U-jdk_x64_linux_hotspot_8u452b09.tar.gz', 'SHA-256:9448308a21841960a591b47927cf2d44fdc4c0533a5f8111a4b243a6bafb5d27', 2), +('jdk8', 'aarch64', 'https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u452-b09/', 'OpenJDK8U-jdk_aarch64_linux_hotspot_8u452b09.tar.gz', 'SHA-256:d8a1aecea0913b7a1e0d737ba6f7ea99059b3f6fd17813d4a24e8b3fc3aee278', 2), +('mysql-connector-j', 'x86_64,aarch64', 'https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/8.0.33/', 'mysql-connector-j-8.0.33.jar', 'SHA-256:e2a3b2fc726a1ac64e998585db86b30fa8bf3f706195b78bb77c5f99bf877bd9', 2); + -- Adding default llm platform INSERT INTO llm_platform (credential, name, support_models) @@ -378,10 +372,3 @@ WHERE `name` = 'QianFan'; UPDATE `llm_platform` SET `desc` = 'Get your API Key in https://platform.deepseek.com' WHERE `name` = 'DeepSeek'; - -INSERT INTO tool (name, base_url, pkg_name, arch, checksum) -VALUES -('agent', 'http://your-repo/', 'bigtop-manager-agent.tar.gz', 'x86_64,aarch64', null), -('jdk8', 'https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u452-b09/', 'OpenJDK8U-jdk_x64_linux_hotspot_8u452b09.tar.gz', 'x86_64', 'SHA-256:9448308a21841960a591b47927cf2d44fdc4c0533a5f8111a4b243a6bafb5d27'), -('jdk8', 'https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u452-b09/', 'OpenJDK8U-jdk_aarch64_linux_hotspot_8u452b09.tar.gz', 'aarch64', 'SHA-256:d8a1aecea0913b7a1e0d737ba6f7ea99059b3f6fd17813d4a24e8b3fc3aee278'), -('mysql-connector-j', 'https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/8.0.33/', 'mysql-connector-j-8.0.33.jar', 'x86_64,aarch64', 'SHA-256:e2a3b2fc726a1ac64e998585db86b30fa8bf3f706195b78bb77c5f99bf877bd9'); diff --git a/bigtop-manager-server/src/main/resources/ddl/PostgreSQL-DDL-CREATE.sql b/bigtop-manager-server/src/main/resources/ddl/PostgreSQL-DDL-CREATE.sql index 76eee3644..71001cf41 100644 --- a/bigtop-manager-server/src/main/resources/ddl/PostgreSQL-DDL-CREATE.sql +++ b/bigtop-manager-server/src/main/resources/ddl/PostgreSQL-DDL-CREATE.sql @@ -121,6 +121,9 @@ CREATE TABLE repo name VARCHAR(32) DEFAULT NULL, arch VARCHAR(32) DEFAULT NULL, base_url VARCHAR(255) DEFAULT NULL, + pkg_name VARCHAR(64) DEFAULT NULL, + checksum VARCHAR(255) DEFAULT NULL, + type INT DEFAULT NULL, create_time TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP, update_time TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP, create_by BIGINT, @@ -128,6 +131,8 @@ CREATE TABLE repo PRIMARY KEY (id) ); +COMMENT ON COLUMN repo.type IS '1-service, 2-dependency'; + CREATE TABLE service ( id BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY, @@ -340,31 +345,21 @@ CREATE TABLE llm_chat_message PRIMARY KEY (id) ); -CREATE TABLE tool -( - id BIGINT CHECK (id > 0) NOT NULL GENERATED ALWAYS AS IDENTITY, - name VARCHAR(64) NOT NULL, - base_url VARCHAR(255) DEFAULT NULL, - pkg_name VARCHAR(64) DEFAULT NULL, - arch VARCHAR(64) DEFAULT NULL, - checksum VARCHAR(255) DEFAULT NULL, - create_time TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP, - update_time TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP, - create_by BIGINT, - update_by BIGINT, - PRIMARY KEY (id) -); - CREATE INDEX idx_thread_id ON llm_chat_message (thread_id); CREATE INDEX idx_message_user_id ON llm_chat_message (user_id); INSERT INTO "user" (username, password, nickname, status) VALUES ('admin', '$2b$10$bdTvADKA0dSJYT3wMU3LFeIEnxzKQHeWN3XcHJ5jQpsIo7ju1U5Yi', 'Administrator', true); -INSERT INTO repo (name, arch, base_url) +INSERT INTO repo (name, arch, base_url, pkg_name, checksum, type) VALUES -('Service tarballs', 'x86_64', 'http://your-repo/'), -('Service tarballs', 'aarch64', 'http://your-repo/'); +('general', 'x86_64,aarch64', 'http://your-repo/', null, null, 1), +('mysql', 'x86_64,aarch64', 'https://dev.mysql.com/get/Downloads/MySQL-8.0/', null, null, 1), +('grafana', 'x86_64,aarch64', 'https://dl.grafana.com/oss/release/', null, null, 1), +('agent', 'x86_64,aarch64', 'http://your-repo/', 'bigtop-manager-agent.tar.gz', null, 2), +('jdk8', 'x86_64', 'https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u452-b09/', 'OpenJDK8U-jdk_x64_linux_hotspot_8u452b09.tar.gz', 'SHA-256:9448308a21841960a591b47927cf2d44fdc4c0533a5f8111a4b243a6bafb5d27', 2), +('jdk8', 'aarch64', 'https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u452-b09/', 'OpenJDK8U-jdk_aarch64_linux_hotspot_8u452b09.tar.gz', 'SHA-256:d8a1aecea0913b7a1e0d737ba6f7ea99059b3f6fd17813d4a24e8b3fc3aee278', 2), +('mysql-connector-j', 'x86_64,aarch64', 'https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/8.0.33/', 'mysql-connector-j-8.0.33.jar', 'SHA-256:e2a3b2fc726a1ac64e998585db86b30fa8bf3f706195b78bb77c5f99bf877bd9', 2); INSERT INTO llm_platform (credential, name, support_models) VALUES @@ -388,10 +383,3 @@ WHERE "name" = 'QianFan'; UPDATE llm_platform SET "desc" = 'Get your API Key in https://platform.deepseek.com' WHERE "name" = 'DeepSeek'; - -INSERT INTO tool (name, base_url, pkg_name, arch, checksum) -VALUES -('agent', 'http://your-repo/', 'bigtop-manager-agent.tar.gz', 'x86_64,aarch64', null), -('jdk8', 'https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u452-b09/', 'OpenJDK8U-jdk_x64_linux_hotspot_8u452b09.tar.gz', 'x86_64', 'SHA-256:9448308a21841960a591b47927cf2d44fdc4c0533a5f8111a4b243a6bafb5d27'), -('jdk8', 'https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u452-b09/', 'OpenJDK8U-jdk_aarch64_linux_hotspot_8u452b09.tar.gz', 'aarch64', 'SHA-256:d8a1aecea0913b7a1e0d737ba6f7ea99059b3f6fd17813d4a24e8b3fc3aee278'), -('mysql-connector-j', 'https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/8.0.33/', 'mysql-connector-j-8.0.33.jar', 'x86_64,aarch64', 'SHA-256:e2a3b2fc726a1ac64e998585db86b30fa8bf3f706195b78bb77c5f99bf877bd9'); diff --git a/bigtop-manager-server/src/main/resources/stacks/infra/1.0.0/services/grafana/metainfo.xml b/bigtop-manager-server/src/main/resources/stacks/infra/1.0.0/services/grafana/metainfo.xml index ee540d948..45465e026 100644 --- a/bigtop-manager-server/src/main/resources/stacks/infra/1.0.0/services/grafana/metainfo.xml +++ b/bigtop-manager-server/src/main/resources/stacks/infra/1.0.0/services/grafana/metainfo.xml @@ -54,7 +54,6 @@ - https://dl.grafana.com/oss/release grafana-11.4.0.linux-amd64.tar.gz SHA-256:3550c73f4455435642976e82cc89aa354f076a75b766a408781107f4f5d4744c @@ -66,7 +65,6 @@ - https://dl.grafana.com/oss/release grafana-11.4.0.linux-arm64.tar.gz SHA-256:c978b46a61d92883119131641c03b8a1323a284e74ab9a20e7e48207dc1a11e1 diff --git a/bigtop-manager-server/src/main/resources/stacks/infra/1.0.0/services/mysql/metainfo.xml b/bigtop-manager-server/src/main/resources/stacks/infra/1.0.0/services/mysql/metainfo.xml index b3a38ae2f..302df203c 100644 --- a/bigtop-manager-server/src/main/resources/stacks/infra/1.0.0/services/mysql/metainfo.xml +++ b/bigtop-manager-server/src/main/resources/stacks/infra/1.0.0/services/mysql/metainfo.xml @@ -53,7 +53,6 @@ - https://dev.mysql.com/get/Downloads/MySQL-8.0 mysql-8.0.40-linux-glibc2.28-x86_64.tar.xz MD5:dcf2702f953d1969be44083f4f063f18 @@ -65,7 +64,6 @@ - https://dev.mysql.com/get/Downloads/MySQL-8.0 mysql-8.0.40-linux-glibc2.28-aarch64.tar.xz MD5:a79f41ce62784a1a0e081c76116008de diff --git a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/hive/HiveMetastoreScript.java b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/hive/HiveMetastoreScript.java index 065a6d2a4..7da71badc 100644 --- a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/hive/HiveMetastoreScript.java +++ b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/hive/HiveMetastoreScript.java @@ -21,7 +21,7 @@ import org.apache.bigtop.manager.common.constants.Constants; import org.apache.bigtop.manager.common.constants.MessageConstants; import org.apache.bigtop.manager.common.shell.ShellResult; -import org.apache.bigtop.manager.grpc.pojo.ToolInfo; +import org.apache.bigtop.manager.grpc.pojo.RepoInfo; import org.apache.bigtop.manager.stack.core.exception.StackException; import org.apache.bigtop.manager.stack.core.spi.param.Params; import org.apache.bigtop.manager.stack.core.spi.script.AbstractServerScript; @@ -34,7 +34,6 @@ import com.google.auto.service.AutoService; import lombok.extern.slf4j.Slf4j; -import java.io.File; import java.io.IOException; import java.text.MessageFormat; import java.util.Properties; @@ -115,9 +114,8 @@ public ShellResult status(Params params) { } private void downloadMySQLJdbcDriver(Params params) { - ToolInfo tool = LocalSettings.getTool("mysql-connector-j"); - String downloadUrl = tool.getBaseUrl() + File.separator + tool.getPkgName(); - FileDownloader.download(downloadUrl, params.stackHome(), tool); + RepoInfo repoInfo = LocalSettings.repo("mysql-connector-j"); + FileDownloader.download(params.stackHome(), repoInfo); LinuxFileUtils.moveFile(params.stackHome() + "/mysql-connector-j-8.0.33.jar", params.serviceHome() + "/lib/"); LinuxFileUtils.updateOwner(params.serviceHome() + "/lib", params.user(), params.group(), true); LinuxFileUtils.updatePermissions(params.serviceHome() + "/lib", Constants.PERMISSION_755, true); diff --git a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/spi/param/BaseParams.java b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/spi/param/BaseParams.java index 80693276c..d47a3c8df 100644 --- a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/spi/param/BaseParams.java +++ b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/spi/param/BaseParams.java @@ -26,7 +26,6 @@ import org.apache.bigtop.manager.grpc.pojo.RepoInfo; import org.apache.bigtop.manager.grpc.pojo.TemplateInfo; import org.apache.bigtop.manager.stack.core.annotations.GlobalParams; -import org.apache.bigtop.manager.stack.core.exception.StackException; import org.apache.bigtop.manager.stack.core.utils.LocalSettings; import lombok.NoArgsConstructor; @@ -172,19 +171,14 @@ public String group() { @Override public RepoInfo repo() { - return LocalSettings.repos().stream() - .filter(r -> OSDetection.getArch().equals(r.getArch())) - .findFirst() - .orElseThrow(() -> new StackException( - "Cannot find repo for os: [{0}] and arch: [{1}]", OSDetection.getOS(), OSDetection.getArch())); + return LocalSettings.repo("general"); } @Override public List packages() { - RepoInfo repo = this.repo(); List packageInfoList = new ArrayList<>(); for (PackageSpecificInfo packageSpecificInfo : this.payload.getPackageSpecifics()) { - if (!packageSpecificInfo.getArch().contains(repo.getArch())) { + if (!packageSpecificInfo.getArch().contains(OSDetection.getArch())) { continue; } @@ -202,7 +196,7 @@ public List templates() { @Override public String javaHome() { String root = LocalSettings.cluster().getRootDir(); - return MessageFormat.format("{0}/tools/jdk", root); + return MessageFormat.format("{0}/dependencies/jdk", root); } @Override diff --git a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/tarball/FileDownloader.java b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/tarball/FileDownloader.java index 1e5608ba3..2d6234958 100644 --- a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/tarball/FileDownloader.java +++ b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/tarball/FileDownloader.java @@ -19,7 +19,7 @@ package org.apache.bigtop.manager.stack.core.tarball; import org.apache.bigtop.manager.grpc.pojo.PackageInfo; -import org.apache.bigtop.manager.grpc.pojo.ToolInfo; +import org.apache.bigtop.manager.grpc.pojo.RepoInfo; import org.apache.bigtop.manager.stack.core.exception.StackException; import lombok.extern.slf4j.Slf4j; @@ -33,12 +33,12 @@ @Slf4j public class FileDownloader { - public static void download(String remoteUrl, String saveDir, ToolInfo toolInfo) { + public static void download(String saveDir, RepoInfo repoInfo) { PackageInfo packageInfo = new PackageInfo(); - packageInfo.setUrl(toolInfo.getBaseUrl()); - packageInfo.setName(toolInfo.getPkgName()); - packageInfo.setChecksum(toolInfo.getChecksum()); + packageInfo.setName(repoInfo.getPkgName()); + packageInfo.setChecksum(repoInfo.getChecksum()); + String remoteUrl = repoInfo.getBaseUrl() + File.separator + repoInfo.getPkgName(); download(remoteUrl, saveDir, packageInfo); } diff --git a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/utils/LocalSettings.java b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/utils/LocalSettings.java index 7e90001d6..f86905998 100644 --- a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/utils/LocalSettings.java +++ b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/utils/LocalSettings.java @@ -24,7 +24,6 @@ import org.apache.bigtop.manager.common.utils.os.OSDetection; import org.apache.bigtop.manager.grpc.pojo.ClusterInfo; import org.apache.bigtop.manager.grpc.pojo.RepoInfo; -import org.apache.bigtop.manager.grpc.pojo.ToolInfo; import org.apache.bigtop.manager.stack.core.exception.StackException; import com.fasterxml.jackson.core.type.TypeReference; @@ -97,6 +96,18 @@ public static List packages() { return List.of(); } + public static RepoInfo repo(String name) { + String arch = OSDetection.getArch(); + List repoInfoList = repos(); + for (RepoInfo repoInfo : repoInfoList) { + if (repoInfo.getName().equals(name) && repoInfo.getArch().contains(arch)) { + return repoInfo; + } + } + log.error("Cannot find repo: [{}], arch: [{}]", name, arch); + throw new StackException("Repo not found: " + name); + } + public static List repos() { List repoInfoList = List.of(); File file = createFile(ProjectPathUtils.getAgentCachePath() + CacheFiles.REPOS_INFO); @@ -115,22 +126,6 @@ public static ClusterInfo cluster() { return clusterInfo; } - public static ToolInfo getTool(String name) { - return getTool(name, OSDetection.getArch()); - } - - public static ToolInfo getTool(String name, String arch) { - ClusterInfo clusterInfo = cluster(); - for (ToolInfo toolInfo : clusterInfo.getTools()) { - if (toolInfo.getName().equals(name) && toolInfo.getArch().contains(arch)) { - return toolInfo; - } - } - - log.error("Cannot find tool: [{}] for arch: [{}]", name, arch); - throw new StackException("Tool not found: " + name); - } - protected static File createFile(String fileName) { return new File(fileName); } diff --git a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/utils/TarballUtils.java b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/utils/TarballUtils.java index bed366e6f..1939cda28 100644 --- a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/utils/TarballUtils.java +++ b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/utils/TarballUtils.java @@ -22,8 +22,6 @@ import org.apache.bigtop.manager.stack.core.tarball.FileDownloader; import org.apache.bigtop.manager.stack.core.tarball.TarballExtractor; -import org.apache.commons.lang3.StringUtils; - import lombok.extern.slf4j.Slf4j; import java.io.File; @@ -40,9 +38,7 @@ public static void installPackage( return; } - String remoteUrl = StringUtils.isEmpty(packageInfo.getUrl()) - ? repoUrl + File.separator + packageInfo.getName() - : packageInfo.getUrl() + File.separator + packageInfo.getName(); + String remoteUrl = repoUrl + File.separator + packageInfo.getName(); File localFile = new File(stackHome + File.separator + packageInfo.getName()); FileDownloader.download(remoteUrl, stackHome, packageInfo); diff --git a/bigtop-manager-stack/bigtop-manager-stack-core/src/test/java/org/apache/bigtop/manager/stack/core/spi/param/BaseParamsTest.java b/bigtop-manager-stack/bigtop-manager-stack-core/src/test/java/org/apache/bigtop/manager/stack/core/spi/param/BaseParamsTest.java index 782e6d36f..6300a47c2 100644 --- a/bigtop-manager-stack/bigtop-manager-stack-core/src/test/java/org/apache/bigtop/manager/stack/core/spi/param/BaseParamsTest.java +++ b/bigtop-manager-stack/bigtop-manager-stack-core/src/test/java/org/apache/bigtop/manager/stack/core/spi/param/BaseParamsTest.java @@ -40,6 +40,7 @@ import java.util.Map; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mockStatic; @ExtendWith(MockitoExtension.class) @@ -58,15 +59,17 @@ public class BaseParamsTest { @BeforeEach public void setUp() { List repos = new ArrayList<>(); - repos.add(new RepoInfo("repo2", "mockArch", "testURL")); - repos.add(new RepoInfo("repo3", "mockArch", "testURL")); + RepoInfo general = new RepoInfo("general", "mockArch", "testURL", "testPkgName", "testChecksum", 1); + RepoInfo test = new RepoInfo("test", "mockArch", "testURL", "testPkgName", "testChecksum", 1); + repos.add(general); + repos.add(test); List arch = new ArrayList<>(); arch.add("mockArch"); List packages = new ArrayList<>(); - packages.add(new PackageInfo(null, "package1", "testChecksum1")); - packages.add(new PackageInfo(null, "package2", "testChecksum2")); + packages.add(new PackageInfo("package1", "testChecksum1")); + packages.add(new PackageInfo("package2", "testChecksum2")); List packageSpecifics = new ArrayList<>(); PackageSpecificInfo packageSpecific = new PackageSpecificInfo(); @@ -94,6 +97,7 @@ public void setUp() { osDetectionMockedStatic = mockStatic(OSDetection.class); netUtilsMockedStatic = mockStatic(NetUtils.class); netUtilsMockedStatic.when(NetUtils::getHostname).thenReturn("mockHostname"); + localSettingsMockedStatic.when(() -> LocalSettings.repo(any())).thenReturn(general); localSettingsMockedStatic.when(LocalSettings::repos).thenReturn(repos); localSettingsMockedStatic.when(LocalSettings::cluster).thenReturn(clusterInfo); osDetectionMockedStatic.when(OSDetection::getArch).thenReturn("mockArch"); @@ -154,7 +158,7 @@ public void testGroup() { @Test public void testRepo() { RepoInfo repo = mockBaseParams.repo(); - assertEquals("repo2", repo.getName()); + assertEquals("general", repo.getName()); assertEquals("mockArch", repo.getArch()); } @@ -178,7 +182,7 @@ public void testTemplates() { @Test public void testJavaHome() { String javaHome = mockBaseParams.javaHome(); - assertEquals("/mockRoot/tools/jdk", javaHome); + assertEquals("/mockRoot/dependencies/jdk", javaHome); } @Test diff --git a/bigtop-manager-stack/bigtop-manager-stack-core/src/test/java/org/apache/bigtop/manager/stack/core/utils/LocalSettingsTest.java b/bigtop-manager-stack/bigtop-manager-stack-core/src/test/java/org/apache/bigtop/manager/stack/core/utils/LocalSettingsTest.java index b5f31d454..73d0ca87c 100644 --- a/bigtop-manager-stack/bigtop-manager-stack-core/src/test/java/org/apache/bigtop/manager/stack/core/utils/LocalSettingsTest.java +++ b/bigtop-manager-stack/bigtop-manager-stack-core/src/test/java/org/apache/bigtop/manager/stack/core/utils/LocalSettingsTest.java @@ -174,8 +174,8 @@ public void testUsers() { @Test public void testRepos() { - RepoInfo repo1 = new RepoInfo("repo1", "x86_64", "http://repo1.com"); - RepoInfo repo2 = new RepoInfo("repo2", "arch64", "http://repo2.com"); + RepoInfo repo1 = new RepoInfo("repo1", "x86_64", "http://repo1.com", "pkg", "MD5:123", 1); + RepoInfo repo2 = new RepoInfo("repo2", "arch64", "http://repo2.com", "pkg", "MD5:123", 1); List repoInfoList = List.of(repo1, repo2); File file = mock(File.class); @@ -190,8 +190,8 @@ public void testRepos() { localSettingsMockedStatic.when(LocalSettings::repos).thenCallRealMethod(); List expectedRepoInfoList = List.of( - new RepoInfo("repo1", "x86_64", "http://repo1.com"), - new RepoInfo("repo2", "arch64", "http://repo2.com")); + new RepoInfo("repo1", "x86_64", "http://repo1.com", "pkg", "MD5:123", 1), + new RepoInfo("repo2", "arch64", "http://repo2.com", "pkg", "MD5:123", 1)); assertEquals(expectedRepoInfoList, LocalSettings.repos()); } diff --git a/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/grafana/GrafanaParams.java b/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/grafana/GrafanaParams.java index 692fa7375..22a215ef1 100644 --- a/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/grafana/GrafanaParams.java +++ b/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/grafana/GrafanaParams.java @@ -19,6 +19,7 @@ package org.apache.bigtop.manager.stack.infra.v1_0_0.grafana; import org.apache.bigtop.manager.grpc.payload.ComponentCommandPayload; +import org.apache.bigtop.manager.grpc.pojo.RepoInfo; import org.apache.bigtop.manager.stack.core.annotations.GlobalParams; import org.apache.bigtop.manager.stack.core.spi.param.Params; import org.apache.bigtop.manager.stack.core.utils.LocalSettings; @@ -138,11 +139,6 @@ public Map dashboards() { return configuration; } - @Override - public String getServiceName() { - return "grafana"; - } - public List getClusters() { if (getClusterHosts() == null) { return null; @@ -181,4 +177,14 @@ public void setDashboards() { globalParamsMap.put("default_host_name", defaultHost); } } + + @Override + public RepoInfo repo() { + return LocalSettings.repo("grafana"); + } + + @Override + public String getServiceName() { + return "grafana"; + } } diff --git a/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/mysql/MySQLParams.java b/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/mysql/MySQLParams.java index b7bc49b08..4ca7cf006 100644 --- a/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/mysql/MySQLParams.java +++ b/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/mysql/MySQLParams.java @@ -19,6 +19,7 @@ package org.apache.bigtop.manager.stack.infra.v1_0_0.mysql; import org.apache.bigtop.manager.grpc.payload.ComponentCommandPayload; +import org.apache.bigtop.manager.grpc.pojo.RepoInfo; import org.apache.bigtop.manager.stack.core.annotations.GlobalParams; import org.apache.bigtop.manager.stack.core.spi.param.Params; import org.apache.bigtop.manager.stack.core.utils.LocalSettings; @@ -78,6 +79,11 @@ public Map myCnf() { return myCnf; } + @Override + public RepoInfo repo() { + return LocalSettings.repo("mysql"); + } + @Override public String getServiceName() { return "mysql";