diff --git a/docker/docker-swarm/docker-compose.yml b/docker/docker-swarm/docker-compose.yml
index 20fb0cced3..ffa91a0ba8 100644
--- a/docker/docker-swarm/docker-compose.yml
+++ b/docker/docker-swarm/docker-compose.yml
@@ -16,36 +16,6 @@
version: "3.4"
-networks:
- dolphinscheduler-postgresql:
- driver: bridge
- dolphinscheduler-zookeeper:
- driver: bridge
- dolphinscheduler-api:
- driver: bridge
- dolphinscheduler-frontend:
- driver: bridge
- dolphinscheduler-alert:
- driver: bridge
- dolphinscheduler-master:
- driver: bridge
- dolphinscheduler-worker:
- driver: bridge
-
-volumes:
- dolphinscheduler-postgresql:
- dolphinscheduler-zookeeper:
- dolphinscheduler-api:
- dolphinscheduler-frontend:
- dolphinscheduler-alert:
- dolphinscheduler-master:
- dolphinscheduler-worker-data:
- dolphinscheduler-worker-logs:
-
-configs:
- dolphinscheduler-worker-task-env:
- file: ./dolphinscheduler_env.sh
-
services:
dolphinscheduler-postgresql:
@@ -58,16 +28,10 @@ services:
POSTGRESQL_USERNAME: root
POSTGRESQL_PASSWORD: root
POSTGRESQL_DATABASE: dolphinscheduler
- healthcheck:
- test: ["CMD", "pg_isready", "-U", "${POSTGRESQL_USERNAME}", "-d", "{POSTGRESQL_PASSWORD}", "-h", "localhost", "5432"]
- interval: 30s
- timeout: 5s
- retries: 3
- # start_period: 30s
- volumes:
+ volumes:
- dolphinscheduler-postgresql:/bitnami/postgresql
networks:
- - dolphinscheduler-postgresql
+ - dolphinscheduler
dolphinscheduler-zookeeper:
image: bitnami/zookeeper:latest
@@ -77,19 +41,13 @@ services:
environment:
TZ: Asia/Shanghai
ALLOW_ANONYMOUS_LOGIN: "yes"
- healthcheck:
- test: ["CMD-SHELL", "nc -z localhost 2181"]
- interval: 30s
- timeout: 5s
- retries: 3
- # start_period: 30s
volumes:
- dolphinscheduler-zookeeper:/bitnami/zookeeper
networks:
- - dolphinscheduler-zookeeper
+ - dolphinscheduler
dolphinscheduler-api:
- image: registry.cn-qingdao.aliyuncs.com/sxyj/dolphinscheduler:1.2.1
+ image: registry.cn-qingdao.aliyuncs.com/sxyj/dolphinscheduler:dev
container_name: dolphinscheduler-api
command: ["api-server"]
ports:
@@ -103,23 +61,21 @@ services:
POSTGRESQL_DATABASE: dolphinscheduler
ZOOKEEPER_QUORUM: dolphinscheduler-zookeeper:2181
healthcheck:
- test: ["CMD-SHELL", "curl -f http://localhost:12345"]
+ test: ["CMD", "/root/checkpoint.sh", "ApiApplicationServer"]
interval: 30s
timeout: 5s
retries: 3
- # start_period: 30s
+ start_period: 30s
depends_on:
- dolphinscheduler-postgresql
- dolphinscheduler-zookeeper
volumes:
- dolphinscheduler-api:/opt/dolphinscheduler/logs
networks:
- - dolphinscheduler-api
- - dolphinscheduler-postgresql
- - dolphinscheduler-zookeeper
+ - dolphinscheduler
dolphinscheduler-frontend:
- image: registry.cn-qingdao.aliyuncs.com/sxyj/dolphinscheduler:1.2.1
+ image: registry.cn-qingdao.aliyuncs.com/sxyj/dolphinscheduler:dev
container_name: dolphinscheduler-frontend
command: ["frontend"]
ports:
@@ -129,21 +85,20 @@ services:
FRONTEND_API_SERVER_HOST: dolphinscheduler-api
FRONTEND_API_SERVER_PORT: 12345
healthcheck:
- test: ["CMD-SHELL", "curl -f http://localhost:8888"]
+ test: ["CMD", "nc", "-z", "localhost", "8888"]
interval: 30s
timeout: 5s
retries: 3
- # start_period: 30s
+ start_period: 30s
depends_on:
- dolphinscheduler-api
volumes:
- dolphinscheduler-frontend:/var/log/nginx
networks:
- - dolphinscheduler-frontend
- - dolphinscheduler-api
+ - dolphinscheduler
dolphinscheduler-alert:
- image: registry.cn-qingdao.aliyuncs.com/sxyj/dolphinscheduler:1.2.1
+ image: registry.cn-qingdao.aliyuncs.com/sxyj/dolphinscheduler:dev
container_name: dolphinscheduler-alert
command: ["alert-server"]
environment:
@@ -172,17 +127,16 @@ services:
interval: 30s
timeout: 5s
retries: 3
- # start_period: 30s
+ start_period: 30s
depends_on:
- dolphinscheduler-postgresql
volumes:
- dolphinscheduler-alert:/opt/dolphinscheduler/logs
networks:
- - dolphinscheduler-alert
- - dolphinscheduler-postgresql
+ - dolphinscheduler
dolphinscheduler-master:
- image: registry.cn-qingdao.aliyuncs.com/sxyj/dolphinscheduler:1.2.1
+ image: registry.cn-qingdao.aliyuncs.com/sxyj/dolphinscheduler:dev
container_name: dolphinscheduler-master
command: ["master-server"]
ports:
@@ -207,19 +161,17 @@ services:
interval: 30s
timeout: 5s
retries: 3
- # start_period: 30s
+ start_period: 30s
depends_on:
- dolphinscheduler-postgresql
- dolphinscheduler-zookeeper
volumes:
- dolphinscheduler-master:/opt/dolphinscheduler/logs
networks:
- - dolphinscheduler-master
- - dolphinscheduler-postgresql
- - dolphinscheduler-zookeeper
+ - dolphinscheduler
dolphinscheduler-worker:
- image: registry.cn-qingdao.aliyuncs.com/sxyj/dolphinscheduler:1.2.1
+ image: registry.cn-qingdao.aliyuncs.com/sxyj/dolphinscheduler:dev
container_name: dolphinscheduler-worker
command: ["worker-server"]
ports:
@@ -245,17 +197,37 @@ services:
interval: 30s
timeout: 5s
retries: 3
- # start_period: 30s
+ start_period: 30s
depends_on:
- dolphinscheduler-postgresql
- dolphinscheduler-zookeeper
- volumes:
- - dolphinscheduler-worker-data:/tmp/dolphinscheduler
- - dolphinscheduler-worker-logs:/opt/dolphinscheduler/logs
- configs:
- - source: dolphinscheduler-worker-task-env
+ volumes:
+ - type: bind
+ source: ./dolphinscheduler_env.sh
target: /opt/dolphinscheduler/conf/env/dolphinscheduler_env.sh
+ - type: volume
+ source: dolphinscheduler-worker-data
+ target: /tmp/dolphinscheduler
+ - type: volume
+ source: dolphinscheduler-worker-logs
+ target: /opt/dolphinscheduler/logs
networks:
- - dolphinscheduler-worker
- - dolphinscheduler-postgresql
- - dolphinscheduler-zookeeper
\ No newline at end of file
+ - dolphinscheduler
+
+networks:
+ dolphinscheduler:
+ driver: bridge
+
+volumes:
+ dolphinscheduler-postgresql:
+ dolphinscheduler-zookeeper:
+ dolphinscheduler-api:
+ dolphinscheduler-frontend:
+ dolphinscheduler-alert:
+ dolphinscheduler-master:
+ dolphinscheduler-worker-data:
+ dolphinscheduler-worker-logs:
+
+configs:
+ dolphinscheduler-worker-task-env:
+ file: ./dolphinscheduler_env.sh
\ No newline at end of file
diff --git a/docker/docker-swarm/docker-stack.yml b/docker/docker-swarm/docker-stack.yml
new file mode 100644
index 0000000000..e628205ade
--- /dev/null
+++ b/docker/docker-swarm/docker-stack.yml
@@ -0,0 +1,230 @@
+# 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.
+
+version: "3.4"
+
+services:
+
+ dolphinscheduler-postgresql:
+ image: bitnami/postgresql:latest
+ ports:
+ - 5432:5432
+ environment:
+ TZ: Asia/Shanghai
+ POSTGRESQL_USERNAME: root
+ POSTGRESQL_PASSWORD: root
+ POSTGRESQL_DATABASE: dolphinscheduler
+ volumes:
+ - dolphinscheduler-postgresql:/bitnami/postgresql
+ networks:
+ - dolphinscheduler
+ deploy:
+ mode: replicated
+ replicas: 1
+
+ dolphinscheduler-zookeeper:
+ image: bitnami/zookeeper:latest
+ ports:
+ - 2181:2181
+ environment:
+ TZ: Asia/Shanghai
+ ALLOW_ANONYMOUS_LOGIN: "yes"
+ volumes:
+ - dolphinscheduler-zookeeper:/bitnami/zookeeper
+ networks:
+ - dolphinscheduler
+ deploy:
+ mode: replicated
+ replicas: 1
+
+ dolphinscheduler-api:
+ image: registry.cn-qingdao.aliyuncs.com/sxyj/dolphinscheduler:dev
+ command: ["api-server"]
+ ports:
+ - 12345:12345
+ environment:
+ TZ: Asia/Shanghai
+ POSTGRESQL_HOST: dolphinscheduler-postgresql
+ POSTGRESQL_PORT: 5432
+ POSTGRESQL_USERNAME: root
+ POSTGRESQL_PASSWORD: root
+ POSTGRESQL_DATABASE: dolphinscheduler
+ ZOOKEEPER_QUORUM: dolphinscheduler-zookeeper:2181
+ healthcheck:
+ test: ["CMD", "/root/checkpoint.sh", "ApiApplicationServer"]
+ interval: 30
+ timeout: 5s
+ retries: 3
+ start_period: 30s
+ volumes:
+ - dolphinscheduler-api:/opt/dolphinscheduler/logs
+ networks:
+ - dolphinscheduler
+ deploy:
+ mode: replicated
+ replicas: 1
+
+ dolphinscheduler-frontend:
+ image: registry.cn-qingdao.aliyuncs.com/sxyj/dolphinscheduler:dev
+ command: ["frontend"]
+ ports:
+ - 8888:8888
+ environment:
+ TZ: Asia/Shanghai
+ FRONTEND_API_SERVER_HOST: dolphinscheduler-api
+ FRONTEND_API_SERVER_PORT: 12345
+ healthcheck:
+ test: ["CMD", "nc", "-z", "localhost", "8888"]
+ interval: 30
+ timeout: 5s
+ retries: 3
+ start_period: 30s
+ volumes:
+ - dolphinscheduler-frontend:/var/log/nginx
+ networks:
+ - dolphinscheduler
+ deploy:
+ mode: replicated
+ replicas: 1
+
+ dolphinscheduler-alert:
+ image: registry.cn-qingdao.aliyuncs.com/sxyj/dolphinscheduler:dev
+ command: ["alert-server"]
+ environment:
+ TZ: Asia/Shanghai
+ XLS_FILE_PATH: "/tmp/xls"
+ MAIL_SERVER_HOST: ""
+ MAIL_SERVER_PORT: ""
+ MAIL_SENDER: ""
+ MAIL_USER: ""
+ MAIL_PASSWD: ""
+ MAIL_SMTP_STARTTLS_ENABLE: "false"
+ MAIL_SMTP_SSL_ENABLE: "false"
+ MAIL_SMTP_SSL_TRUST: ""
+ ENTERPRISE_WECHAT_ENABLE: "false"
+ ENTERPRISE_WECHAT_CORP_ID: ""
+ ENTERPRISE_WECHAT_SECRET: ""
+ ENTERPRISE_WECHAT_AGENT_ID: ""
+ ENTERPRISE_WECHAT_USERS: ""
+ POSTGRESQL_HOST: dolphinscheduler-postgresql
+ POSTGRESQL_PORT: 5432
+ POSTGRESQL_USERNAME: root
+ POSTGRESQL_PASSWORD: root
+ POSTGRESQL_DATABASE: dolphinscheduler
+ healthcheck:
+ test: ["CMD", "/root/checkpoint.sh", "AlertServer"]
+ interval: 30
+ timeout: 5s
+ retries: 3
+ start_period: 30s
+ volumes:
+ - dolphinscheduler-alert:/opt/dolphinscheduler/logs
+ networks:
+ - dolphinscheduler
+ deploy:
+ mode: replicated
+ replicas: 1
+
+ dolphinscheduler-master:
+ image: registry.cn-qingdao.aliyuncs.com/sxyj/dolphinscheduler:dev
+ command: ["master-server"]
+ ports:
+ - 5678:5678
+ environment:
+ TZ: Asia/Shanghai
+ MASTER_EXEC_THREADS: "100"
+ MASTER_EXEC_TASK_NUM: "20"
+ MASTER_HEARTBEAT_INTERVAL: "10"
+ MASTER_TASK_COMMIT_RETRYTIMES: "5"
+ MASTER_TASK_COMMIT_INTERVAL: "1000"
+ MASTER_MAX_CPULOAD_AVG: "100"
+ MASTER_RESERVED_MEMORY: "0.1"
+ POSTGRESQL_HOST: dolphinscheduler-postgresql
+ POSTGRESQL_PORT: 5432
+ POSTGRESQL_USERNAME: root
+ POSTGRESQL_PASSWORD: root
+ POSTGRESQL_DATABASE: dolphinscheduler
+ ZOOKEEPER_QUORUM: dolphinscheduler-zookeeper:2181
+ healthcheck:
+ test: ["CMD", "/root/checkpoint.sh", "MasterServer"]
+ interval: 30
+ timeout: 5s
+ retries: 3
+ start_period: 30s
+ volumes:
+ - dolphinscheduler-master:/opt/dolphinscheduler/logs
+ networks:
+ - dolphinscheduler
+ deploy:
+ mode: replicated
+ replicas: 1
+
+ dolphinscheduler-worker:
+ image: registry.cn-qingdao.aliyuncs.com/sxyj/dolphinscheduler:dev
+ command: ["worker-server"]
+ ports:
+ - 1234:1234
+ - 50051:50051
+ environment:
+ TZ: Asia/Shanghai
+ WORKER_EXEC_THREADS: "100"
+ WORKER_HEARTBEAT_INTERVAL: "10"
+ WORKER_FETCH_TASK_NUM: "3"
+ WORKER_MAX_CPULOAD_AVG: "100"
+ WORKER_RESERVED_MEMORY: "0.1"
+ WORKER_GROUP: "default"
+ DOLPHINSCHEDULER_DATA_BASEDIR_PATH: "/tmp/dolphinscheduler"
+ POSTGRESQL_HOST: dolphinscheduler-postgresql
+ POSTGRESQL_PORT: 5432
+ POSTGRESQL_USERNAME: root
+ POSTGRESQL_PASSWORD: root
+ POSTGRESQL_DATABASE: dolphinscheduler
+ ZOOKEEPER_QUORUM: dolphinscheduler-zookeeper:2181
+ healthcheck:
+ test: ["CMD", "/root/checkpoint.sh", "WorkerServer"]
+ interval: 30
+ timeout: 5s
+ retries: 3
+ start_period: 30s
+ volumes:
+ - dolphinscheduler-worker-data:/tmp/dolphinscheduler
+ - dolphinscheduler-worker-logs:/opt/dolphinscheduler/logs
+ configs:
+ - source: dolphinscheduler-worker-task-env
+ target: /opt/dolphinscheduler/conf/env/dolphinscheduler_env.sh
+ networks:
+ - dolphinscheduler
+ deploy:
+ mode: replicated
+ replicas: 1
+
+networks:
+ dolphinscheduler:
+ driver: overlay
+
+volumes:
+ dolphinscheduler-postgresql:
+ dolphinscheduler-zookeeper:
+ dolphinscheduler-api:
+ dolphinscheduler-frontend:
+ dolphinscheduler-alert:
+ dolphinscheduler-master:
+ dolphinscheduler-worker-data:
+ dolphinscheduler-worker-logs:
+
+configs:
+ dolphinscheduler-worker-task-env:
+ file: ./dolphinscheduler_env.sh
\ No newline at end of file
diff --git a/docker/docker-swarm/dolphinscheduler_env.sh b/docker/docker-swarm/dolphinscheduler_env.sh
index 790e30636e..654318cb41 100644
--- a/docker/docker-swarm/dolphinscheduler_env.sh
+++ b/docker/docker-swarm/dolphinscheduler_env.sh
@@ -15,12 +15,6 @@
# limitations under the License.
#
-export HADOOP_HOME=/opt/soft/hadoop
-export HADOOP_CONF_DIR=/opt/soft/hadoop/etc/hadoop
-export SPARK_HOME1=/opt/soft/spark1
-export SPARK_HOME2=/opt/soft/spark2
-export PYTHON_HOME=/opt/soft/python
-export JAVA_HOME=/opt/soft/java
-export HIVE_HOME=/opt/soft/hive
-export FLINK_HOME=/opt/soft/flink
-export PATH=$HADOOP_HOME/bin:$SPARK_HOME1/bin:$SPARK_HOME2/bin:$PYTHON_HOME:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$PATH
\ No newline at end of file
+export PYTHON_HOME=/usr/bin/python2
+export JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk
+export PATH=$PYTHON_HOME:$JAVA_HOME/bin:$PATH
\ No newline at end of file
diff --git a/dockerfile/Dockerfile b/dockerfile/Dockerfile
index c48b51e377..bed8f6537c 100644
--- a/dockerfile/Dockerfile
+++ b/dockerfile/Dockerfile
@@ -27,7 +27,7 @@ ENV DEBIAN_FRONTEND noninteractive
#If install slowly, you can replcae alpine's mirror with aliyun's mirror, Example:
#RUN sed -i "s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g" /etc/apk/repositories
RUN apk update && \
- apk add dos2unix shadow bash openrc python sudo vim wget iputils net-tools openssh-server py2-pip tini && \
+ apk add dos2unix shadow bash openrc python python3 sudo vim wget iputils net-tools openssh-server py2-pip tini && \
apk add --update procps && \
openrc boot && \
pip install kazoo
@@ -67,6 +67,7 @@ ADD ./checkpoint.sh /root/checkpoint.sh
ADD ./startup-init-conf.sh /root/startup-init-conf.sh
ADD ./startup.sh /root/startup.sh
ADD ./conf/dolphinscheduler/*.tpl /opt/dolphinscheduler/conf/
+ADD ./conf/dolphinscheduler/logback/* /opt/dolphinscheduler/conf/
ADD conf/dolphinscheduler/env/dolphinscheduler_env.sh /opt/dolphinscheduler/conf/env/
RUN chmod +x /root/checkpoint.sh && \
chmod +x /root/startup-init-conf.sh && \
diff --git a/dockerfile/conf/dolphinscheduler/env/dolphinscheduler_env.sh b/dockerfile/conf/dolphinscheduler/env/dolphinscheduler_env.sh
index 070c438bb6..78c8f98bc1 100644
--- a/dockerfile/conf/dolphinscheduler/env/dolphinscheduler_env.sh
+++ b/dockerfile/conf/dolphinscheduler/env/dolphinscheduler_env.sh
@@ -15,12 +15,6 @@
# limitations under the License.
#
-export HADOOP_HOME=/opt/soft/hadoop
-export HADOOP_CONF_DIR=/opt/soft/hadoop/etc/hadoop
-export SPARK_HOME1=/opt/soft/spark1
-export SPARK_HOME2=/opt/soft/spark2
-export PYTHON_HOME=/opt/soft/python
-export JAVA_HOME=/opt/soft/java
-export HIVE_HOME=/opt/soft/hive
-export FLINK_HOME=/opt/soft/flink
-export PATH=$HADOOP_HOME/bin:$SPARK_HOME1/bin:$SPARK_HOME2/bin:$PYTHON_HOME:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$PATH
+export PYTHON_HOME=/usr/bin/python2
+export JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk
+export PATH=$PYTHON_HOME/bin:$JAVA_HOME/bin:$PATH
diff --git a/dockerfile/conf/dolphinscheduler/logback/logback-alert.xml b/dockerfile/conf/dolphinscheduler/logback/logback-alert.xml
new file mode 100644
index 0000000000..5d1c07858d
--- /dev/null
+++ b/dockerfile/conf/dolphinscheduler/logback/logback-alert.xml
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+ [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
+
+ UTF-8
+
+
+
+
+ ${log.base}/dolphinscheduler-alert.log
+
+ ${log.base}/dolphinscheduler-alert.%d{yyyy-MM-dd_HH}.%i.log
+ 20
+ 64MB
+
+
+
+ [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
+
+ UTF-8
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dockerfile/conf/dolphinscheduler/logback/logback-api.xml b/dockerfile/conf/dolphinscheduler/logback/logback-api.xml
new file mode 100644
index 0000000000..2df90d8392
--- /dev/null
+++ b/dockerfile/conf/dolphinscheduler/logback/logback-api.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+ [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
+
+ UTF-8
+
+
+
+
+
+ ${log.base}/dolphinscheduler-api-server.log
+
+ INFO
+
+
+ ${log.base}/dolphinscheduler-api-server.%d{yyyy-MM-dd_HH}.%i.log
+ 168
+ 64MB
+
+
+
+ [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
+
+ UTF-8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dockerfile/conf/dolphinscheduler/logback/logback-master.xml b/dockerfile/conf/dolphinscheduler/logback/logback-master.xml
new file mode 100644
index 0000000000..7410c01f05
--- /dev/null
+++ b/dockerfile/conf/dolphinscheduler/logback/logback-master.xml
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+
+
+ [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
+
+ UTF-8
+
+
+
+
+
+
+ INFO
+
+
+
+ taskAppId
+ ${log.base}
+
+
+
+ ${log.base}/${taskAppId}.log
+
+
+ [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %messsage%n
+
+ UTF-8
+
+ true
+
+
+
+
+
+ ${log.base}/dolphinscheduler-master.log
+
+
+ ${log.base}/dolphinscheduler-master.%d{yyyy-MM-dd_HH}.%i.log
+ 168
+ 200MB
+
+
+
+ [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
+
+ UTF-8
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dockerfile/conf/dolphinscheduler/conf/worker_logback.xml b/dockerfile/conf/dolphinscheduler/logback/logback-worker.xml
similarity index 84%
rename from dockerfile/conf/dolphinscheduler/conf/worker_logback.xml
rename to dockerfile/conf/dolphinscheduler/logback/logback-worker.xml
index 1b09260334..be1d0acde5 100644
--- a/dockerfile/conf/dolphinscheduler/conf/worker_logback.xml
+++ b/dockerfile/conf/dolphinscheduler/logback/logback-worker.xml
@@ -1,4 +1,4 @@
-
+
-
+
+
@@ -27,11 +28,15 @@
UTF-8
+
+
+
INFO
-
+
taskAppId
${log.base}
@@ -41,7 +46,7 @@
${log.base}/${taskAppId}.log
- [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
+ [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %messsage%n
UTF-8
@@ -49,31 +54,30 @@
-
${log.base}/dolphinscheduler-worker.log
-
+
INFO
-
+
${log.base}/dolphinscheduler-worker.%d{yyyy-MM-dd_HH}.%i.log
168
200MB
-
- [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
+ [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %messsage%n
UTF-8
-
-
+
+
+
\ No newline at end of file
diff --git a/dockerfile/startup.sh b/dockerfile/startup.sh
index af3c456116..71ab506777 100644
--- a/dockerfile/startup.sh
+++ b/dockerfile/startup.sh
@@ -25,7 +25,9 @@ DOLPHINSCHEDULER_LOGS=${DOLPHINSCHEDULER_HOME}/logs
# start postgresql
initPostgreSQL() {
echo "checking postgresql"
- if [ -n "$(ifconfig | grep ${POSTGRESQL_HOST})" ]; then
+ if [[ "${POSTGRESQL_HOST}" = "127.0.0.1" || "${POSTGRESQL_HOST}" = "localhost" ]]; then
+ export PGPORT=${POSTGRESQL_PORT}
+
echo "start postgresql service"
rc-service postgresql restart
@@ -47,10 +49,21 @@ initPostgreSQL() {
sudo -u postgres psql -tAc "grant all privileges on database dolphinscheduler to ${POSTGRESQL_USERNAME}"
fi
+ echo "test postgresql service"
+ while ! nc -z ${POSTGRESQL_HOST} ${POSTGRESQL_PORT}; do
+ counter=$((counter+1))
+ if [ $counter == 30 ]; then
+ echo "Error: Couldn't connect to postgresql."
+ exit 1
+ fi
+ echo "Trying to connect to postgresql at ${POSTGRESQL_HOST}:${POSTGRESQL_PORT}. Attempt $counter."
+ sleep 5
+ done
+
echo "connect postgresql service"
- v=$(sudo -u postgres PGPASSWORD=${POSTGRESQL_PASSWORD} psql -h ${POSTGRESQL_HOST} -U ${POSTGRESQL_USERNAME} -d dolphinscheduler -tAc "select 1")
+ v=$(sudo -u postgres PGPASSWORD=${POSTGRESQL_PASSWORD} psql -h ${POSTGRESQL_HOST} -p ${POSTGRESQL_PORT} -U ${POSTGRESQL_USERNAME} -d dolphinscheduler -tAc "select 1")
if [ "$(echo '${v}' | grep 'FATAL' | wc -l)" -eq 1 ]; then
- echo "Can't connect to database...${v}"
+ echo "Error: Can't connect to database...${v}"
exit 1
fi
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ResourcesService.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ResourcesService.java
index a2af47b2d5..8f3075476e 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ResourcesService.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ResourcesService.java
@@ -45,8 +45,10 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
+import java.io.IOException;
import java.text.MessageFormat;
import java.util.*;
+import java.util.regex.Matcher;
import java.util.stream.Collectors;
import static org.apache.dolphinscheduler.common.Constants.*;
@@ -315,7 +317,6 @@ public class ResourcesService extends BaseService {
return result;
}
-
if (name.equals(resource.getAlias()) && desc.equals(resource.getDescription())) {
putMsg(result, Status.SUCCESS);
return result;
@@ -323,9 +324,10 @@ public class ResourcesService extends BaseService {
//check resource aleady exists
String originFullName = resource.getFullName();
+ String originResourceName = resource.getAlias();
String fullName = String.format("%s%s",originFullName.substring(0,originFullName.lastIndexOf("/")+1),name);
- if (!resource.getAlias().equals(name) && checkResourceExists(fullName, 0, type.ordinal())) {
+ if (!originResourceName.equals(name) && checkResourceExists(fullName, 0, type.ordinal())) {
logger.error("resource {} already exists, can't recreate", name);
putMsg(result, Status.RESOURCE_EXIST);
return result;
@@ -336,8 +338,22 @@ public class ResourcesService extends BaseService {
if (StringUtils.isEmpty(tenantCode)){
return result;
}
+ // verify whether the resource exists in storage
+ // get the path of origin file in storage
+ String originHdfsFileName = HadoopUtils.getHdfsFileName(resource.getType(),tenantCode,originFullName);
+ try {
+ if (!HadoopUtils.getInstance().exists(originHdfsFileName)) {
+ logger.error("{} not exist", originHdfsFileName);
+ putMsg(result,Status.RESOURCE_NOT_EXIST);
+ return result;
+ }
+ } catch (IOException e) {
+ logger.error(e.getMessage(),e);
+ throw new ServiceException(Status.HDFS_OPERATION_ERROR);
+ }
+
String nameWithSuffix = name;
- String originResourceName = resource.getAlias();
+
if (!resource.isDirectory()) {
//get the file suffix
String suffix = originResourceName.substring(originResourceName.lastIndexOf("."));
@@ -361,10 +377,11 @@ public class ResourcesService extends BaseService {
try {
resourcesMapper.updateById(resource);
if (resource.isDirectory() && CollectionUtils.isNotEmpty(childrenResource)) {
+ String matcherFullName = Matcher.quoteReplacement(fullName);
List childResourceList = new ArrayList<>();
List resourceList = resourcesMapper.listResourceByIds(childrenResource.toArray(new Integer[childrenResource.size()]));
childResourceList = resourceList.stream().map(t -> {
- t.setFullName(t.getFullName().replaceFirst(oldFullName, fullName));
+ t.setFullName(t.getFullName().replaceFirst(oldFullName, matcherFullName));
t.setUpdateTime(now);
return t;
}).collect(Collectors.toList());
@@ -389,19 +406,13 @@ public class ResourcesService extends BaseService {
return result;
}
- // get the path of origin file in hdfs
- String originHdfsFileName = HadoopUtils.getHdfsFileName(resource.getType(),tenantCode,originFullName);
// get the path of dest file in hdfs
String destHdfsFileName = HadoopUtils.getHdfsFileName(resource.getType(),tenantCode,fullName);
+
try {
- if (HadoopUtils.getInstance().exists(originHdfsFileName)) {
- logger.info("hdfs copy {} -> {}", originHdfsFileName, destHdfsFileName);
- HadoopUtils.getInstance().copy(originHdfsFileName, destHdfsFileName, true, true);
- } else {
- logger.error("{} not exist", originHdfsFileName);
- putMsg(result,Status.RESOURCE_NOT_EXIST);
- }
+ logger.info("start hdfs copy {} -> {}", originHdfsFileName, destHdfsFileName);
+ HadoopUtils.getInstance().copy(originHdfsFileName, destHdfsFileName, true, true);
} catch (Exception e) {
logger.error(MessageFormat.format("hdfs copy {0} -> {1} fail", originHdfsFileName, destHdfsFileName), e);
putMsg(result,Status.HDFS_COPY_FAIL);
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ResourcesServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ResourcesServiceTest.java
index 4f9176d699..e52f4670e2 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ResourcesServiceTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ResourcesServiceTest.java
@@ -19,12 +19,16 @@ package org.apache.dolphinscheduler.api.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.dolphinscheduler.api.enums.Status;
+import org.apache.dolphinscheduler.api.exceptions.ServiceException;
import org.apache.dolphinscheduler.api.utils.PageInfo;
import org.apache.dolphinscheduler.api.utils.Result;
import org.apache.dolphinscheduler.common.Constants;
import org.apache.dolphinscheduler.common.enums.ResourceType;
import org.apache.dolphinscheduler.common.enums.UserType;
-import org.apache.dolphinscheduler.common.utils.*;
+import org.apache.dolphinscheduler.common.utils.CollectionUtils;
+import org.apache.dolphinscheduler.common.utils.FileUtils;
+import org.apache.dolphinscheduler.common.utils.HadoopUtils;
+import org.apache.dolphinscheduler.common.utils.PropertyUtils;
import org.apache.dolphinscheduler.dao.entity.Resource;
import org.apache.dolphinscheduler.dao.entity.Tenant;
import org.apache.dolphinscheduler.dao.entity.UdfFunc;
@@ -37,7 +41,6 @@ import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
-import org.omg.CORBA.Any;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PowerMockIgnore;
import org.powermock.core.classloader.annotations.PrepareForTest;
@@ -172,10 +175,29 @@ public class ResourcesServiceTest {
logger.info(result.toString());
Assert.assertEquals(Status.USER_NO_OPERATION_PERM.getMsg(),result.getMsg());
+ //RESOURCE_NOT_EXIST
+ user.setId(1);
+ Mockito.when(userMapper.queryDetailsById(1)).thenReturn(getUser());
+ Mockito.when(tenantMapper.queryById(1)).thenReturn(getTenant());
+ PowerMockito.when(HadoopUtils.getHdfsFileName(Mockito.any(), Mockito.any(),Mockito.anyString())).thenReturn("test1");
+
+ try {
+ Mockito.when(HadoopUtils.getInstance().exists(Mockito.any())).thenReturn(false);
+ } catch (IOException e) {
+ logger.error(e.getMessage(),e);
+ }
+ result = resourcesService.updateResource(user, 1, "ResourcesServiceTest1.jar", "ResourcesServiceTest", ResourceType.UDF);
+ Assert.assertEquals(Status.RESOURCE_NOT_EXIST.getMsg(),result.getMsg());
+
//SUCCESS
user.setId(1);
Mockito.when(userMapper.queryDetailsById(1)).thenReturn(getUser());
Mockito.when(tenantMapper.queryById(1)).thenReturn(getTenant());
+ try {
+ Mockito.when(HadoopUtils.getInstance().exists(Mockito.any())).thenReturn(true);
+ } catch (IOException e) {
+ logger.error(e.getMessage(),e);
+ }
result = resourcesService.updateResource(user,1,"ResourcesServiceTest.jar","ResourcesServiceTest",ResourceType.FILE);
logger.info(result.toString());
@@ -199,21 +221,16 @@ public class ResourcesServiceTest {
logger.info(result.toString());
Assert.assertEquals(Status.TENANT_NOT_EXIST.getMsg(),result.getMsg());
- //RESOURCE_NOT_EXIST
- Mockito.when(tenantMapper.queryById(1)).thenReturn(getTenant());
- PowerMockito.when(HadoopUtils.getHdfsResourceFileName(Mockito.any(), Mockito.any())).thenReturn("test1");
+ //SUCCESS
+ Mockito.when(tenantMapper.queryById(1)).thenReturn(getTenant());
+ PowerMockito.when(HadoopUtils.getHdfsResourceFileName(Mockito.any(), Mockito.any())).thenReturn("test");
try {
- Mockito.when(hadoopUtils.exists("test")).thenReturn(true);
- } catch (IOException e) {
- e.printStackTrace();
+ PowerMockito.when(HadoopUtils.getInstance().copy(Mockito.anyString(),Mockito.anyString(),true,true)).thenReturn(true);
+ } catch (Exception e) {
+ logger.error(e.getMessage(),e);
}
- result = resourcesService.updateResource(user,1,"ResourcesServiceTest1.jar","ResourcesServiceTest",ResourceType.UDF);
- logger.info(result.toString());
- Assert.assertEquals(Status.RESOURCE_NOT_EXIST.getMsg(),result.getMsg());
- //SUCCESS
- PowerMockito.when(HadoopUtils.getHdfsResourceFileName(Mockito.any(), Mockito.any())).thenReturn("test");
result = resourcesService.updateResource(user,1,"ResourcesServiceTest1.jar","ResourcesServiceTest1.jar",ResourceType.UDF);
logger.info(result.toString());
Assert.assertEquals(Status.SUCCESS.getMsg(),result.getMsg());
diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/HadoopUtils.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/HadoopUtils.java
index 02f00ce330..963aff5f31 100644
--- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/HadoopUtils.java
+++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/HadoopUtils.java
@@ -503,6 +503,9 @@ public class HadoopUtils implements Closeable {
* @return hdfs file name
*/
public static String getHdfsFileName(ResourceType resourceType, String tenantCode, String fileName) {
+ if (fileName.startsWith("/")) {
+ fileName = fileName.replaceFirst("/","");
+ }
return String.format("%s/%s", getHdfsDir(resourceType,tenantCode), fileName);
}
@@ -514,6 +517,9 @@ public class HadoopUtils implements Closeable {
* @return get absolute path and name for file on hdfs
*/
public static String getHdfsResourceFileName(String tenantCode, String fileName) {
+ if (fileName.startsWith("/")) {
+ fileName = fileName.replaceFirst("/","");
+ }
return String.format("%s/%s", getHdfsResDir(tenantCode), fileName);
}
@@ -525,6 +531,9 @@ public class HadoopUtils implements Closeable {
* @return get absolute path and name for udf file on hdfs
*/
public static String getHdfsUdfFileName(String tenantCode, String fileName) {
+ if (fileName.startsWith("/")) {
+ fileName = fileName.replaceFirst("/","");
+ }
return String.format("%s/%s", getHdfsUdfDir(tenantCode), fileName);
}
diff --git a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/HadoopUtilsTest.java b/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/HadoopUtilsTest.java
index 00b8f1c5c6..e239fe7cb0 100644
--- a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/HadoopUtilsTest.java
+++ b/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/HadoopUtilsTest.java
@@ -127,6 +127,18 @@ public class HadoopUtilsTest {
Assert.assertEquals("/dolphinscheduler/11000/resources/aa.txt", result);
}
+ @Test
+ public void getHdfsResourceFileName() {
+ String result = hadoopUtils.getHdfsResourceFileName("11000","aa.txt");
+ Assert.assertEquals("/dolphinscheduler/11000/resources/aa.txt", result);
+ }
+
+ @Test
+ public void getHdfsUdfFileName() {
+ String result = hadoopUtils.getHdfsFileName(ResourceType.UDF,"11000","aa.txt");
+ Assert.assertEquals("/dolphinscheduler/11000/udfs/aa.txt", result);
+ }
+
@Test
public void isYarnEnabled() {
boolean result = hadoopUtils.isYarnEnabled();
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/list/index.vue b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/list/index.vue
index 1f28578504..5dd12b4355 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/list/index.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/list/index.vue
@@ -35,7 +35,7 @@
-
+
@@ -64,7 +64,8 @@
pageNo: 1,
searchVal: '',
userId: ''
- }
+ },
+ isLeft: true
}
},
mixins: [listUrlParamHandle],
@@ -98,6 +99,11 @@
* get data list
*/
_getList (flag) {
+ if(sessionStorage.getItem('isLeft')==0) {
+ this.isLeft = false
+ } else {
+ this.isLeft = true
+ }
this.isLoading = !flag
this.getProcessListP(this.searchParams).then(res => {
if(this.searchParams.pageNo>1 && res.totalList.length == 0) {
@@ -133,6 +139,9 @@
mounted() {
this.$modal.destroy()
},
+ beforeDestroy () {
+ sessionStorage.setItem('isLeft',1)
+ },
components: { mList, mConditions, mSpin, mListConstruction, mSecondaryMenu, mNoData }
}
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/list/index.vue b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/list/index.vue
index b95d4ed720..891dc2e281 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/list/index.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/list/index.vue
@@ -30,7 +30,7 @@
-
+
@@ -74,7 +74,8 @@
endDate: '',
// Exectuor Name
executorName: ''
- }
+ },
+ isLeft: true
}
},
props: {},
@@ -136,6 +137,11 @@
* @desc Prevent functions from being called multiple times
*/
_debounceGET: _.debounce(function (flag) {
+ if(sessionStorage.getItem('isLeft')==0) {
+ this.isLeft = false
+ } else {
+ this.isLeft = true
+ }
this._getProcessInstanceListP(flag)
}, 100, {
'leading': false,
@@ -183,6 +189,7 @@
beforeDestroy () {
// Destruction wheel
clearInterval(this.setIntervalP)
+ sessionStorage.setItem('isLeft',1)
},
components: { mList, mInstanceConditions, mSpin, mListConstruction, mSecondaryMenu, mNoData }
}
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/taskInstance/index.vue b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/taskInstance/index.vue
index 4cb166647e..594ffad14e 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/taskInstance/index.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/taskInstance/index.vue
@@ -30,7 +30,7 @@
-
+
@@ -71,7 +71,8 @@
endDate: '',
// Exectuor Name
executorName: ''
- }
+ },
+ isLeft: true
}
},
mixins: [listUrlParamHandle],
@@ -118,6 +119,11 @@
* @desc Prevent functions from being called multiple times
*/
_debounceGET: _.debounce(function (flag) {
+ if(sessionStorage.getItem('isLeft')==0) {
+ this.isLeft = false
+ } else {
+ this.isLeft = true
+ }
this._getList(flag)
}, 100, {
'leading': false,
@@ -146,6 +152,7 @@
beforeDestroy () {
// Destruction wheel
clearInterval(this.setIntervalP)
+ sessionStorage.setItem('isLeft',1)
},
components: { mList, mInstanceConditions, mSpin, mListConstruction, mSecondaryMenu, mNoData }
}
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/file/pages/list/index.vue b/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/file/pages/list/index.vue
index 73ce023ee7..5cf343ddda 100755
--- a/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/file/pages/list/index.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/file/pages/list/index.vue
@@ -38,7 +38,7 @@
-
+
@@ -67,7 +67,8 @@
pageNo: 1,
searchVal: '',
type: 'FILE'
- }
+ },
+ isLeft: true
}
},
mixins: [listUrlParamHandle],
@@ -91,6 +92,11 @@
this.searchParams.pageSize = val
},
_getList (flag) {
+ if(sessionStorage.getItem('isLeft')==0) {
+ this.isLeft = false
+ } else {
+ this.isLeft = true
+ }
this.isLoading = !flag
this.getResourcesListP(this.searchParams).then(res => {
if(this.searchParams.pageNo>1 && res.totalList.length == 0) {
@@ -125,6 +131,9 @@
mounted () {
this.$modal.destroy()
},
+ beforeDestroy () {
+ sessionStorage.setItem('isLeft',1)
+ },
components: { mListConstruction, mConditions, mList, mSpin, mNoData }
}
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/file/pages/subdirectory/index.vue b/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/file/pages/subdirectory/index.vue
index 12be6b0bc8..dac5cc0a86 100755
--- a/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/file/pages/subdirectory/index.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/file/pages/subdirectory/index.vue
@@ -42,7 +42,7 @@
-
+
@@ -73,6 +73,7 @@
searchVal: '',
type: 'FILE'
},
+ isLeft: true,
breadList: []
}
},
@@ -97,6 +98,11 @@
this.searchParams.pageSize = val
},
_getList (flag) {
+ if(sessionStorage.getItem('isLeft')==0) {
+ this.isLeft = false
+ } else {
+ this.isLeft = true
+ }
this.isLoading = !flag
this.getResourcesListP(this.searchParams).then(res => {
if(this.searchParams.pageNo>1 && res.totalList.length == 0) {
@@ -159,6 +165,9 @@
this.breadList = dir
this.$modal.destroy()
},
+ beforeDestroy () {
+ sessionStorage.setItem('isLeft',1)
+ },
components: { mListConstruction, mConditions, mList, mSpin, mNoData }
}
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/function/index.vue b/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/function/index.vue
index d6c79bd258..74b789fe93 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/function/index.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/function/index.vue
@@ -36,8 +36,7 @@
-
-
+
@@ -64,7 +63,8 @@
pageSize: 10,
pageNo: 1,
searchVal: ''
- }
+ },
+ isLeft: true
}
},
mixins: [listUrlParamHandle],
@@ -110,6 +110,11 @@
this._debounceGET()
},
_getList (flag) {
+ if(sessionStorage.getItem('isLeft')==0) {
+ this.isLeft = false
+ } else {
+ this.isLeft = true
+ }
this.isLoading = !flag
this.getUdfFuncListP(this.searchParams).then(res => {
if(this.searchParams.pageNo>1 && res.totalList.length == 0) {
@@ -137,6 +142,9 @@
mounted () {
this.$modal.destroy()
},
+ beforeDestroy () {
+ sessionStorage.setItem('isLeft',1)
+ },
components: { mListConstruction, mConditions, mList, mSpin, mCreateUdf, mNoData }
}
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/resource/index.vue b/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/resource/index.vue
index b87b17800a..4058f267b7 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/resource/index.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/resource/index.vue
@@ -37,8 +37,7 @@
-
-
+
@@ -66,7 +65,8 @@
pageNo: 1,
searchVal: '',
type: 'UDF'
- }
+ },
+ isLeft: true
}
},
mixins: [listUrlParamHandle],
@@ -98,6 +98,11 @@
this._debounceGET()
},
_getList (flag) {
+ if(sessionStorage.getItem('isLeft')==0) {
+ this.isLeft = false
+ } else {
+ this.isLeft = true
+ }
this.isLoading = !flag
this.getResourcesListP(this.searchParams).then(res => {
if(this.searchParams.pageNo>1 && res.totalList.length == 0) {
@@ -125,6 +130,9 @@
mounted () {
this.$modal.destroy()
},
+ beforeDestroy () {
+ sessionStorage.setItem('isLeft',1)
+ },
components: { mListConstruction, mConditions, mList, mSpin, mNoData }
}
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/subUdfDirectory/index.vue b/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/subUdfDirectory/index.vue
index dd39716f9a..ea8c4d838f 100755
--- a/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/subUdfDirectory/index.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/resource/pages/udf/pages/subUdfDirectory/index.vue
@@ -41,7 +41,7 @@
-
+
@@ -72,6 +72,7 @@
searchVal: '',
type: 'UDF'
},
+ isLeft: true,
breadList: []
}
},
@@ -106,6 +107,11 @@
this._debounceGET()
},
_getList (flag) {
+ if(sessionStorage.getItem('isLeft')==0) {
+ this.isLeft = false
+ } else {
+ this.isLeft = true
+ }
this.isLoading = !flag
this.getResourcesListP(this.searchParams).then(res => {
if(this.searchParams.pageNo>1 && res.totalList.length == 0) {
@@ -160,6 +166,9 @@
this.breadList = dir
this.$modal.destroy()
},
+ beforeDestroy () {
+ sessionStorage.setItem('isLeft',1)
+ },
components: { mListConstruction, mConditions, mList, mSpin, mNoData }
}
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/security/pages/queue/index.vue b/dolphinscheduler-ui/src/js/conf/home/pages/security/pages/queue/index.vue
index 47ce14abd7..8e559e45a7 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/security/pages/queue/index.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/security/pages/queue/index.vue
@@ -38,7 +38,7 @@
-
+
@@ -66,6 +66,7 @@
pageNo: 1,
searchVal: ''
},
+ isLeft: true,
isADMIN: store.state.user.userInfo.userType === 'ADMIN_USER'
}
},
@@ -116,6 +117,11 @@
})
},
_getList (flag) {
+ if(sessionStorage.getItem('isLeft')==0) {
+ this.isLeft = false
+ } else {
+ this.isLeft = true
+ }
this.isLoading = !flag
this.getQueueListP(this.searchParams).then(res => {
if(this.searchParams.pageNo>1 && res.totalList.length == 0) {
@@ -143,6 +149,9 @@
mounted () {
this.$modal.destroy()
},
+ beforeDestroy () {
+ sessionStorage.setItem('isLeft',1)
+ },
components: { mList, mListConstruction, mConditions, mSpin, mNoData }
}
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/security/pages/tenement/index.vue b/dolphinscheduler-ui/src/js/conf/home/pages/security/pages/tenement/index.vue
index 0c38f0a911..ca180b1718 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/security/pages/tenement/index.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/security/pages/tenement/index.vue
@@ -39,7 +39,7 @@
-
+
@@ -67,6 +67,7 @@
pageNo: 1,
searchVal: ''
},
+ isLeft: true,
isADMIN: store.state.user.userInfo.userType === 'ADMIN_USER'
}
},
@@ -120,6 +121,11 @@
})
},
_getList (flag) {
+ if(sessionStorage.getItem('isLeft')==0) {
+ this.isLeft = false
+ } else {
+ this.isLeft = true
+ }
this.isLoading = !flag
this.getTenantListP(this.searchParams).then(res => {
if(this.searchParams.pageNo>1 && res.totalList.length == 0) {
@@ -147,6 +153,9 @@
mounted () {
this.$modal.destroy()
},
+ beforeDestroy () {
+ sessionStorage.setItem('isLeft',1)
+ },
components: { mList, mListConstruction, mConditions, mSpin, mNoData }
}
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/security/pages/users/index.vue b/dolphinscheduler-ui/src/js/conf/home/pages/security/pages/users/index.vue
index f8ad40df85..b09b08bcf6 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/security/pages/users/index.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/security/pages/users/index.vue
@@ -39,7 +39,7 @@
-
+
@@ -65,7 +65,8 @@
pageSize: 10,
pageNo: 1,
searchVal: ''
- }
+ },
+ isLeft: true
}
},
mixins: [listUrlParamHandle],
@@ -118,6 +119,11 @@
})
},
_getList (flag) {
+ if(sessionStorage.getItem('isLeft')==0) {
+ this.isLeft = false
+ } else {
+ this.isLeft = true
+ }
this.isLoading = !flag
this.getUsersListP(this.searchParams).then(res => {
if(this.searchParams.pageNo>1 && res.totalList.length == 0) {
@@ -145,6 +151,9 @@
mounted () {
this.$modal.destroy()
},
+ beforeDestroy () {
+ sessionStorage.setItem('isLeft',1)
+ },
components: { mList, mListConstruction, mConditions, mSpin, mNoData }
}
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/security/pages/warningGroups/index.vue b/dolphinscheduler-ui/src/js/conf/home/pages/security/pages/warningGroups/index.vue
index e70ead46ce..ad604ba3a6 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/security/pages/warningGroups/index.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/security/pages/warningGroups/index.vue
@@ -39,7 +39,7 @@
-
+
@@ -67,6 +67,7 @@
pageNo: 1,
searchVal: ''
},
+ isLeft: true,
isADMIN: store.state.user.userInfo.userType === 'ADMIN_USER'
}
},
@@ -120,6 +121,11 @@
})
},
_getList (flag) {
+ if(sessionStorage.getItem('isLeft')==0) {
+ this.isLeft = false
+ } else {
+ this.isLeft = true
+ }
this.isLoading = !flag
this.getAlertgroupP(this.searchParams).then(res => {
if(this.searchParams.pageNo>1 && res.totalList.length == 0) {
@@ -147,6 +153,9 @@
mounted () {
this.$modal.destroy()
},
+ beforeDestroy () {
+ sessionStorage.setItem('isLeft',1)
+ },
components: { mList, mListConstruction, mConditions, mSpin, mNoData }
}
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/user/pages/token/index.vue b/dolphinscheduler-ui/src/js/conf/home/pages/user/pages/token/index.vue
index 21d2becd32..3398acca13 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/user/pages/token/index.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/user/pages/token/index.vue
@@ -40,7 +40,7 @@
-
+
@@ -67,7 +67,8 @@
pageSize: 10,
pageNo: 1,
searchVal: ''
- }
+ },
+ isLeft: true
}
},
mixins: [listUrlParamHandle],
@@ -120,6 +121,11 @@
})
},
_getList (flag) {
+ if(sessionStorage.getItem('isLeft')==0) {
+ this.isLeft = false
+ } else {
+ this.isLeft = true
+ }
this.isLoading = !flag
this.getTokenListP(this.searchParams).then(res => {
if(this.searchParams.pageNo>1 && res.totalList.length == 0) {
@@ -147,6 +153,9 @@
mounted () {
this.$modal.destroy()
},
+ beforeDestroy () {
+ sessionStorage.setItem('isLeft',1)
+ },
components: { mSecondaryMenu, mList, mListConstruction, mConditions, mSpin, mNoData }
}
diff --git a/dolphinscheduler-ui/src/js/conf/login/App.vue b/dolphinscheduler-ui/src/js/conf/login/App.vue
index a79743a262..8d065920a8 100644
--- a/dolphinscheduler-ui/src/js/conf/login/App.vue
+++ b/dolphinscheduler-ui/src/js/conf/login/App.vue
@@ -84,6 +84,7 @@
this._gLogin().then(res => {
setTimeout(() => {
this.spinnerLoading = false
+ sessionStorage.setItem('isLeft',1);
if (res.data.hasOwnProperty("sessionId")) {
let sessionId=res.data.sessionId
sessionStorage.setItem("sessionId", sessionId)
diff --git a/dolphinscheduler-ui/src/js/module/components/secondaryMenu/secondaryMenu.vue b/dolphinscheduler-ui/src/js/module/components/secondaryMenu/secondaryMenu.vue
index 102df8f910..5336555c21 100644
--- a/dolphinscheduler-ui/src/js/module/components/secondaryMenu/secondaryMenu.vue
+++ b/dolphinscheduler-ui/src/js/module/components/secondaryMenu/secondaryMenu.vue
@@ -63,7 +63,8 @@
menuList: menu(this.type),
index: 0,
id: this.$route.params.id,
- isTogHide: false
+ isTogHide: false,
+ isLeft: true
}
},
props: {
@@ -82,6 +83,11 @@
},
_toggleMenu () {
this.isTogHide = !this.isTogHide
+ if(this.isTogHide) {
+ sessionStorage.setItem('isLeft',0)
+ } else {
+ sessionStorage.setItem('isLeft',1)
+ }
}
},
mounted () {
diff --git a/dolphinscheduler-ui/src/js/module/components/spin/spin.vue b/dolphinscheduler-ui/src/js/module/components/spin/spin.vue
index 95fc8e924e..7c6a9c3acf 100644
--- a/dolphinscheduler-ui/src/js/module/components/spin/spin.vue
+++ b/dolphinscheduler-ui/src/js/module/components/spin/spin.vue
@@ -47,7 +47,7 @@
#spin-model {
position: fixed;
left: 20px;
- top: 80px;
+ top: 60px;
background: #fff;
z-index: 99;
border-radius: 3px;
@@ -69,11 +69,11 @@
}
&.spin-sp1 {
width: calc(100% - 40px);
- height: calc(100% - 100px);
+ height: calc(100% - 60px);
}
&.spin-sp2 {
- width: calc(100% - 240px);
- height: calc(100% - 100px);
+ width: calc(100% - 220px);
+ height: calc(100% - 60px);
left: 220px;
}
}
diff --git a/dolphinscheduler-ui/src/sass/conf/home/index.scss b/dolphinscheduler-ui/src/sass/conf/home/index.scss
index 76b9f6da01..16f588363d 100644
--- a/dolphinscheduler-ui/src/sass/conf/home/index.scss
+++ b/dolphinscheduler-ui/src/sass/conf/home/index.scss
@@ -24,8 +24,13 @@ body {
.ans-message-box,.ans-message-wrapper {
z-index: 121 !important;
}
+ &::-webkit-scrollbar {
+ width: 0;
+ height: 0;
+ }
}
+
@media screen and (max-width: 960px){
.nav-model {
.logo-box,