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 077a5f6  BIGTOP-4139: Support OpenEuler 22.03 (#63)
077a5f6 is described below

commit 077a5f6f981968112af672e02695383d5627806d
Author: timyuer <[email protected]>
AuthorDate: Thu Sep 12 14:59:29 2024 +0800

    BIGTOP-4139: Support OpenEuler 22.03 (#63)
---
 .../apache/bigtop/manager/common/enums/OSType.java |   2 +
 .../manager/common/utils/os/OSDetection.java       |   4 +-
 .../bigtop/manager/dao/repository/JobDao.java      |   3 +
 .../resources/mapper/mysql/HostComponentMapper.xml |   4 +-
 .../src/main/resources/mapper/mysql/JobMapper.xml  |  30 +++--
 .../src/main/resources/mapper/mysql/RepoMapper.xml |   6 +-
 .../server/service/impl/JobServiceImpl.java        |   3 +
 .../resources/stacks/bigtop/3.3.0/metainfo.xml     |   8 ++
 .../bigtop/3.3.0/services/flink/metainfo.xml       |   1 +
 .../stacks/bigtop/3.3.0/services/hdfs/metainfo.xml |   1 +
 .../bigtop/3.3.0/services/kafka/metainfo.xml       |   1 +
 .../bigtop/3.3.0/services/mapred/metainfo.xml      |   1 +
 .../stacks/bigtop/3.3.0/services/solr/metainfo.xml |   1 +
 .../stacks/bigtop/3.3.0/services/tez/metainfo.xml  |   1 +
 .../stacks/bigtop/3.3.0/services/yarn/metainfo.xml |   1 +
 .../bigtop/3.3.0/services/zookeeper/metainfo.xml   |   1 +
 .../infra/1.0.0/services/prometheus/metainfo.xml   |   1 +
 .../stack/bigtop/v3_3_0/hdfs/HdfsParams.java       |  15 ++-
 .../stack/core/spi/repo/PackageManagerType.java    |   3 +-
 dev-support/docker/openeuler22/Dockerfile          |  33 +++++
 dev-support/docker/openeuler22/build-containers.sh | 133 +++++++++++++++++++++
 dev-support/docker/openeuler22/build-image.sh      |  30 +++++
 dev-support/docker/openeuler22/clear-containers.sh |  40 +++++++
 .../docker/openeuler22/distribute-scripts.sh       |  35 ++++++
 .../docker/openeuler22/restart-containers.sh       |  43 +++++++
 25 files changed, 383 insertions(+), 18 deletions(-)

diff --git 
a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/enums/OSType.java
 
b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/enums/OSType.java
index 4ac4b8e..521f081 100644
--- 
a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/enums/OSType.java
+++ 
b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/enums/OSType.java
@@ -35,5 +35,7 @@ public enum OSType {
     DEBIAN11,
 
     FEDORA36,
+
+    OPENEULER22,
     ;
 }
diff --git 
a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/utils/os/OSDetection.java
 
b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/utils/os/OSDetection.java
index df29c86..e5b50bd 100644
--- 
a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/utils/os/OSDetection.java
+++ 
b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/utils/os/OSDetection.java
@@ -55,7 +55,7 @@ public class OSDetection {
 
     public static String getOS() {
         if (SystemUtils.IS_OS_LINUX) {
-            String os = getOSType().toLowerCase() + 
getOSVersion().toLowerCase();
+            String os = getOSType() + getOSVersion().toLowerCase();
             ifSupportedOS(os);
             return os;
         } else {
@@ -102,7 +102,7 @@ public class OSDetection {
     private static String getOSType() {
         String output = getOSRelease();
 
-        String osType = regexOS(ID_PATTERN, output);
+        String osType = regexOS(ID_PATTERN, output).toLowerCase();
 
         log.debug("osType: {}", osType);
         return osType;
diff --git 
a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/JobDao.java
 
b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/JobDao.java
index 82efe16..d847489 100644
--- 
a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/JobDao.java
+++ 
b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/JobDao.java
@@ -23,6 +23,7 @@ import org.apache.bigtop.manager.dao.po.JobPO;
 
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Collection;
 import java.util.List;
 import java.util.Optional;
 
@@ -30,6 +31,8 @@ public interface JobDao extends BaseDao<JobPO> {
 
     List<JobPO> findAllByClusterId(@Param("clusterId") Long clusterId);
 
+    List<JobPO> findAllByIdsJoin(@Param("ids") Collection<Long> ids);
+
     Optional<JobPO> findByIdJoin(@Param("id") Long id);
 
     List<JobPO> findAllByClusterIsNull();
diff --git 
a/bigtop-manager-dao/src/main/resources/mapper/mysql/HostComponentMapper.xml 
b/bigtop-manager-dao/src/main/resources/mapper/mysql/HostComponentMapper.xml
index 5106000..900397c 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/HostComponentMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/HostComponentMapper.xml
@@ -115,7 +115,7 @@
         <include refid="baseColumnsV2">
             <property name="alias" value="hc"/>
         </include>
-            , c.component_name
+            , c.component_name, h.hostname
         from
         host_component hc
         inner join (select * from host
@@ -134,7 +134,7 @@
         on hc.host_id = h.id
         inner join (select * from component
         <where>
-            <if test="componentName != 0">
+            <if test="componentName != null">
                 component_name = #{componentName}
             </if>
         </where>
diff --git a/bigtop-manager-dao/src/main/resources/mapper/mysql/JobMapper.xml 
b/bigtop-manager-dao/src/main/resources/mapper/mysql/JobMapper.xml
index 6efb75b..7805bba 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/JobMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/JobMapper.xml
@@ -73,7 +73,7 @@
         </collection>
     </resultMap>
 
-    <select id="findAllByClusterId" parameterType="java.lang.Long" 
resultMap="jobMap">
+    <select id="findAllByIdsJoin" parameterType="java.lang.Long" 
resultMap="jobMap">
         select
         <include refid="baseColumnsV2">
             <property name="alias" value="h"/>
@@ -83,8 +83,11 @@
         from
         (select * from job
         <where>
-            <if test="clusterId != 0">
-                cluster_id = #{clusterId}
+            <if test="ids != null">
+                id in
+                <foreach collection="ids" item="id" index="index" open="(" 
close=")" separator=",">
+                    #{id}
+                </foreach>
             </if>
         </where>
         ) h
@@ -92,6 +95,7 @@
         on h.id = st.job_id
         inner join task tk
         on tk.job_id = h.id and st.id = tk.stage_id
+        order by h.id desc
     </select>
 
     <select id="findByIdJoin" parameterType="java.lang.Long" 
resultMap="jobMap">
@@ -115,16 +119,24 @@
         on tk.job_id = h.id and st.id = tk.stage_id
     </select>
 
+    <select id="findAllByClusterId" parameterType="java.lang.Long" 
resultType="org.apache.bigtop.manager.dao.po.JobPO">
+        select
+        <include refid="baseColumns"/>
+        from
+        job
+        <where>
+            <if test="clusterId != 0">
+                cluster_id = #{clusterId}
+            </if>
+        </where>
+    </select>
+
     <select id="findAllByClusterIsNull"
             resultType="org.apache.bigtop.manager.dao.po.JobPO">
         select
-        <include refid="baseColumnsV2">
-            <property name="alias" value="h"/>
-        </include>
+        <include refid="baseColumns"/>
         from
-        (select * from job where cluster_id is null) h
-        inner join stage st
-        on h.id = st.job_id
+        job where cluster_id is null
     </select>
 
 </mapper>
\ No newline at end of file
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 b51ab04..cee5e86 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/RepoMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/RepoMapper.xml
@@ -24,7 +24,7 @@
 <mapper namespace="org.apache.bigtop.manager.dao.repository.RepoDao">
 
     <sql id="baseColumns">
-        id, base_url, os, arch, repo_id, repo_name, cluster_id
+        id, base_url, os, arch, repo_id, repo_name, repo_type, cluster_id
     </sql>
 
     <select id="findByRepoName" 
resultType="org.apache.bigtop.manager.dao.po.RepoPO">
@@ -41,10 +41,10 @@
     </select>
 
     <insert id="saveAll" useGeneratedKeys="true" keyProperty="id" 
keyColumn="id">
-        insert into repo (base_url, os, arch, repo_id, repo_name, cluster_id, 
create_by, update_by, create_time, update_time)
+        insert into repo (base_url, os, arch, repo_id, repo_name, repo_type, 
cluster_id, create_by, update_by, create_time, update_time)
         values
         <foreach collection='clusters' item='cluster' separator=','>
-            
(#{cluster.baseUrl},#{cluster.os},#{cluster.arch},#{cluster.repoId},#{cluster.repoName},#{cluster.clusterId},#{cluster.createBy},#{cluster.updateBy},#{cluster.createTime},#{cluster.updateTime})
+            
(#{cluster.baseUrl},#{cluster.os},#{cluster.arch},#{cluster.repoId},#{cluster.repoName},#{cluster.repoType},#{cluster.clusterId},#{cluster.createBy},#{cluster.updateBy},#{cluster.createTime},#{cluster.updateTime})
         </foreach>
     </insert>
 
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/JobServiceImpl.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/JobServiceImpl.java
index 820eab3..b6a30a3 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/JobServiceImpl.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/JobServiceImpl.java
@@ -79,6 +79,9 @@ public class JobServiceImpl implements JobService {
             jobPOList = jobDao.findAllByClusterId(clusterId);
         }
         PageInfo<JobPO> pageInfo = new PageInfo<>(jobPOList);
+        List<JobPO> allByIdsJoin =
+                
jobDao.findAllByIdsJoin(jobPOList.stream().map(JobPO::getId).toList());
+        pageInfo.setList(allByIdsJoin);
 
         return PageVO.of(pageInfo);
     }
diff --git 
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/metainfo.xml 
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/metainfo.xml
index 53a82c3..810a82c 100644
--- a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/metainfo.xml
+++ b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/metainfo.xml
@@ -48,6 +48,14 @@ gpgcheck=0
                 <arch>x86_64</arch>
                 
<base-url>http://123.56.2.244/bigtop/3.3.0/rocky8/x86_64/</base-url>
             </repo>
+            <repo>
+                <repo-id>Bigtop-3.3.0</repo-id>
+                <repo-name>Bigtop-3.3.0 for openEuler-22.03 x86_64</repo-name>
+                <repo-type>binary</repo-type>
+                <os>openeuler22</os>
+                <arch>x86_64</arch>
+                
<base-url>http://123.56.2.244/bigtop/3.3.0/openeuler22/x86_64/</base-url>
+            </repo>
         </repos>
     </stack>
 </metainfo>
\ No newline at end of file
diff --git 
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/flink/metainfo.xml
 
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/flink/metainfo.xml
index c62639a..ba3ef91 100644
--- 
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/flink/metainfo.xml
+++ 
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/flink/metainfo.xml
@@ -63,6 +63,7 @@
                 <operating-systems>
                     <os>centos7</os>
                     <os>rocky8</os>
+                    <os>openeuler22</os>
                 </operating-systems>
                 <architectures>
                     <arch>x86_64</arch>
diff --git 
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/hdfs/metainfo.xml
 
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/hdfs/metainfo.xml
index 5878f17..830a9a5 100644
--- 
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/hdfs/metainfo.xml
+++ 
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/hdfs/metainfo.xml
@@ -103,6 +103,7 @@
                 <operating-systems>
                     <os>centos7</os>
                     <os>rocky8</os>
+                    <os>openeuler22</os>
                 </operating-systems>
                 <architectures>
                     <arch>x86_64</arch>
diff --git 
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/kafka/metainfo.xml
 
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/kafka/metainfo.xml
index a31f99c..4722ea7 100644
--- 
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/kafka/metainfo.xml
+++ 
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/kafka/metainfo.xml
@@ -59,6 +59,7 @@
                 <operating-systems>
                     <os>centos7</os>
                     <os>rocky8</os>
+                    <os>openeuler22</os>
                 </operating-systems>
                 <architectures>
                     <arch>x86_64</arch>
diff --git 
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/mapred/metainfo.xml
 
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/mapred/metainfo.xml
index 4ece698..c920e2c 100644
--- 
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/mapred/metainfo.xml
+++ 
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/mapred/metainfo.xml
@@ -63,6 +63,7 @@
                 <operating-systems>
                     <os>centos7</os>
                     <os>rocky8</os>
+                    <os>openeuler22</os>
                 </operating-systems>
                 <architectures>
                     <arch>x86_64</arch>
diff --git 
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/solr/metainfo.xml
 
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/solr/metainfo.xml
index 753f5cf..506669c 100644
--- 
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/solr/metainfo.xml
+++ 
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/solr/metainfo.xml
@@ -53,6 +53,7 @@
                 <operating-systems>
                     <os>centos7</os>
                     <os>rocky8</os>
+                    <os>openeuler22</os>
                 </operating-systems>
                 <architectures>
                     <arch>x86_64</arch>
diff --git 
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/tez/metainfo.xml
 
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/tez/metainfo.xml
index 59aacf0..7ce3bbd 100644
--- 
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/tez/metainfo.xml
+++ 
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/tez/metainfo.xml
@@ -45,6 +45,7 @@
                 <operating-systems>
                     <os>centos7</os>
                     <os>rocky8</os>
+                    <os>openeuler22</os>
                 </operating-systems>
                 <architectures>
                     <arch>x86_64</arch>
diff --git 
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/yarn/metainfo.xml
 
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/yarn/metainfo.xml
index 6ccd747..f725d49 100644
--- 
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/yarn/metainfo.xml
+++ 
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/yarn/metainfo.xml
@@ -92,6 +92,7 @@
                 <operating-systems>
                     <os>centos7</os>
                     <os>rocky8</os>
+                    <os>openeuler22</os>
                 </operating-systems>
                 <architectures>
                     <arch>x86_64</arch>
diff --git 
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/zookeeper/metainfo.xml
 
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/zookeeper/metainfo.xml
index df686c0..52115a5 100644
--- 
a/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/zookeeper/metainfo.xml
+++ 
b/bigtop-manager-server/src/main/resources/stacks/bigtop/3.3.0/services/zookeeper/metainfo.xml
@@ -59,6 +59,7 @@
                 <operating-systems>
                     <os>centos7</os>
                     <os>rocky8</os>
+                    <os>openeuler22</os>
                 </operating-systems>
                 <architectures>
                     <arch>x86_64</arch>
diff --git 
a/bigtop-manager-server/src/main/resources/stacks/infra/1.0.0/services/prometheus/metainfo.xml
 
b/bigtop-manager-server/src/main/resources/stacks/infra/1.0.0/services/prometheus/metainfo.xml
index 92b2fdd..97cc63e 100644
--- 
a/bigtop-manager-server/src/main/resources/stacks/infra/1.0.0/services/prometheus/metainfo.xml
+++ 
b/bigtop-manager-server/src/main/resources/stacks/infra/1.0.0/services/prometheus/metainfo.xml
@@ -49,6 +49,7 @@
                 <operating-systems>
                     <os>centos7</os>
                     <os>rocky8</os>
+                    <os>openeuler22</os>
                 </operating-systems>
                 <architectures>
                     <arch>x86_64</arch>
diff --git 
a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/hdfs/HdfsParams.java
 
b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/hdfs/HdfsParams.java
index d33865a..b8fb121 100644
--- 
a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/hdfs/HdfsParams.java
+++ 
b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/hdfs/HdfsParams.java
@@ -85,7 +85,8 @@ public class HdfsParams extends BigtopParams {
         Map<String, Object> coreSite = 
LocalSettings.configurations(serviceName(), "core-site");
         List<String> namenodeList = LocalSettings.hosts("namenode");
         if (!namenodeList.isEmpty()) {
-            coreSite.put("fs.defaultFS", 
MessageFormat.format("hdfs://{0}:8020", namenodeList.get(0)));
+            coreSite.put(
+                    "fs.defaultFS", ((String) 
coreSite.get("fs.defaultFS")).replace("localhost", namenodeList.get(0)));
         }
         return coreSite;
     }
@@ -98,6 +99,18 @@ public class HdfsParams extends BigtopParams {
     @GlobalParams
     public Map<String, Object> hdfsSite() {
         Map<String, Object> hdfsSite = 
LocalSettings.configurations(serviceName(), "hdfs-site");
+        List<String> namenodeList = LocalSettings.hosts("namenode");
+        if (!namenodeList.isEmpty()) {
+            hdfsSite.put(
+                    "dfs.namenode.rpc-address",
+                    ((String) 
hdfsSite.get("dfs.namenode.rpc-address")).replace("0.0.0.0", 
namenodeList.get(0)));
+            hdfsSite.put(
+                    "dfs.datanode.https.address",
+                    ((String) 
hdfsSite.get("dfs.datanode.https.address")).replace("0.0.0.0", 
namenodeList.get(0)));
+            hdfsSite.put(
+                    "dfs.namenode.https-address",
+                    ((String) 
hdfsSite.get("dfs.namenode.https-address")).replace("0.0.0.0", 
namenodeList.get(0)));
+        }
 
         dfsDataDir = (String) hdfsSite.get("dfs.datanode.data.dir");
         dfsNameNodeDir = (String) hdfsSite.get("dfs.namenode.name.dir");
diff --git 
a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/spi/repo/PackageManagerType.java
 
b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/spi/repo/PackageManagerType.java
index f42af79..78892ee 100644
--- 
a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/spi/repo/PackageManagerType.java
+++ 
b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/spi/repo/PackageManagerType.java
@@ -28,6 +28,7 @@ import static 
org.apache.bigtop.manager.common.enums.OSType.CENTOS7;
 import static org.apache.bigtop.manager.common.enums.OSType.DEBIAN10;
 import static org.apache.bigtop.manager.common.enums.OSType.DEBIAN11;
 import static org.apache.bigtop.manager.common.enums.OSType.FEDORA36;
+import static org.apache.bigtop.manager.common.enums.OSType.OPENEULER22;
 import static org.apache.bigtop.manager.common.enums.OSType.ROCKY8;
 import static org.apache.bigtop.manager.common.enums.OSType.UBUNTU20;
 import static org.apache.bigtop.manager.common.enums.OSType.UBUNTU22;
@@ -36,7 +37,7 @@ import static 
org.apache.bigtop.manager.common.enums.OSType.UBUNTU22;
 public enum PackageManagerType {
     YUM(List.of(CENTOS7)),
 
-    DNF(List.of(ROCKY8, FEDORA36)),
+    DNF(List.of(ROCKY8, FEDORA36, OPENEULER22)),
 
     APT(List.of(UBUNTU20, UBUNTU22, DEBIAN10, DEBIAN11)),
     ;
diff --git a/dev-support/docker/openeuler22/Dockerfile 
b/dev-support/docker/openeuler22/Dockerfile
new file mode 100644
index 0000000..631f5ea
--- /dev/null
+++ b/dev-support/docker/openeuler22/Dockerfile
@@ -0,0 +1,33 @@
+# 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.
+
+FROM openeuler/openeuler:22.03
+
+RUN dnf -y install sudo wget openssh-clients openssh-server vim mariadb 
mariadb-server net-tools chrony krb5-server krb5-libs krb5-workstation git 
rpm-build python3 procps-ng
+RUN wget 
https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz
 -O /tmp/jdk.tar.gz --no-check-certificate \
+  && mkdir -p /usr/local/java && tar -xzf /tmp/jdk.tar.gz -C /usr/local/java 
--strip-components=1 \
+  && rm -f /tmp/jdk.tar.gz \
+  && ln -s /usr/local/java/bin/java /usr/bin/java
+RUN wget 
https://archive.apache.org/dist/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz
 -O /tmp/apache-maven.tar.gz --no-check-certificate \
+  && mkdir -p /usr/share/maven && tar -xzf /tmp/apache-maven.tar.gz -C 
/usr/share/maven --strip-components=1 \
+  && rm -f /tmp/apache-maven.tar.gz \
+  && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn
+RUN wget 
https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl3.py
 -O /usr/bin/systemctl
+
+RUN /bin/sed -i 's,#   StrictHostKeyChecking ask,StrictHostKeyChecking no,g' 
/etc/ssh/ssh_config
+
+RUN ssh-keygen -f "/root/.ssh/id_rsa" -N ""
+
+EXPOSE 1-65535
diff --git a/dev-support/docker/openeuler22/build-containers.sh 
b/dev-support/docker/openeuler22/build-containers.sh
new file mode 100755
index 0000000..23844dd
--- /dev/null
+++ b/dev-support/docker/openeuler22/build-containers.sh
@@ -0,0 +1,133 @@
+#!/bin/bash
+
+#
+# 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.
+#
+
+BIN_DIR=$(dirname $0)
+cd $BIN_DIR
+echo $PWD
+
+SKIP_BUILD=false
+
+for arg in "$@"
+do
+  if [ "$arg" == "--skip-build" ]; then
+    SKIP_BUILD=true
+  fi
+done
+
+if ! $SKIP_BUILD; then
+  echo -e "\033[32mBuild on docker\033[0m"
+  echo -e "\033[32mStarting container bigtop-manager-build-oe22\033[0m"
+  if [[ -z $(docker ps -a --format "table {{.Names}}" | grep 
"bigtop-manager-build-oe22") ]];then
+    docker run -it -d --name bigtop-manager-build-oe22 -u $(id -u):$(id -g) -v 
$PWD/../../../:/opt/develop/bigtop-manager/ -w /opt/develop/bigtop-manager 
bigtop-manager/develop:trunk-openeuler-22
+  else
+    docker start bigtop-manager-build-oe22
+  fi
+
+  echo -e "\033[32mCompiling bigtop-manager\033[0m"
+  docker exec bigtop-manager-build-oe22 bash -c "mvn clean package -DskipTests"
+  docker stop bigtop-manager-build-oe22
+fi
+
+echo -e "\033[32mCreating network bigtop-manager\033[0m"
+docker network create --driver bridge bigtop-manager
+
+echo -e "\033[32mCreating container bigtop-manager-server\033[0m"
+docker run -it -d -p 13306:3306 -p 15005:5005 -p 15006:5006 -p 18080:8080 
--name bigtop-manager-server --hostname bigtop-manager-server --network 
bigtop-manager --cap-add=SYS_TIME bigtop-manager/develop:trunk-openeuler-22
+docker cp ../../../bigtop-manager-server/target/bigtop-manager-server 
bigtop-manager-server:/opt/
+docker cp ../../../bigtop-manager-agent/target/bigtop-manager-agent 
bigtop-manager-server:/opt/
+SERVER_PUB_KEY=`docker exec bigtop-manager-server /bin/cat 
/root/.ssh/id_rsa.pub`
+docker exec bigtop-manager-server bash -c "echo '$SERVER_PUB_KEY' > 
/root/.ssh/authorized_keys"
+docker exec bigtop-manager-server ssh-keygen -N '' -t rsa -b 2048 -f 
/etc/ssh/ssh_host_rsa_key
+docker exec bigtop-manager-server ssh-keygen -N '' -t ecdsa -b 256 -f 
/etc/ssh/ssh_host_ecdsa_key
+docker exec bigtop-manager-server ssh-keygen -N '' -t ed25519 -b 256 -f 
/etc/ssh/ssh_host_ed25519_key
+docker exec bigtop-manager-server /bin/systemctl start sshd
+
+echo -e "\033[32mSetting up mariadb-server\033[0m"
+docker exec bigtop-manager-server bash -c "systemctl start mariadb"
+docker exec bigtop-manager-server bash -c "mysql -e \"UPDATE mysql.user SET 
Password = PASSWORD('root') WHERE User = 'root'\""
+docker exec bigtop-manager-server bash -c "mysql -e \"GRANT ALL PRIVILEGES ON 
*.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION\""
+docker exec bigtop-manager-server bash -c "mysql -e \"CREATE DATABASE 
bigtop_manager\""
+docker exec bigtop-manager-server bash -c "mysql -e \"FLUSH PRIVILEGES\""
+docker exec bigtop-manager-server bash -c "mysql -e \"DROP USER 
'root'@'localhost'\""
+
+echo -e "\033[32mCreating container bigtop-manager-agent-01\033[0m"
+docker run -it -d --name bigtop-manager-agent-01 --hostname 
bigtop-manager-agent-01 --network bigtop-manager --cap-add=SYS_TIME 
bigtop-manager/develop:trunk-openeuler-22
+docker cp ../../../bigtop-manager-agent/target/bigtop-manager-agent 
bigtop-manager-agent-01:/opt/
+docker exec bigtop-manager-agent-01 bash -c "echo '$SERVER_PUB_KEY' > 
/root/.ssh/authorized_keys"
+docker exec bigtop-manager-agent-01 ssh-keygen -N '' -t rsa -b 2048 -f 
/etc/ssh/ssh_host_rsa_key
+docker exec bigtop-manager-agent-01 ssh-keygen -N '' -t ecdsa -b 256 -f 
/etc/ssh/ssh_host_ecdsa_key
+docker exec bigtop-manager-agent-01 ssh-keygen -N '' -t ed25519 -b 256 -f 
/etc/ssh/ssh_host_ed25519_key
+docker exec bigtop-manager-agent-01 /bin/systemctl start sshd
+
+echo -e "\033[32mCreating container bigtop-manager-agent-02\033[0m"
+docker run -it -d --name bigtop-manager-agent-02 --hostname 
bigtop-manager-agent-02 --network bigtop-manager --cap-add=SYS_TIME 
bigtop-manager/develop:trunk-openeuler-22
+docker cp ../../../bigtop-manager-agent/target/bigtop-manager-agent 
bigtop-manager-agent-02:/opt/
+docker exec bigtop-manager-agent-02 bash -c "echo '$SERVER_PUB_KEY' > 
/root/.ssh/authorized_keys"
+docker exec bigtop-manager-agent-02 ssh-keygen -N '' -t rsa -b 2048 -f 
/etc/ssh/ssh_host_rsa_key
+docker exec bigtop-manager-agent-02 ssh-keygen -N '' -t ecdsa -b 256 -f 
/etc/ssh/ssh_host_ecdsa_key
+docker exec bigtop-manager-agent-02 ssh-keygen -N '' -t ed25519 -b 256 -f 
/etc/ssh/ssh_host_ed25519_key
+docker exec bigtop-manager-agent-02 /bin/systemctl start sshd
+
+echo -e "\033[32mConfiguring hosts file\033[0m"
+BIGTOP_MANAGER_SERVER_IP=`docker inspect -f '{{range 
.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' bigtop-manager-server`
+BIGTOP_MANAGER_AGENT_01_IP=`docker inspect -f '{{range 
.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' bigtop-manager-agent-01`
+BIGTOP_MANAGER_AGENT_02_IP=`docker inspect -f '{{range 
.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' bigtop-manager-agent-02`
+docker exec bigtop-manager-server bash -c "echo '$BIGTOP_MANAGER_AGENT_01_IP   
   bigtop-manager-agent-01' >> /etc/hosts"
+docker exec bigtop-manager-server bash -c "echo '$BIGTOP_MANAGER_AGENT_02_IP   
   bigtop-manager-agent-02' >> /etc/hosts"
+docker exec bigtop-manager-agent-01 bash -c "echo '$BIGTOP_MANAGER_SERVER_IP   
   bigtop-manager-server' >> /etc/hosts"
+docker exec bigtop-manager-agent-01 bash -c "echo '$BIGTOP_MANAGER_AGENT_02_IP 
     bigtop-manager-agent-02' >> /etc/hosts"
+docker exec bigtop-manager-agent-02 bash -c "echo '$BIGTOP_MANAGER_SERVER_IP   
   bigtop-manager-server' >> /etc/hosts"
+docker exec bigtop-manager-agent-02 bash -c "echo '$BIGTOP_MANAGER_AGENT_01_IP 
     bigtop-manager-agent-01' >> /etc/hosts"
+
+echo -e "\033[32mSynchronize Chrony\033[0m"
+docker exec bigtop-manager-server bash -c "systemctl start chronyd"
+docker exec bigtop-manager-server bash -c "chronyc tracking"
+docker exec bigtop-manager-agent-01 bash -c "systemctl start chronyd"
+docker exec bigtop-manager-agent-01 bash -c "chronyc tracking"
+docker exec bigtop-manager-agent-02 bash -c "systemctl start chronyd"
+docker exec bigtop-manager-agent-02 bash -c "chronyc tracking"
+
+echo -e "\033[32mServer Settings\033[0m"
+docker exec bigtop-manager-server bash -c "wget 
https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/8.0.33/mysql-connector-j-8.0.33.jar
 -O /opt/bigtop-manager-server/libs/mysql-connector-java-8.0.33.jar"
+docker exec bigtop-manager-server bash -c "sed -i 
's/org.postgresql.Driver/com.mysql.cj.jdbc.Driver/' 
/opt/bigtop-manager-server/conf/application.yml"
+docker exec bigtop-manager-server bash -c "sed -i 's/postgresql/mysql/' 
/opt/bigtop-manager-server/conf/application.yml"
+docker exec bigtop-manager-server bash -c "sed -i 
's/localhost:5432/localhost:3306/' 
/opt/bigtop-manager-server/conf/application.yml"
+docker exec bigtop-manager-server bash -c "sed -i 's/postgres/root/' 
/opt/bigtop-manager-server/conf/application.yml"
+
+docker exec bigtop-manager-server bash -c "sed -i 's/host: localhost/host: 
$BIGTOP_MANAGER_SERVER_IP/' /opt/bigtop-manager-agent/conf/application.yml"
+docker exec bigtop-manager-agent-01 bash -c "sed -i 's/host: localhost/host: 
$BIGTOP_MANAGER_SERVER_IP/' /opt/bigtop-manager-agent/conf/application.yml"
+docker exec bigtop-manager-agent-02 bash -c "sed -i 's/host: localhost/host: 
$BIGTOP_MANAGER_SERVER_IP/' /opt/bigtop-manager-agent/conf/application.yml"
+
+docker exec bigtop-manager-server bash -c "mysql -uroot -proot 
-Dbigtop_manager < /opt/bigtop-manager-server/ddl/MySQL-DDL-CREATE.sql"
+docker exec bigtop-manager-server bash -c "nohup /bin/bash 
/opt/bigtop-manager-server/bin/start.sh --debug > /dev/null 2>&1 &"
+docker exec bigtop-manager-server bash -c "nohup /bin/bash 
/opt/bigtop-manager-agent/bin/start.sh --debug > /dev/null 2>&1 &"
+docker exec bigtop-manager-agent-01 bash -c "nohup /bin/bash 
/opt/bigtop-manager-agent/bin/start.sh > /dev/null 2>&1 &"
+docker exec bigtop-manager-agent-02 bash -c "nohup /bin/bash 
/opt/bigtop-manager-agent/bin/start.sh > /dev/null 2>&1 &"
+
+echo -e "\033[32mPrint Bigtop-Manager Server RSA Private Key\033[0m"
+docker exec bigtop-manager-server bash -c "cat ~/.ssh/id_rsa"
+
+# MySQL HOST: bigtop-manager-server
+# MySQL PORT: 3306
+# DATABASE NAME: bigtop_manager
+# DATABASE USER NAME: root
+# DATABASE PASSWORD: root
+
diff --git a/dev-support/docker/openeuler22/build-image.sh 
b/dev-support/docker/openeuler22/build-image.sh
new file mode 100755
index 0000000..5694daf
--- /dev/null
+++ b/dev-support/docker/openeuler22/build-image.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+#
+# 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.
+#
+
+BIN_DIR=$(dirname $0)
+cd $BIN_DIR
+echo $PWD
+
+echo -e "\033[32mRemoving image bigtop-manager:trunk-openeuler-22\033[0m"
+docker rmi bigtop-manager/develop:trunk-openeuler-22
+
+echo -e "\033[32mBuilding image bigtop-manager:trunk-openeuler-22\033[0m"
+docker build -t bigtop-manager/develop:trunk-openeuler-22 .
diff --git a/dev-support/docker/openeuler22/clear-containers.sh 
b/dev-support/docker/openeuler22/clear-containers.sh
new file mode 100755
index 0000000..8962960
--- /dev/null
+++ b/dev-support/docker/openeuler22/clear-containers.sh
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+#
+# 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.
+#
+
+if docker ps -a | grep -q 'bigtop-manager-build-oe22'; then
+  echo -e "\033[32mStopping container bigtop-manager-build-oe22 and maven 
process\033[0m"
+  if [ `docker inspect --format '{{.State.Running}}' 
bigtop-manager-build-oe22` == true ];then
+    docker exec bigtop-manager-build-oe22 bash -c "pkill -KILL -f maven"
+    docker stop bigtop-manager-build-oe22
+  fi
+fi
+
+echo -e "\033[32mRemoving container bigtop-manager-server\033[0m"
+docker rm -f bigtop-manager-server
+
+echo -e "\033[32mRemoving container bigtop-manager-agent-01\033[0m"
+docker rm -f bigtop-manager-agent-01
+
+echo -e "\033[32mRemoving container bigtop-manager-agent-02\033[0m"
+docker rm -f bigtop-manager-agent-02
+
+echo -e "\033[32mRemoving network bigtop-manager\033[0m"
+docker network rm bigtop-manager
\ No newline at end of file
diff --git a/dev-support/docker/openeuler22/distribute-scripts.sh 
b/dev-support/docker/openeuler22/distribute-scripts.sh
new file mode 100755
index 0000000..e35c105
--- /dev/null
+++ b/dev-support/docker/openeuler22/distribute-scripts.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+#
+# 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.
+#
+
+echo -e "\033[32mSynchronizing script to bigtop-manager-server\033[0m"
+docker cp ../../../bigtop-manager-server/src/main/resources/stacks/ 
bigtop-manager-server:/opt/bigtop-manager-server/
+
+docker exec bigtop-manager-server bash -c "ps -ef | grep 
'org.apache.bigtop.manager.server.ServerApplication' | grep -v 'grep' | awk 
'{print $2}' | xargs kill"
+docker exec bigtop-manager-server bash -c "ps -ef | grep 
'org.apache.bigtop.manager.agent.AgentApplication' | grep -v 'grep' | awk 
'{print $2}' | xargs kill"
+docker exec bigtop-manager-agent-01 bash -c "ps -ef | grep 
'org.apache.bigtop.manager.agent.AgentApplication' | grep -v 'grep' | awk 
'{print $2}' | xargs kill"
+docker exec bigtop-manager-agent-02 bash -c "ps -ef | grep 
'org.apache.bigtop.manager.agent.AgentApplication' | grep -v 'grep' | awk 
'{print $2}' | xargs kill"
+
+docker exec bigtop-manager-server bash -c "nohup /bin/bash 
/opt/bigtop-manager-server/bin/start.sh > /dev/null 2>&1 &"
+docker exec bigtop-manager-server bash -c "nohup /bin/bash 
/opt/bigtop-manager-agent/bin/start.sh > /dev/null 2>&1 &"
+docker exec bigtop-manager-agent-01 bash -c "nohup /bin/bash 
/opt/bigtop-manager-agent/bin/start.sh > /dev/null 2>&1 &"
+docker exec bigtop-manager-agent-02 bash -c "nohup /bin/bash 
/opt/bigtop-manager-agent/bin/start.sh > /dev/null 2>&1 &"
+
+echo -e "\033[32mDone!\033[0m"
\ No newline at end of file
diff --git a/dev-support/docker/openeuler22/restart-containers.sh 
b/dev-support/docker/openeuler22/restart-containers.sh
new file mode 100755
index 0000000..7e0a497
--- /dev/null
+++ b/dev-support/docker/openeuler22/restart-containers.sh
@@ -0,0 +1,43 @@
+#
+# 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.
+#
+
+echo -e "\033[32mRestarting containers\033[0m"
+docker restart bigtop-manager-server
+docker restart bigtop-manager-agent-01
+docker restart bigtop-manager-agent-02
+
+echo -e "\033[32mRe-enabling systemctl servers\033[0m"
+docker exec bigtop-manager-server bash -c "systemctl start mariadb"
+docker exec bigtop-manager-server bash -c "systemctl start sshd"
+docker exec bigtop-manager-server bash -c "systemctl start chronyd"
+docker exec bigtop-manager-agent-01 bash -c "systemctl start sshd"
+docker exec bigtop-manager-agent-01 bash -c "systemctl start chronyd"
+docker exec bigtop-manager-agent-02 bash -c "systemctl start sshd"
+docker exec bigtop-manager-agent-02 bash -c "systemctl start chronyd"
+
+echo -e "\033[32mSynchronize Chrony\033[0m"
+docker exec bigtop-manager-server bash -c "chronyc tracking"
+docker exec bigtop-manager-agent-01 bash -c "chronyc tracking"
+docker exec bigtop-manager-agent-02 bash -c "chronyc tracking"
+
+echo -e "\033[32mRestarting bigtop-manager servers\033[0m"
+docker exec bigtop-manager-server bash -c "nohup /bin/bash 
/opt/bigtop-manager-server/bin/start.sh --debug > /dev/null 2>&1 &"
+docker exec bigtop-manager-server bash -c "nohup /bin/bash 
/opt/bigtop-manager-agent/bin/start.sh > /dev/null 2>&1 &"
+docker exec bigtop-manager-agent-01 bash -c "nohup /bin/bash 
/opt/bigtop-manager-agent/bin/start.sh > /dev/null 2>&1 &"
+docker exec bigtop-manager-agent-02 bash -c "nohup /bin/bash 
/opt/bigtop-manager-agent/bin/start.sh > /dev/null 2>&1 &"


Reply via email to