-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjboss_util.py
171 lines (137 loc) · 6.58 KB
/
jboss_util.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
# -*- coding: utf-8 -*-
import os
import time
from SRMCenter.apps.global_var import GlobalVar
logger = logging.getLogger('django')
from shell_util import exec_shell
# 参考文档:http://planet.jboss.org/post/deploy_to_wildfly_using_jboss_cli_tech_tip_11
def jboss_enable(jboss_cli_home, server_ip, jboss_admin_port, jboss_admin, jboss_admin_pwd, artifact_id,
timeout='60000'):
"""
| ##@函数目的: 启动WAR包
| ##@参数说明:timeout 毫秒 对于网络差或目标服务器差的适当加大 jboss_admin_port 默认(无偏移量)9999
| ##@返回值:
| ##@函数逻辑:./jboss-cli.sh --connect command=:shutdown
| ##@开发人:jhuang
| ##@时间:
"""
time_start = time.time()
jboss_cli = 'jboss-cli.sh'
if jboss_cli_home[-1] != '/': jboss_cli_home = jboss_cli_home + '/'
ret = exec_shell(
'/bin/sh %sbin/%s --connect --controller=%s:%s --user=%s --password=%s --timeout=%s --command="deploy --name=%s"' % (
jboss_cli_home, jboss_cli, server_ip, jboss_admin_port, jboss_admin, jboss_admin_pwd, timeout,
artifact_id))
logger.debug('启用Artifact用时:%s' % (time.time() - time_start))
return ret
def jboss_disable(jboss_cli_home, server_ip, jboss_admin_port, jboss_admin, jboss_admin_pwd, artifact_id,
timeout='60000'):
"""
| ##@函数目的: 禁用WAR包
| ##@参数说明:timeout 毫秒 对于网络差或目标服务器差的适当加大
| ##@返回值:
| ##@函数逻辑:./jboss-cli.sh --connect command=:shutdown
| ##@开发人:jhuang
| ##@时间:
"""
time_start = time.time()
jboss_cli = 'jboss-cli.sh'
if jboss_cli_home[-1] != '/': jboss_cli_home = jboss_cli_home + '/'
ret = exec_shell(
'/bin/sh %sbin/%s --connect --controller=%s:%s --user=%s --password=%s --timeout=%s --command="undeploy %s --keep-content"' % (
jboss_cli_home, jboss_cli, server_ip, jboss_admin_port, jboss_admin, jboss_admin_pwd, timeout,
artifact_id))
logger.debug('禁用Artifact用时:%s' % (time.time() - time_start))
return ret
def jboss_shutdown(jboss_cli_home, server_ip, jboss_admin_port, jboss_admin, jboss_admin_pwd, timeout='60000'):
"""
| ##@函数目的: Jboss卸载WAR包
| ##@参数说明:timeout 毫秒 对于网络差或目标服务器差的适当加大
| ##@返回值:
| ##@函数逻辑:./jboss-cli.sh --connect command=:shutdown
| ##@开发人:jhuang
| ##@时间:
"""
jboss_cli = 'jboss-cli.sh'
if jboss_cli_home[-1] != '/': jboss_cli_home = jboss_cli_home + '/'
ret = exec_shell(
'/bin/sh %sbin/%s --connect --controller=%s:%s --user=%s --password=%s --timeout=%s --command=:shutdown' % (
jboss_cli_home, jboss_cli, server_ip, jboss_admin_port, jboss_admin, jboss_admin_pwd, timeout))
return ret
def kill_repeat_jboss(server_ip, jboss_admin_port, warName):
logger.debug('关闭相同任务进程...')
jboss_cli_kill_path = os.path.join(GlobalVar.app_dir, 'plugins', 'shell', 'jboss_cli_kill.sh')
exec_shell('chmod +x %s' % (jboss_cli_kill_path))
exec_shell(jboss_cli_kill_path + ' %s:%s %s' % (server_ip, jboss_admin_port, warName))
# jboss-cli.bat --connect --controller=192.168.222.61:9999 --user=admin --password=thzk211! --command="deploy -l" --timeout=60000
def jboss_undeploy(jboss_cli_home, server_ip, jboss_admin_port, jboss_admin, jboss_admin_pwd, artifact_id,
timeout='60000'):
"""
| ##@函数目的: Jboss卸载WAR包
| ##@参数说明:timeout 毫秒 对于网络差或目标服务器差的适当加大
| ##@返回值:
| ##@函数逻辑:
| ##@开发人:jhuang
| ##@时间:
"""
time_start = time.time()
jboss_cli = 'jboss-cli.sh'
if jboss_cli_home[-1] != '/': jboss_cli_home = jboss_cli_home + '/'
ret = exec_shell(
'sh %sbin/%s --connect --controller=%s:%s --user=%s --password=%s --command="undeploy %s" --timeout=%s' % (
jboss_cli_home, jboss_cli, server_ip, jboss_admin_port, jboss_admin, jboss_admin_pwd, artifact_id,
timeout))
logger.debug('卸载用时:%s' % (time.time() - time_start))
return ret
def jboss_deploy(jboss_cli_home, server_ip, jboss_admin_port, jboss_admin, jboss_admin_pwd, warpath, timeout='60000'):
"""
| ##@函数目的: Jboss部署WAR包
| ##@参数说明:timeout 毫秒 对于网络差或目标服务器差的适当加大
| ##@返回值:
| ##@函数逻辑:
| ##@开发人:jhuang
| ##@时间:
"""
time_start = time.time()
jboss_cli = 'jboss-cli.sh'
if jboss_cli_home[-1] != '/': jboss_cli_home = jboss_cli_home + '/'
ret = exec_shell(
'sh %sbin/%s --connect --controller=%s:%s --user=%s --password=%s --command="deploy --force %s" --timeout=%s' % (
jboss_cli_home, jboss_cli, server_ip, jboss_admin_port, jboss_admin, jboss_admin_pwd, warpath, timeout))
logger.debug('部署用时:%s' % (time.time() - time_start))
return ret
def jboss_status(jboss_cli_home, server_ip, jboss_admin_port, jboss_admin, jboss_admin_pwd, timeout='60000'):
"""
| ##@函数目的: Jboss状态
| ##@参数说明:
| ##@返回值:
| ##@函数逻辑:
| ##@开发人:jhuang
| ##@时间:
"""
time_start = time.time()
jboss_cli = 'jboss-cli.sh'
if jboss_cli_home[-1] != '/': jboss_cli_home = jboss_cli_home + '/'
ret = exec_shell(
'sh %sbin/%s --connect --controller=%s:%s --user=%s --password=%s --command="deployment-info" --timeout=%s' % (
jboss_cli_home, jboss_cli, server_ip, jboss_admin_port, jboss_admin, jboss_admin_pwd, timeout))
logger.debug('获取Jboss状态用时:%s' % (time.time() - time_start))
return ret
def jboss_deploy_status(jboss_cli_home, server_ip, jboss_admin_port, jboss_admin, jboss_admin_pwd, artifact_id,
timeout='60000'):
"""
| ##@函数目的: JbossWAR包状态
| ##@参数说明:
| ##@返回值:
| ##@函数逻辑:
| ##@开发人:jhuang
| ##@时间:
"""
time_start = time.time()
jboss_cli = 'jboss-cli.sh'
if jboss_cli_home[-1] != '/': jboss_cli_home = jboss_cli_home + '/'
ret = exec_shell(
'sh %sbin/%s --connect --controller=%s:%s --user=%s --password=%s --command="deployment-info --name=%s" --timeout=%s' % (
jboss_cli_home, jboss_cli, server_ip, jboss_admin_port, jboss_admin, jboss_admin_pwd, artifact_id, timeout))
logger.debug('获取应用部署状态用时:%s' % (time.time() - time_start))
return ret