This is an automated email from the ASF dual-hosted git repository.

liuhaopeng 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 c54034e3 BIGTOP-4408: Download MySQL/Grafana from official website 
(#208)
c54034e3 is described below

commit c54034e3d41fde20c7982dbb8499fd985de974b3
Author: Zhiguo Wu <[email protected]>
AuthorDate: Tue Apr 15 14:36:12 2025 +0800

    BIGTOP-4408: Download MySQL/Grafana from official website (#208)
---
 .../org/apache/bigtop/manager/grpc/pojo/PackageInfo.java |  2 ++
 .../server/command/task/AbstractComponentTask.java       |  1 +
 .../bigtop/manager/server/model/dto/PackageDTO.java      |  2 ++
 .../bigtop/manager/server/stack/model/PackageModel.java  |  2 ++
 .../stacks/infra/1.0.0/services/grafana/metainfo.xml     |  2 ++
 .../stacks/infra/1.0.0/services/mysql/metainfo.xml       |  2 ++
 .../stack/bigtop/v3_3_0/hive/HiveMetastoreScript.java    | 16 +++++++---------
 .../bigtop/manager/stack/core/utils/TarballUtils.java    |  6 +++++-
 .../manager/stack/core/spi/param/BaseParamsTest.java     |  4 ++--
 9 files changed, 25 insertions(+), 12 deletions(-)

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 ca8ace38..4dada510 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,6 +27,8 @@ import lombok.NoArgsConstructor;
 @NoArgsConstructor
 public class PackageInfo {
 
+    private String url;
+
     private String name;
 
     private String checksum;
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 9d141fc2..3f50a4a1 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,6 +127,7 @@ public abstract class AbstractComponentTask extends 
AbstractTask {
             List<PackageInfo> 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 8cabb51a..eb0c37ab 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,6 +27,8 @@ import lombok.NoArgsConstructor;
 @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/stack/model/PackageModel.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/model/PackageModel.java
index ca9b2bea..df9a8f45 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,6 +27,8 @@ import jakarta.xml.bind.annotation.XmlAccessorType;
 @XmlAccessorType(XmlAccessType.FIELD)
 public class PackageModel {
 
+    private String url;
+
     private String name;
 
     private String checksum;
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 45465e02..87dda446 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,6 +54,7 @@
                 </architectures>
                 <packages>
                     <package>
+                        <url>https://dl.grafana.com/oss/release/</url>
                         <name>grafana-11.4.0.linux-amd64.tar.gz</name>
                         
<checksum>SHA-256:3550c73f4455435642976e82cc89aa354f076a75b766a408781107f4f5d4744c</checksum>
                     </package>
@@ -65,6 +66,7 @@
                 </architectures>
                 <packages>
                     <package>
+                        <url>https://dl.grafana.com/oss/release/</url>
                         <name>grafana-11.4.0.linux-arm64.tar.gz</name>
                         
<checksum>SHA-256:c978b46a61d92883119131641c03b8a1323a284e74ab9a20e7e48207dc1a11e1</checksum>
                     </package>
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 302df203..00c8e479 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,6 +53,7 @@
                 </architectures>
                 <packages>
                     <package>
+                        
<url>https://dev.mysql.com/get/Downloads/MySQL-8.0/</url>
                         <name>mysql-8.0.40-linux-glibc2.28-x86_64.tar.xz</name>
                         
<checksum>MD5:dcf2702f953d1969be44083f4f063f18</checksum>
                     </package>
@@ -64,6 +65,7 @@
                 </architectures>
                 <packages>
                     <package>
+                        
<url>https://dev.mysql.com/get/Downloads/MySQL-8.0/</url>
                         
<name>mysql-8.0.40-linux-glibc2.28-aarch64.tar.xz</name>
                         
<checksum>MD5:a79f41ce62784a1a0e081c76116008de</checksum>
                     </package>
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 30253fca..373e5dc5 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,8 +21,6 @@ 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.common.utils.os.OSDetection;
-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;
@@ -115,12 +113,8 @@ public class HiveMetastoreScript extends 
AbstractServerScript {
     }
 
     private void downloadMySQLJdbcDriver(Params params) {
-        RepoInfo repoInfo = LocalSettings.repos().stream()
-                .filter(r -> OSDetection.getArch().equals(r.getArch()) && 
r.getType() == 2)
-                .findFirst()
-                .orElseThrow(() -> new RuntimeException("Cannot find repo for 
os: [" + OSDetection.getOS()
-                        + "] and arch: [" + OSDetection.getArch() + "]"));
-        String mysqlDriver = repoInfo.getBaseUrl() + 
"/mysql-connector-j-8.0.33.jar";
+        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());
         LinuxFileUtils.moveFile(params.stackHome() + 
"/mysql-connector-j-8.0.33.jar", params.serviceHome() + "/lib/");
         LinuxFileUtils.updateOwner(params.serviceHome() + "/lib", 
params.user(), params.group(), true);
@@ -137,12 +131,16 @@ public class HiveMetastoreScript extends 
AbstractServerScript {
                     && shellResult.getErrMsg().contains("Table '" + 
clusterName + "_hive.VERSION' doesn't exist")) {
                 // init schema
                 cmd = hiveParams.serviceHome() + "/bin/schematool -initSchema 
-dbType mysql";
+                // TODO previous cmd will kill agent application, not sure why
+                // temp solve by running with nohup and wait for 5 seconds to 
let it finish
+                cmd = "nohup " + cmd + " > /dev/null 2>&1 &";
                 shellResult = LinuxOSUtils.sudoExecCmd(cmd, hiveParams.user());
+                Thread.sleep(5000);
                 if (shellResult.getExitCode() != 
MessageConstants.SUCCESS_CODE) {
                     throw new StackException(shellResult.getErrMsg());
                 }
             }
-        } catch (IOException e) {
+        } catch (Exception e) {
             throw new StackException(e);
         }
     }
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 9086c356..263694e2 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,6 +22,8 @@ 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.TarballExtractor;
 
+import org.apache.commons.lang3.StringUtils;
+
 import lombok.extern.slf4j.Slf4j;
 
 import java.io.File;
@@ -38,7 +40,9 @@ public class TarballUtils {
             return;
         }
 
-        String remoteUrl = repoUrl + File.separator + packageInfo.getName();
+        String remoteUrl = StringUtils.isEmpty(packageInfo.getUrl())
+                ? 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);
 
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 eeed94b1..f3dfb8ed 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
@@ -65,8 +65,8 @@ public class BaseParamsTest {
         arch.add("mockArch");
 
         List<PackageInfo> packages = new ArrayList<>();
-        packages.add(new PackageInfo("package1", "testChecksum1"));
-        packages.add(new PackageInfo("package2", "testChecksum2"));
+        packages.add(new PackageInfo(null, "package1", "testChecksum1"));
+        packages.add(new PackageInfo(null, "package2", "testChecksum2"));
 
         List<PackageSpecificInfo> packageSpecifics = new ArrayList<>();
         PackageSpecificInfo packageSpecific = new PackageSpecificInfo();

Reply via email to