Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
#法外狂徒张三
DolphinScheduler
提交
0f2b2a2c
DolphinScheduler
项目概览
#法外狂徒张三
/
DolphinScheduler
与 Fork 源项目一致
Fork自
apache / DolphinScheduler
通知
12
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
DolphinScheduler
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0f2b2a2c
编写于
5月 22, 2019
作者:
G
gongzijian
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'upstream/branch-1.0.2' into branch-1.0.2
上级
086b34d6
7b163f8e
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
167 addition
and
132 deletion
+167
-132
escheduler-ui/install-escheduler-ui.sh
escheduler-ui/install-escheduler-ui.sh
+130
-104
escheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/list/_source/list.vue
...ges/projects/pages/definition/pages/list/_source/list.vue
+13
-10
escheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/gantt/_source/gantt.js
...ages/projects/pages/instance/pages/gantt/_source/gantt.js
+5
-2
escheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/list/_source/list.vue
...pages/projects/pages/instance/pages/list/_source/list.vue
+19
-16
未找到文件。
escheduler-ui/install-escheduler-ui.sh
浏览文件 @
0f2b2a2c
#!/bin/bash
# 当前路径
esc_basepath
=
$(
cd
`
dirname
$0
`
;
pwd
)
echo
"欢迎使用easy scheduler前端部署脚本,目前前端部署脚本仅支持Centos"
echo
"请在 escheduler-ui 目录下执行"
# 配置前端访问端口
esc_proxy
=
"8888"
# 配置代理后端接口
esc_proxy_port
=
"http://192.168.xx.xx:12345"
# 本机ip
esc_ipaddr
=
'127.0.0.1'
esc_ipaddr
=
$(
ip addr |
awk
'/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}'
)
#To be compatible with MacOS and Linux
if
[[
"
$OSTYPE
"
==
"darwin"
*
]]
;
then
# Mac OSX
echo
"Easy Scheduler ui install not support Mac OSX operating system"
exit
1
elif
[[
"
$OSTYPE
"
==
"linux-gnu"
]]
;
then
# linux
echo
"linux"
elif
[[
"
$OSTYPE
"
==
"cygwin"
]]
;
then
# POSIX compatibility layer and Linux environment emulation for Windows
echo
"Easy Scheduler ui not support Windows operating system"
exit
1
elif
[[
"
$OSTYPE
"
==
"msys"
]]
;
then
# Lightweight shell and GNU utilities compiled for Windows (part of MinGW)
echo
"Easy Scheduler ui not support Windows operating system"
exit
1
elif
[[
"
$OSTYPE
"
==
"win32"
]]
;
then
echo
"Easy Scheduler ui not support Windows operating system"
exit
1
elif
[[
"
$OSTYPE
"
==
"freebsd"
*
]]
;
then
# ...
echo
"freebsd"
else
# Unknown.
echo
"Operating system unknown, please tell us(submit issue) for better service"
exit
1
fi
# 区分版本
version
=
`
cat
/etc/redhat-release|sed
-r
's/.* ([0-9]+)\..*/\1/'
`
echo
"========================================================================配置信息======================================================================="
echo
"前端访问端口:
${
esc_proxy
}
"
echo
"后端代理接口地址:
${
esc_proxy_port
}
"
echo
"静态文件地址:
${
esc_basepath
}
/dist"
echo
"当前路径:
${
esc_basepath
}
"
echo
"本机ip:
${
esc_ipaddr
}
"
echo
"========================================================================配置信息======================================================================="
echo
""
menu
(){
cat
<<
END
=================================================
1.CentOS6安装
2.CentOS7安装
3.Ubuntu安装
4.退出
=================================================
END
}
# 创建文件并配置nginx
...
...
@@ -72,7 +23,7 @@ eschedulerConf(){
E_http_upgrade
=
'$http_upgrade'
echo
"
server {
listen
$
esc_proxy
;# 访问端口
listen
$
1
;# 访问端口
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
...
...
@@ -81,7 +32,7 @@ eschedulerConf(){
index index.html index.html;
}
location /escheduler {
proxy_pass
$
{
esc_proxy_port
}
; # 接口地址
proxy_pass
$
2
; # 接口地址
proxy_set_header Host
$E_host
;
proxy_set_header X-Real-IP
$E_remote_addr
;
proxy_set_header x_real_ipP
$E_remote_addr
;
...
...
@@ -106,15 +57,32 @@ eschedulerConf(){
}
ubuntu
(){
#更新源
apt-get update
#安装nginx
apt-get
install
-y
nginx
# 配置nginx
eschedulerConf
$1
$2
# 启动nginx
/etc/init.d/nginx start
sleep
1
if
[
$?
-ne
0
]
;
then
/etc/init.d/nginx start
fi
nginx
-s
reload
}
centos7
(){
# nginx是否安装
sudo
rpm
-Uvh
http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
sudo
yum
install
-y
nginx
echo
"nginx 安装成功"
rpm
-Uvh
http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum
install
-y
nginx
# 配置nginx
eschedulerConf
eschedulerConf
$1
$2
# 解决 0.0.0.0:8888 问题
yum
-y
install
policycoreutils-python
...
...
@@ -123,11 +91,13 @@ centos7(){
# 开放前端访问端口
firewall-cmd
--zone
=
public
--add-port
=
$esc_proxy
/tcp
--permanent
# 重启防火墙
firewall-cmd
--reload
# 启动nginx
systemctl start nginx
sleep
1
if
[
$?
-ne
0
]
;
then
systemctl start nginx
fi
nginx
-s
reload
# 调整SELinux的参数
sed
-i
"s/SELINUX=enforcing/SELINUX=disabled/g"
/etc/selinux/config
...
...
@@ -138,37 +108,22 @@ centos7(){
centos6
(){
# yum
E_basearch
=
'$basearch'
E_releasever
=
'$releasever'
echo
"
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/
$E_releasever
/
$E_basearch
/
gpgcheck=0
enabled=1
"
>>
/etc/yum.repos.d/nginx.repo
rpm
-ivh
http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
# install nginx
yum
install
nginx
-y
# 配置nginx
eschedulerConf
# 防火墙
E_iptables
=
`
lsof
-i
:
$esc_proxy
|
wc
-l
`
if
[
"
$E_iptables
"
-gt
"0"
]
;
then
# 已开启端口防火墙重启
service iptables restart
else
# 未开启防火墙添加端口再重启
iptables
-I
INPUT 5
-i
eth0
-p
tcp
--dport
$esc_proxy
-m
state
--state
NEW,ESTABLISHED
-j
ACCEPT
service iptables save
service iptables restart
fi
eschedulerConf
$1
$2
#
start
#
启动nginx
/etc/init.d/nginx start
sleep
1
if
[
$?
-ne
0
]
;
then
/etc/init.d/nginx start
fi
nginx
-s
reload
# 调整SELinux的参数
sed
-i
"s/SELINUX=enforcing/SELINUX=disabled/g"
/etc/selinux/config
...
...
@@ -178,16 +133,87 @@ centos6(){
}
# centos 6
if
[[
$version
-eq
6
]]
;
then
centos6
fi
# centos 7
if
[[
$version
-eq
7
]]
;
then
centos7
fi
function
main
(){
echo
"欢迎使用easy scheduler前端部署脚本,目前前端部署脚本仅支持CentOS,Ubuntu"
echo
"请在 escheduler-ui 目录下执行"
#To be compatible with MacOS and Linux
if
[[
"
$OSTYPE
"
==
"darwin"
*
]]
;
then
# Mac OSX
echo
"Easy Scheduler ui install not support Mac OSX operating system"
exit
1
elif
[[
"
$OSTYPE
"
==
"linux-gnu"
]]
;
then
# linux
echo
"linux"
elif
[[
"
$OSTYPE
"
==
"cygwin"
]]
;
then
# POSIX compatibility layer and Linux environment emulation for Windows
echo
"Easy Scheduler ui not support Windows operating system"
exit
1
elif
[[
"
$OSTYPE
"
==
"msys"
]]
;
then
# Lightweight shell and GNU utilities compiled for Windows (part of MinGW)
echo
"Easy Scheduler ui not support Windows operating system"
exit
1
elif
[[
"
$OSTYPE
"
==
"win32"
]]
;
then
echo
"Easy Scheduler ui not support Windows operating system"
exit
1
elif
[[
"
$OSTYPE
"
==
"freebsd"
*
]]
;
then
# ...
echo
"freebsd"
else
# Unknown.
echo
"Operating system unknown, please tell us(submit issue) for better service"
exit
1
fi
# 配置前端访问端口
read
-p
"请输入nginx代理端口,不输入,则默认8888 :"
esc_proxy_port
if
[
-z
"
${
esc_proxy_port
}
"
]
;
then
esc_proxy_port
=
"8888"
fi
read
-p
"请输入api server代理ip,必须输入,例如:192.168.xx.xx :"
esc_api_server_ip
if
[
-z
"
${
esc_api_server_ip
}
"
]
;
then
echo
"api server代理ip不能为空."
exit
1
fi
read
-p
"请输入api server代理端口,不输入,则默认12345 :"
esc_api_server_port
if
[
-z
"
${
esc_api_server_port
}
"
]
;
then
esc_api_server_port
=
"12345"
fi
# api server后端地址
esc_api_server
=
"http://
$esc_api_server_ip
:
$esc_api_server_port
"
# 本机ip地址
esc_ipaddr
=
$(
ip a |
grep
inet |
grep
-v
inet6 |
grep
-v
127 |
sed
's/^[ \t]*//g'
|
cut
-d
' '
-f2
|
head
-n
1 |
awk
-F
'/'
'{print $1}'
)
# 提示信息
menu
read
-p
"请输入安装编号(1|2|3|4):"
num
case
$num
in
1
)
centos6
${
esc_proxy_port
}
${
esc_api_server
}
;;
2
)
centos7
${
esc_proxy_port
}
${
esc_api_server
}
;;
3
)
ubuntu
${
esc_proxy_port
}
${
esc_api_server
}
;;
4
)
echo
$"Usage :sh
$0
"
exit
1
;;
*
)
echo
$"Usage :sh
$0
"
exit
1
esac
echo
"请浏览器访问:http://
${
esc_ipaddr
}
:
${
esc_proxy_port
}
"
}
echo
"请浏览器访问:http://
${
esc_ipaddr
}
:
${
esc_proxy
}
"
main
escheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/list/_source/list.vue
浏览文件 @
0f2b2a2c
...
...
@@ -6,7 +6,7 @@
<th
width=
"50"
>
<x-checkbox
@
on-change=
"_topCheckBoxClick"
v-model=
"checkAll"
></x-checkbox>
</th>
<th>
<th
width=
"40"
>
<span>
{{
$t
(
'
#
'
)
}}
</span>
</th>
<th>
...
...
@@ -33,7 +33,7 @@
</tr>
<tr
v-for=
"(item, $index) in list"
:key=
"item.id"
>
<td
width=
"50"
><x-checkbox
v-model=
"item.isCheck"
@
on-change=
"_arrDelChange"
></x-checkbox></td>
<td>
<td
width=
"50"
>
<span>
{{
parseInt
(
pageNo
===
1
?
(
$index
+
1
)
:
((
$index
+
1
)
+
(
pageSize
*
(
pageNo
-
1
))))
}}
</span>
</td>
<td>
...
...
@@ -90,7 +90,7 @@
</tr>
</table>
</div>
<x-button
s
tyle=
"position: absolute; bottom: -52px; left: 22px;"
v-if=
"strDelete !== ''"
@
click=
"_batchDelete"
>
批量
删除
</x-button>
<x-button
s
ize=
"xsmall"
style=
"position: absolute; bottom: -48px; left: 22px;"
v-if=
"strDelete !== ''"
@
click=
"_batchDelete"
>
删除
</x-button>
</div>
</template>
<
script
>
...
...
@@ -308,21 +308,24 @@
}
},
watch
:
{
processList
(
a
)
{
this
.
list
=
[]
setTimeout
(()
=>
{
this
.
list
=
a
})
processList
:
{
handler
(
a
)
{
this
.
checkAll
=
false
this
.
list
=
[]
setTimeout
(()
=>
{
this
.
list
=
_
.
cloneDeep
(
a
)
})
},
immediate
:
true
,
deep
:
true
},
pageNo
()
{
this
.
checkAll
=
false
this
.
strDelete
=
''
}
},
created
()
{
},
mounted
()
{
this
.
list
=
this
.
processList
},
components
:
{
}
}
...
...
escheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/gantt/_source/gantt.js
浏览文件 @
0f2b2a2c
...
...
@@ -107,11 +107,11 @@ Gantt.prototype.drawChart = function () {
.
append
(
'
svg
'
)
.
attr
(
'
class
'
,
'
chart
'
)
.
attr
(
'
width
'
,
this
.
width
+
this
.
margin
.
left
+
this
.
margin
.
right
)
.
attr
(
'
height
'
,
this
.
height
+
this
.
margin
.
top
+
this
.
margin
.
bottom
)
.
attr
(
'
height
'
,
this
.
height
+
this
.
margin
.
top
+
this
.
margin
.
bottom
+
150
)
.
append
(
'
g
'
)
.
attr
(
'
class
'
,
'
gantt-chart
'
)
.
attr
(
'
width
'
,
this
.
width
+
this
.
margin
.
left
+
this
.
margin
.
right
)
.
attr
(
'
height
'
,
this
.
height
+
this
.
margin
.
top
+
this
.
margin
.
bottom
)
.
attr
(
'
height
'
,
this
.
height
+
this
.
margin
.
top
+
this
.
margin
.
bottom
+
150
)
.
attr
(
'
transform
'
,
'
translate(
'
+
this
.
margin
.
left
+
'
,
'
+
this
.
margin
.
top
+
'
)
'
)
svg
.
selectAll
(
'
.chart
'
)
...
...
@@ -132,6 +132,9 @@ Gantt.prototype.drawChart = function () {
.
attr
(
'
transform
'
,
'
translate(0,
'
+
(
this
.
height
-
this
.
margin
.
top
-
this
.
margin
.
bottom
)
+
'
)
'
)
.
transition
()
.
call
(
this
.
xAxis
)
.
selectAll
(
"
text
"
)
.
attr
(
"
transform
"
,
`rotate(-
${
this
.
width
/
(
$
(
'
.tick
'
).
length
-
1
)
>
50
?
0
:
Math
.
acos
(
this
.
width
/
(
$
(
'
.tick
'
).
length
-
1
)
/
50
)
*
57
}
)`
)
.
style
(
"
text-anchor
"
,
`
${
this
.
width
/
(
$
(
'
.tick
'
).
length
-
1
)
>
50
?
'
middle
'
:
'
end
'
}
`
)
svg
.
append
(
'
g
'
)
.
attr
(
'
class
'
,
'
y axis
'
)
...
...
escheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/list/_source/list.vue
浏览文件 @
0f2b2a2c
...
...
@@ -6,13 +6,13 @@
<th
width=
"50"
>
<x-checkbox
@
on-change=
"_topCheckBoxClick"
v-model=
"checkAll"
></x-checkbox>
</th>
<th>
<th
width=
"40"
>
<span>
{{
$t
(
'
#
'
)
}}
</span>
</th>
<th>
<span>
{{
$t
(
'
Process Name
'
)
}}
</span>
</th>
<th
width=
"120"
>
<th>
<span>
{{
$t
(
'
Run Type
'
)
}}
</span>
</th>
<th
width=
"140"
>
...
...
@@ -21,10 +21,10 @@
<th
width=
"140"
>
<span>
{{
$t
(
'
End Time
'
)
}}
</span>
</th>
<th
width=
"
9
0"
>
<th
width=
"
7
0"
>
<span>
{{
$t
(
'
Duration
'
)
}}
s
</span>
</th>
<th
width=
"7
2
"
>
<th
width=
"7
0
"
>
<span>
{{
$t
(
'
Run Times
'
)
}}
</span>
</th>
<th
width=
"100"
>
...
...
@@ -36,13 +36,13 @@
<th
width=
"50"
>
<span>
{{
$t
(
'
State
'
)
}}
</span>
</th>
<th
width=
"2
6
0"
>
<th
width=
"2
2
0"
>
<span>
{{
$t
(
'
Operation
'
)
}}
</span>
</th>
</tr>
<tr
v-for=
"(item, $index) in list"
:key=
"item.id"
>
<td
width=
"50"
><x-checkbox
v-model=
"item.isCheck"
@
on-change=
"_arrDelChange"
></x-checkbox></td>
<td>
<td
width=
"50"
>
<span>
{{
parseInt
(
pageNo
===
1
?
(
$index
+
1
)
:
((
$index
+
1
)
+
(
pageSize
*
(
pageNo
-
1
))))
}}
</span>
</td>
<td>
...
...
@@ -54,8 +54,8 @@
<span
v-if=
"item.endTime"
>
{{
item
.
endTime
|
formatDate
}}
</span>
<span
v-if=
"!item.endTime"
>
-
</span>
</td>
<td><span>
{{
item
.
duration
||
'
-
'
}}
</span></td>
<td><span>
{{
item
.
runTimes
}}
</span></td>
<td
width=
"70"
><span>
{{
item
.
duration
||
'
-
'
}}
</span></td>
<td
width=
"70"
><span>
{{
item
.
runTimes
}}
</span></td>
<td>
<span
v-if=
"item.host"
>
{{
item
.
host
}}
</span>
<span
v-if=
"!item.host"
>
-
</span>
...
...
@@ -249,7 +249,7 @@
</tr>
</table>
</div>
<x-button
s
tyle=
"position: absolute; bottom: -52px; left: 22px;"
v-if=
"strDelete !== ''"
@
click=
"_batchDelete"
>
批量
删除
</x-button>
<x-button
s
ize=
"xsmall"
style=
"position: absolute; bottom: -48px; left: 22px;"
v-if=
"strDelete !== ''"
@
click=
"_batchDelete"
>
删除
</x-button>
</div>
</template>
<
script
>
...
...
@@ -480,21 +480,24 @@
}
},
watch
:
{
processInstanceList
(
a
)
{
this
.
list
=
[]
setTimeout
(()
=>
{
this
.
list
=
this
.
_listDataHandle
(
a
)
})
processInstanceList
:
{
handler
(
a
)
{
this
.
checkAll
=
false
this
.
list
=
[]
setTimeout
(()
=>
{
this
.
list
=
_
.
cloneDeep
(
this
.
_listDataHandle
(
a
))
})
},
immediate
:
true
,
deep
:
true
},
pageNo
()
{
this
.
checkAll
=
false
this
.
strDelete
=
''
}
},
created
()
{
},
mounted
()
{
this
.
list
=
this
.
_listDataHandle
(
this
.
processInstanceList
)
},
components
:
{
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录