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 7e70b77c BIGTOP-4414: Move tool info to database (#214)
7e70b77c is described below
commit 7e70b77ca18f262fa8e1d2658531714d0d2d4709
Author: Zhiguo Wu <[email protected]>
AuthorDate: Sun Apr 20 23:29:03 2025 +0800
BIGTOP-4414: Move tool info to database (#214)
---
.../grpc/service/SetupJdkServiceGrpcImpl.java | 51 +++-------------------
.../org/apache/bigtop/manager/dao/po/RepoPO.java | 3 --
.../manager/dao/po/{RepoPO.java => ToolPO.java} | 17 +++++---
.../bigtop/manager/dao/repository/ToolDao.java | 15 ++-----
.../bigtop/manager/grpc/pojo/ClusterInfo.java | 4 ++
.../apache/bigtop/manager/grpc/pojo/RepoInfo.java | 2 -
.../grpc/pojo/{ClusterInfo.java => ToolInfo.java} | 10 +++--
.../server/command/helper/JobCacheHelper.java | 19 +++++++-
.../bigtop/manager/server/model/dto/RepoDTO.java | 2 -
.../server/service/impl/HostServiceImpl.java | 4 +-
.../src/main/resources/ddl/MySQL-DDL-CREATE.sql | 34 +++++++++++----
.../main/resources/ddl/PostgreSQL-DDL-CREATE.sql | 36 ++++++++++-----
.../stacks/bigtop/3.3.0/services/flink/order.json | 2 +-
.../bigtop/v3_3_0/hive/HiveMetastoreScript.java | 10 +++--
.../stack/bigtop/v3_3_0/tez/TezClientScript.java | 4 +-
.../manager/stack/core/spi/param/BaseParams.java | 3 +-
...{TarballDownloader.java => FileDownloader.java} | 12 ++++-
.../manager/stack/core/utils/LocalSettings.java | 25 ++++++++---
.../manager/stack/core/utils/TarballUtils.java | 4 +-
.../stack/core/spi/param/BaseParamsTest.java | 6 +--
.../stack/core/utils/LocalSettingsTest.java | 8 ++--
docs/en/cluster.md | 4 +-
docs/en/release.md | 26 +++++++----
docs/zh/cluster.md | 4 +-
docs/zh/release.md | 26 +++++++----
25 files changed, 191 insertions(+), 140 deletions(-)
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 bdb0d048..4a999454 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
@@ -21,13 +21,12 @@ package org.apache.bigtop.manager.agent.grpc.service;
import org.apache.bigtop.manager.common.constants.Constants;
import org.apache.bigtop.manager.common.constants.MessageConstants;
import org.apache.bigtop.manager.common.utils.Environments;
-import org.apache.bigtop.manager.common.utils.os.OSDetection;
import org.apache.bigtop.manager.grpc.generated.SetupJdkReply;
import org.apache.bigtop.manager.grpc.generated.SetupJdkRequest;
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.RepoInfo;
+import org.apache.bigtop.manager.grpc.pojo.ToolInfo;
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;
@@ -36,8 +35,6 @@ import io.grpc.stub.StreamObserver;
import lombok.extern.slf4j.Slf4j;
import net.devh.boot.grpc.server.service.GrpcService;
-import java.text.MessageFormat;
-
@Slf4j
@GrpcService
public class SetupJdkServiceGrpcImpl extends
SetupJdkServiceGrpc.SetupJdkServiceImplBase {
@@ -55,26 +52,18 @@ public class SetupJdkServiceGrpcImpl extends
SetupJdkServiceGrpc.SetupJdkService
}
log.info("Setting up cluster jdk...");
- String arch = OSDetection.getArch();
- String pkgName = getPkgName(arch);
- String checksum = getChecksum(arch);
-
- PackageInfo packageInfo = new PackageInfo();
- packageInfo.setName(pkgName);
- packageInfo.setChecksum(checksum);
-
ClusterInfo clusterInfo = LocalSettings.cluster();
- RepoInfo repoInfo = LocalSettings.repos().stream()
- .filter(r -> arch.equals(r.getArch()) && r.getType() == 2)
- .findFirst()
- .orElseThrow(() -> new RuntimeException(
- "Cannot find repo for os: [" + OSDetection.getOS()
+ "] and arch: [" + arch + "]"));
String toolsHome = clusterInfo.getRootDir() + "/tools";
String user = System.getProperty("user.name");
LinuxFileUtils.createDirectories(toolsHome, user, user,
Constants.PERMISSION_755, true);
String jdkHome = toolsHome + "/jdk";
- TarballUtils.installPackage(repoInfo.getBaseUrl(), toolsHome,
jdkHome, packageInfo, 1);
+ ToolInfo tool = LocalSettings.getTool("jdk8");
+ PackageInfo packageInfo = new PackageInfo();
+ packageInfo.setUrl(tool.getBaseUrl());
+ packageInfo.setName(tool.getPkgName());
+ packageInfo.setChecksum(tool.getChecksum());
+ TarballUtils.installPackage(null, toolsHome, jdkHome, packageInfo,
1);
LinuxFileUtils.createDirectories(jdkHome, user, user,
Constants.PERMISSION_755, true);
SetupJdkReply reply = SetupJdkReply.newBuilder()
@@ -87,30 +76,4 @@ public class SetupJdkServiceGrpcImpl extends
SetupJdkServiceGrpc.SetupJdkService
responseObserver.onError(e);
}
}
-
- private String getPkgName(String arch) {
- String replacedArch =
- switch (arch) {
- case "x86_64" -> "x64";
- case "arm64", "aarch64" -> "aarch64";
- default -> {
- log.error("Unsupported architecture: {}", arch);
- throw new IllegalArgumentException("Unsupported
architecture: " + arch);
- }
- };
- String pkgName = MessageFormat.format("jdk-8u431-linux-{0}.tar.gz",
replacedArch);
- log.debug("Generated package name: {}", pkgName);
- return pkgName;
- }
-
- private String getChecksum(String arch) {
- return switch (arch) {
- case "x64", "x86_64" ->
"SHA-256:b396978a716b7d23ccccabfe5c47c3b75d2434d7f8f7af690bc648172382720d";
- case "arm64", "aarch64" ->
"SHA-256:e68d3e31ffcf7f05a4de65d04974843073bdff238bb6524adb272de9e616be7c";
- default -> {
- log.error("Unknown arch for jdk: {}", arch);
- throw new IllegalArgumentException("Unknown arch for jdk: " +
arch);
- }
- };
- }
}
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 a4e0ec8f..bd64fc49 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,7 +43,4 @@ public class RepoPO extends BasePO implements Serializable {
@Column(name = "base_url")
private String baseUrl;
-
- @Column(name = "type")
- private Integer type;
}
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/ToolPO.java
similarity index 86%
copy from
bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/RepoPO.java
copy to
bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ToolPO.java
index a4e0ec8f..b7e16ca9 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/ToolPO.java
@@ -28,8 +28,8 @@ import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = true)
-@Table(name = "repo")
-public class RepoPO extends BasePO implements Serializable {
+@Table(name = "tool")
+public class ToolPO extends BasePO implements Serializable {
@Id
@Column(name = "id")
@@ -38,12 +38,15 @@ public class RepoPO extends BasePO implements Serializable {
@Column(name = "name")
private String name;
- @Column(name = "arch")
- private String arch;
-
@Column(name = "base_url")
private String baseUrl;
- @Column(name = "type")
- private Integer type;
+ @Column(name = "pkg_name")
+ private String pkgName;
+
+ @Column(name = "arch")
+ private String arch;
+
+ @Column(name = "checksum")
+ private String checksum;
}
diff --git
a/bigtop-manager-grpc/src/main/java/org/apache/bigtop/manager/grpc/pojo/ClusterInfo.java
b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ToolDao.java
similarity index 76%
copy from
bigtop-manager-grpc/src/main/java/org/apache/bigtop/manager/grpc/pojo/ClusterInfo.java
copy to
bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ToolDao.java
index 957e0c86..3306e41c 100644
---
a/bigtop-manager-grpc/src/main/java/org/apache/bigtop/manager/grpc/pojo/ClusterInfo.java
+++
b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ToolDao.java
@@ -7,7 +7,7 @@
* "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
+ * 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
@@ -16,16 +16,9 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.bigtop.manager.grpc.pojo;
-import lombok.Data;
+package org.apache.bigtop.manager.dao.repository;
-@Data
-public class ClusterInfo {
+import org.apache.bigtop.manager.dao.po.ToolPO;
- private String name;
-
- private String userGroup;
-
- private String rootDir;
-}
+public interface ToolDao extends BaseDao<ToolPO> {}
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 957e0c86..358e646a 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,6 +20,8 @@ package org.apache.bigtop.manager.grpc.pojo;
import lombok.Data;
+import java.util.List;
+
@Data
public class ClusterInfo {
@@ -28,4 +30,6 @@ public class ClusterInfo {
private String userGroup;
private String rootDir;
+
+ private List<ToolInfo> tools;
}
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 874d886f..e92415b2 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,6 +32,4 @@ public class RepoInfo {
private String arch;
private String baseUrl;
-
- private Integer type;
}
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/ToolInfo.java
similarity index 87%
copy from
bigtop-manager-grpc/src/main/java/org/apache/bigtop/manager/grpc/pojo/ClusterInfo.java
copy to
bigtop-manager-grpc/src/main/java/org/apache/bigtop/manager/grpc/pojo/ToolInfo.java
index 957e0c86..6069809e 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/ToolInfo.java
@@ -21,11 +21,15 @@ package org.apache.bigtop.manager.grpc.pojo;
import lombok.Data;
@Data
-public class ClusterInfo {
+public class ToolInfo {
private String name;
- private String userGroup;
+ private String baseUrl;
- private String rootDir;
+ 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 9221db33..6abf0f2c 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,18 +25,21 @@ import org.apache.bigtop.manager.dao.po.ComponentPO;
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;
@@ -63,6 +66,7 @@ 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);
@@ -72,6 +76,7 @@ public class JobCacheHelper {
repoDao = SpringContextHolder.getBean(RepoDao.class);
hostDao = SpringContextHolder.getBean(HostDao.class);
componentDao = SpringContextHolder.getBean(ComponentDao.class);
+ toolDao = SpringContextHolder.getBean(ToolDao.class);
INITIALIZED.set(true);
}
@@ -127,12 +132,25 @@ public class JobCacheHelper {
}
ClusterPO clusterPO = clusterDao.findById(clusterId);
+ List<ToolPO> toolPOList = toolDao.findAll();
ClusterInfo clusterInfo = new ClusterInfo();
clusterInfo.setName(clusterPO.getName());
clusterInfo.setUserGroup(clusterPO.getUserGroup());
clusterInfo.setRootDir(clusterPO.getRootDir());
+ List<ToolInfo> 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<String, Map<String, String>> serviceConfigMap =
payload.getConfigurations();
serviceConfigMap.putAll(getServiceConfigMap(clusterId));
@@ -162,7 +180,6 @@ public class JobCacheHelper {
repoInfo.setName(repoPO.getName());
repoInfo.setArch(repoPO.getArch());
repoInfo.setBaseUrl(repoPO.getBaseUrl());
- repoInfo.setType(repoPO.getType());
repoList.add(repoInfo);
});
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 adc9ca28..28c1dd84 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,6 +34,4 @@ public class RepoDTO {
private String arch;
private String baseUrl;
-
- private Integer type;
}
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 1808cc3f..f1d9a621 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
@@ -218,9 +218,7 @@ public class HostServiceImpl implements HostService {
@Override
public Boolean installDependencies(List<HostDTO> hostDTOList) {
List<RepoPO> repoPOList = repoDao.findAll();
- Map<String, RepoPO> archRepoMap = repoPOList.stream()
- .filter(repoPO -> repoPO.getType() == 2)
- .collect(Collectors.toMap(RepoPO::getArch, repo -> repo));
+ Map<String, RepoPO> archRepoMap =
repoPOList.stream().collect(Collectors.toMap(RepoPO::getArch, repo -> repo));
// Clear cache list
installedStatus.clear();
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 605ae8c9..e61ad4da 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
@@ -126,8 +126,7 @@ CREATE TABLE `repo`
`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(32) DEFAULT NULL,
`arch` VARCHAR(32) DEFAULT NULL,
- `base_url` VARCHAR(256) DEFAULT NULL,
- `type` INT DEFAULT NULL COMMENT '1-services, 2-tools',
+ `base_url` VARCHAR(255) DEFAULT NULL,
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP,
`create_by` BIGINT,
@@ -332,16 +331,29 @@ 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', '21232f297a57a5a743894a0e4a801fc3', 'Administrator', true);
-INSERT INTO repo (name, arch, base_url, type)
+INSERT INTO repo (name, arch, base_url)
VALUES
-('Service tarballs', 'x86_64', 'http://your-repo/', 1),
-('Service tarballs', 'aarch64', 'http://your-repo/', 1),
-('BM tools', 'x86_64', 'http://your-repo/', 2),
-('BM tools', 'aarch64', 'http://your-repo/', 2);
+('Service tarballs', 'x86_64', 'http://your-repo/'),
+('Service tarballs', 'aarch64', 'http://your-repo/');
-- Adding default llm platform
INSERT INTO llm_platform (credential, name, support_models)
@@ -365,4 +377,10 @@ WHERE `name` = 'QianFan';
UPDATE `llm_platform`
SET `desc` = 'Get your API Key in https://platform.deepseek.com'
-WHERE `name` = 'DeepSeek';
\ No newline at end of file
+WHERE `name` = 'DeepSeek';
+
+INSERT INTO tool (name, base_url, pkg_name, arch, checksum)
+VALUES
+('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 d73c3b84..7aa0862f 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
@@ -120,8 +120,7 @@ CREATE TABLE repo
id BIGINT CHECK (id > 0) NOT NULL GENERATED ALWAYS AS
IDENTITY,
name VARCHAR(32) DEFAULT NULL,
arch VARCHAR(32) DEFAULT NULL,
- base_url VARCHAR(256) DEFAULT NULL,
- type INTEGER DEFAULT NULL,
+ base_url VARCHAR(255) DEFAULT NULL,
create_time TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP,
update_time TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP,
create_by BIGINT,
@@ -129,8 +128,6 @@ CREATE TABLE repo
PRIMARY KEY (id)
);
-COMMENT ON COLUMN repo.type IS '1-services, 2-tools';
-
CREATE TABLE service
(
id BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY,
@@ -343,18 +340,31 @@ 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', '21232f297a57a5a743894a0e4a801fc3', 'Administrator', true);
-INSERT INTO repo (name, arch, base_url, type)
+INSERT INTO repo (name, arch, base_url)
VALUES
-('Service tarballs', 'x86_64', 'http://your-repo/', 1),
-('Service tarballs', 'aarch64', 'http://your-repo/', 1),
-('BM tools', 'x86_64', 'http://your-repo/', 2),
-('BM tools', 'aarch64', 'http://your-repo/', 2);
+('Service tarballs', 'x86_64', 'http://your-repo/'),
+('Service tarballs', 'aarch64', 'http://your-repo/');
INSERT INTO llm_platform (credential, name, support_models)
VALUES
@@ -377,4 +387,10 @@ WHERE "name" = 'QianFan';
UPDATE llm_platform
SET "desc" = 'Get your API Key in https://platform.deepseek.com'
-WHERE "name" = 'DeepSeek';
\ No newline at end of file
+WHERE "name" = 'DeepSeek';
+
+INSERT INTO tool (name, base_url, pkg_name, arch, checksum)
+VALUES
+('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/bigtop/3.3.0/services/flink/order.json
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/flink/order.json
index 459414e4..55f4cf14 100644
---
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/flink/order.json
+++
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/flink/order.json
@@ -1,3 +1,3 @@
{
- "FLINK_HISTORY_SERVER-START": ["NAMENODE-START", "DATANODE-START"]
+ "FLINK_HISTORYSERVER-START": ["NAMENODE-START", "DATANODE-START"]
}
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 373e5dc5..065a6d2a 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,11 +21,12 @@ package org.apache.bigtop.manager.stack.bigtop.v3_3_0.hive;
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.stack.core.exception.StackException;
import org.apache.bigtop.manager.stack.core.spi.param.Params;
import org.apache.bigtop.manager.stack.core.spi.script.AbstractServerScript;
import org.apache.bigtop.manager.stack.core.spi.script.Script;
-import org.apache.bigtop.manager.stack.core.tarball.TarballDownloader;
+import org.apache.bigtop.manager.stack.core.tarball.FileDownloader;
import org.apache.bigtop.manager.stack.core.utils.LocalSettings;
import org.apache.bigtop.manager.stack.core.utils.linux.LinuxFileUtils;
import org.apache.bigtop.manager.stack.core.utils.linux.LinuxOSUtils;
@@ -33,6 +34,7 @@ import
org.apache.bigtop.manager.stack.core.utils.linux.LinuxOSUtils;
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;
@@ -113,9 +115,9 @@ public class HiveMetastoreScript extends
AbstractServerScript {
}
private void downloadMySQLJdbcDriver(Params params) {
- String mysqlDriver =
-
"https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/8.0.33/mysql-connector-j-8.0.33.jar";
- TarballDownloader.download(mysqlDriver, params.stackHome());
+ ToolInfo tool = LocalSettings.getTool("mysql-connector-j");
+ String downloadUrl = tool.getBaseUrl() + File.separator +
tool.getPkgName();
+ FileDownloader.download(downloadUrl, params.stackHome(), tool);
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-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/tez/TezClientScript.java
b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/tez/TezClientScript.java
index 640370ab..43c04f2b 100644
---
a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/tez/TezClientScript.java
+++
b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/tez/TezClientScript.java
@@ -24,7 +24,7 @@ import org.apache.bigtop.manager.grpc.pojo.RepoInfo;
import org.apache.bigtop.manager.stack.core.spi.param.Params;
import org.apache.bigtop.manager.stack.core.spi.script.AbstractClientScript;
import org.apache.bigtop.manager.stack.core.spi.script.Script;
-import org.apache.bigtop.manager.stack.core.tarball.TarballDownloader;
+import org.apache.bigtop.manager.stack.core.tarball.FileDownloader;
import com.google.auto.service.AutoService;
import lombok.extern.slf4j.Slf4j;
@@ -52,7 +52,7 @@ public class TezClientScript extends AbstractClientScript {
String stackHome = params.stackHome();
for (PackageInfo packageInfo : packages) {
String remoteUrl = repoUrl + File.separator +
packageInfo.getName();
- TarballDownloader.download(remoteUrl, stackHome, packageInfo);
+ FileDownloader.download(remoteUrl, stackHome, packageInfo);
}
return ShellResult.success();
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 3c7985dc..9f6f47a0 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
@@ -95,8 +95,7 @@ public abstract class BaseParams implements Params {
@Override
public RepoInfo repo() {
return LocalSettings.repos().stream()
- // Use service tarballs repo(type == 1)
- .filter(r -> OSDetection.getArch().equals(r.getArch()) &&
r.getType() == 1)
+ .filter(r -> OSDetection.getArch().equals(r.getArch()))
.findFirst()
.orElseThrow(() -> new StackException(
"Cannot find repo for os: [{0}] and arch: [{1}]",
OSDetection.getOS(), OSDetection.getArch()));
diff --git
a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/tarball/TarballDownloader.java
b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/tarball/FileDownloader.java
similarity index 91%
rename from
bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/tarball/TarballDownloader.java
rename to
bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/tarball/FileDownloader.java
index 4e1cf5b0..1e5608ba 100644
---
a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/tarball/TarballDownloader.java
+++
b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/tarball/FileDownloader.java
@@ -19,6 +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.stack.core.exception.StackException;
import lombok.extern.slf4j.Slf4j;
@@ -30,7 +31,16 @@ import java.net.HttpURLConnection;
import java.net.URL;
@Slf4j
-public class TarballDownloader {
+public class FileDownloader {
+
+ public static void download(String remoteUrl, String saveDir, ToolInfo
toolInfo) {
+ PackageInfo packageInfo = new PackageInfo();
+ packageInfo.setUrl(toolInfo.getBaseUrl());
+ packageInfo.setName(toolInfo.getPkgName());
+ packageInfo.setChecksum(toolInfo.getChecksum());
+
+ download(remoteUrl, saveDir, packageInfo);
+ }
@SuppressWarnings("ResultOfMethodCallIgnored")
public static void download(String remoteUrl, String saveDir, PackageInfo
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 ba0b7363..7e90001d 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
@@ -21,8 +21,11 @@ package org.apache.bigtop.manager.stack.core.utils;
import org.apache.bigtop.manager.common.constants.CacheFiles;
import org.apache.bigtop.manager.common.utils.JsonUtils;
import org.apache.bigtop.manager.common.utils.ProjectPathUtils;
+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;
import lombok.extern.slf4j.Slf4j;
@@ -41,7 +44,6 @@ public class LocalSettings {
}
public static Map<String, Object> configurations(String service, String
type) {
-
Map<String, Object> configDataMap = new HashMap<>();
File file = createFile(ProjectPathUtils.getAgentCachePath() +
CacheFiles.CONFIGURATIONS_INFO);
try {
@@ -65,7 +67,6 @@ public class LocalSettings {
}
public static Map<String, List<String>> hosts() {
-
Map<String, List<String>> hostJson = new HashMap<>();
File file = createFile(ProjectPathUtils.getAgentCachePath() +
CacheFiles.HOSTS_INFO);
if (file.exists()) {
@@ -75,7 +76,6 @@ public class LocalSettings {
}
public static Map<String, Object> basicInfo() {
-
Map<String, Object> settings = new HashMap<>();
File file = createFile(ProjectPathUtils.getAgentCachePath() +
CacheFiles.SETTINGS_INFO);
if (file.exists()) {
@@ -85,7 +85,6 @@ public class LocalSettings {
}
public static Map<String, String> users() {
-
Map<String, String> userMap = new HashMap<>();
File file = createFile(ProjectPathUtils.getAgentCachePath() +
CacheFiles.USERS_INFO);
if (file.exists()) {
@@ -99,7 +98,6 @@ public class LocalSettings {
}
public static List<RepoInfo> repos() {
-
List<RepoInfo> repoInfoList = List.of();
File file = createFile(ProjectPathUtils.getAgentCachePath() +
CacheFiles.REPOS_INFO);
if (file.exists()) {
@@ -109,7 +107,6 @@ public class LocalSettings {
}
public static ClusterInfo cluster() {
-
ClusterInfo clusterInfo = new ClusterInfo();
File file = createFile(ProjectPathUtils.getAgentCachePath() +
CacheFiles.CLUSTER_INFO);
if (file.exists()) {
@@ -118,6 +115,22 @@ public class LocalSettings {
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 263694e2..bed366e6 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
@@ -19,7 +19,7 @@
package org.apache.bigtop.manager.stack.core.utils;
import org.apache.bigtop.manager.grpc.pojo.PackageInfo;
-import org.apache.bigtop.manager.stack.core.tarball.TarballDownloader;
+import org.apache.bigtop.manager.stack.core.tarball.FileDownloader;
import org.apache.bigtop.manager.stack.core.tarball.TarballExtractor;
import org.apache.commons.lang3.StringUtils;
@@ -44,7 +44,7 @@ public class TarballUtils {
? repoUrl + File.separator + packageInfo.getName()
: packageInfo.getUrl() + File.separator +
packageInfo.getName();
File localFile = new File(stackHome + File.separator +
packageInfo.getName());
- TarballDownloader.download(remoteUrl, stackHome, packageInfo);
+ FileDownloader.download(remoteUrl, stackHome, packageInfo);
log.info("Extracting [{}] to [{}]", localFile.getAbsolutePath(),
serviceHome);
TarballExtractor.extractTarball(localFile.getAbsolutePath(),
serviceHome, skipLevels);
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 f3dfb8ed..59d53a81 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
@@ -57,9 +57,8 @@ public class BaseParamsTest {
@BeforeEach
public void setUp() {
List<RepoInfo> repos = new ArrayList<>();
- repos.add(new RepoInfo("repo1", "mockArch", "testURL", 2));
- repos.add(new RepoInfo("repo2", "mockArch", "testURL", 1));
- repos.add(new RepoInfo("repo3", "mockArch", "testURL", 1));
+ repos.add(new RepoInfo("repo2", "mockArch", "testURL"));
+ repos.add(new RepoInfo("repo3", "mockArch", "testURL"));
List<String> arch = new ArrayList<>();
arch.add("mockArch");
@@ -133,7 +132,6 @@ public class BaseParamsTest {
@Test
public void testRepo() {
RepoInfo repo = mockBaseParams.repo();
- assertEquals(1, repo.getType());
assertEquals("repo2", repo.getName());
assertEquals("mockArch", repo.getArch());
}
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 fef270bf..b5f31d45 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 class LocalSettingsTest {
@Test
public void testRepos() {
- RepoInfo repo1 = new RepoInfo("repo1", "x86_64", "http://repo1.com",
1);
- RepoInfo repo2 = new RepoInfo("repo2", "arch64", "http://repo2.com",
2);
+ RepoInfo repo1 = new RepoInfo("repo1", "x86_64", "http://repo1.com");
+ RepoInfo repo2 = new RepoInfo("repo2", "arch64", "http://repo2.com");
List<RepoInfo> repoInfoList = List.of(repo1, repo2);
File file = mock(File.class);
@@ -190,8 +190,8 @@ public class LocalSettingsTest {
localSettingsMockedStatic.when(LocalSettings::repos).thenCallRealMethod();
List<RepoInfo> expectedRepoInfoList = List.of(
- new RepoInfo("repo1", "x86_64", "http://repo1.com", 1),
- new RepoInfo("repo2", "arch64", "http://repo2.com", 2));
+ new RepoInfo("repo1", "x86_64", "http://repo1.com"),
+ new RepoInfo("repo2", "arch64", "http://repo2.com"));
assertEquals(expectedRepoInfoList, LocalSettings.repos());
}
diff --git a/docs/en/cluster.md b/docs/en/cluster.md
index a16e0950..da0b6440 100644
--- a/docs/en/cluster.md
+++ b/docs/en/cluster.md
@@ -19,12 +19,12 @@ The stack page is a display page that mainly shows which
optional services are a

-Expect for our official repository, users can also set their own repository
which can configured here
+Expect for our official repository, users can also set their own repository
which can configured here(due to license issue, MySQL/Grafana in Infra Stack
are downloaded from the official website instead of the repository).
We also provide other ways for you download dependencies:
* BaiduNetdisk: https://pan.baidu.com/s/162FXYsaRuwFQjrOlMuDRjg?pwd=hufb
-
+
### Hosts
#### Add a Host
diff --git a/docs/en/release.md b/docs/en/release.md
index f6539656..a83e60cb 100644
--- a/docs/en/release.md
+++ b/docs/en/release.md
@@ -133,19 +133,15 @@ Update the DDL files for `MySQL` and `PostgreSQL` in the
`bigtop-manager-server/
```sql
INSERT INTO repo (name, arch, base_url, type)
VALUES
-('Service tarballs', 'x86_64', 'http://your-repo/', 1),
-('Service tarballs', 'aarch64', 'http://your-repo/', 1),
-('BM tools', 'x86_64', 'http://your-repo/', 2),
-('BM tools', 'aarch64', 'http://your-repo/', 2);
+('Service tarballs', 'x86_64', 'http://your-repo/'),
+('Service tarballs', 'aarch64', 'http://your-repo/'),
```
to
```sql
INSERT INTO repo (name, arch, base_url, type)
VALUES
-('Service tarballs', 'x86_64',
'http://repos.bigtop.apache.org/releases/bigtop-manager/1.0.0/tarballs', 1),
-('Service tarballs', 'aarch64',
'http://repos.bigtop.apache.org/releases/bigtop-manager/1.0.0/tarballs', 1),
-('BM tools', 'x86_64',
'http://repos.bigtop.apache.org/releases/bigtop-manager/1.0.0/tools', 2),
-('BM tools', 'aarch64',
'http://repos.bigtop.apache.org/releases/bigtop-manager/1.0.0/tools', 2);
+('Service tarballs', 'x86_64',
'http://repos.bigtop.apache.org/releases/bigtop-manager/1.0.0/'),
+('Service tarballs', 'aarch64',
'http://repos.bigtop.apache.org/releases/bigtop-manager/1.0.0/'),
```
### Upgrade the Version Number
@@ -187,6 +183,7 @@ $ svn commit -m "Preparing Release Bigtop Manager 1.0.0 RC0"
### Initiate a Vote
Initiate a vote according to the [VOTE](#vote) template
* If the vote is failed, rerun the above steps after making the required
modifications. At the same time, increment the Release Candidate by +1. If
according to the above example, the next Release Candidate will be RC1.
+* If you like to cancel a vote due to some issue, you can use
[CANCEL](#cancel) template.
* If the vote is passed, proceed to the [Vote Passes](#vote-passes) operation.
## Vote Passes
@@ -310,6 +307,19 @@ Best Regards,
Zhiguo Wu
```
+### CANCEL
+```
+To: "Bigtop Developers List" <[email protected]>
+Subject: [CANCEL] [VOTE] Release Apache Bigtop Manager 1.0.0 RC0
+
+Hello Community,
+
+Due to some license issues, I'd like to cancel the vote for release Apache
Bigtop Manager 1.0.0 RC0, the next vote for RC1 will be sent out in a few days.
+
+Best Regards,
+Zhiguo Wu
+```
+
### RESULT
```
To: "Bigtop Developers List" <[email protected]>
diff --git a/docs/zh/cluster.md b/docs/zh/cluster.md
index d54b550b..3dab536c 100644
--- a/docs/zh/cluster.md
+++ b/docs/zh/cluster.md
@@ -17,12 +17,12 @@

-除了官方 Repository 外,用户也可以搭建自己的 Repository 并在此处进行配置
+除了官方 Repository 外,用户也可以搭建自己的 Repository 并在此处进行配置(注意 Infra 中的 MySQL/Grafana 由于
License 原因,是从官方网站下载而不是从 Repository 下载)
我们也提供了其他方式供您下载相应的依赖:
* 百度云:https://pan.baidu.com/s/162FXYsaRuwFQjrOlMuDRjg?pwd=hufb
-
+
### 主机
#### 新增主机
diff --git a/docs/zh/release.md b/docs/zh/release.md
index c95fb357..67cfe751 100644
--- a/docs/zh/release.md
+++ b/docs/zh/release.md
@@ -133,19 +133,15 @@ $ svn commit -m "Adding Zhiguo Wu's code signing key"
```sql
INSERT INTO repo (name, arch, base_url, type)
VALUES
-('Service tarballs', 'x86_64', 'http://your-repo/', 1),
-('Service tarballs', 'aarch64', 'http://your-repo/', 1),
-('BM tools', 'x86_64', 'http://your-repo/', 2),
-('BM tools', 'aarch64', 'http://your-repo/', 2);
+('Service tarballs', 'x86_64', 'http://your-repo/'),
+('Service tarballs', 'aarch64', 'http://your-repo/'),
```
改为
```sql
INSERT INTO repo (name, arch, base_url, type)
VALUES
-('Service tarballs', 'x86_64',
'http://repos.bigtop.apache.org/releases/bigtop-manager/1.0.0/tarballs', 1),
-('Service tarballs', 'aarch64',
'http://repos.bigtop.apache.org/releases/bigtop-manager/1.0.0/tarballs', 1),
-('BM tools', 'x86_64',
'http://repos.bigtop.apache.org/releases/bigtop-manager/1.0.0/tools', 2),
-('BM tools', 'aarch64',
'http://repos.bigtop.apache.org/releases/bigtop-manager/1.0.0/tools', 2);
+('Service tarballs', 'x86_64',
'http://repos.bigtop.apache.org/releases/bigtop-manager/1.0.0/'),
+('Service tarballs', 'aarch64',
'http://repos.bigtop.apache.org/releases/bigtop-manager/1.0.0/'),
```
### 升级版本号
@@ -187,6 +183,7 @@ $ svn commit -m "Preparing Release Bigtop Manager 1.0.0 RC0"
### 发起投票
根据 [VOTE 邮件模板](#vote) 发起投票
* 若投票未通过,则按要求修改完成后重复以上步骤,同时 Release Candidate +1,若根据以上案例,下一个 Release Candidate
即为 RC1
+* 若由于某些问题你想要取消投票,则可以参考 [CANCEL 邮件模板](#cancel) 来取消
* 若投票通过,进入 [发版成功](#发版成功) 操作
## 发版成功
@@ -310,6 +307,19 @@ Best Regards,
Zhiguo Wu
```
+### CANCEL
+```
+To: "Bigtop Developers List" <[email protected]>
+Subject: [CANCEL] [VOTE] Release Apache Bigtop Manager 1.0.0 RC0
+
+Hello Community,
+
+Due to some license issues, I'd like to cancel the vote for release Apache
Bigtop Manager 1.0.0 RC0, the next vote for RC1 will be sent out in a few days.
+
+Best Regards,
+Zhiguo Wu
+```
+
### RESULT
```
To: "Bigtop Developers List" <[email protected]>