Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Eladmin
Commits
2853f394
"vscode:/vscode.git/clone" did not exist on "5c27bce52a02af196177ed3c33299704c79634f2"
Commit
2853f394
authored
Nov 25, 2019
by
dqjdda
Browse files
代码优化
parent
468a092d
Changes
15
Hide whitespace changes
Inline
Side-by-side
eladmin-system/src/main/java/me/zhengjie/modules/mnt/domain/App.java
View file @
2853f394
...
...
@@ -3,8 +3,11 @@ package me.zhengjie.modules.mnt.domain;
import
lombok.Data
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.bean.copier.CopyOptions
;
import
org.hibernate.annotations.CreationTimestamp
;
import
javax.persistence.*
;
import
java.io.Serializable
;
import
java.sql.Timestamp
;
/**
* @author zhanghouying
...
...
@@ -19,8 +22,8 @@ public class App implements Serializable {
* 应用编号
*/
@Id
@Column
(
name
=
"id"
)
private
Stri
ng
id
;
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
private
Lo
ng
id
;
/**
* 应用名称
...
...
@@ -64,6 +67,9 @@ public class App implements Serializable {
@Column
(
name
=
"deploy_script"
)
private
String
deployScript
;
@CreationTimestamp
private
Timestamp
createTime
;
public
void
copy
(
App
source
){
BeanUtil
.
copyProperties
(
source
,
this
,
CopyOptions
.
create
().
setIgnoreNullValue
(
true
));
}
...
...
eladmin-system/src/main/java/me/zhengjie/modules/mnt/domain/Deploy.java
View file @
2853f394
...
...
@@ -5,6 +5,7 @@ import cn.hutool.core.bean.BeanUtil;
import
cn.hutool.core.bean.copier.CopyOptions
;
import
javax.persistence.*
;
import
java.io.Serializable
;
import
java.util.Set
;
/**
* @author zhanghouying
...
...
@@ -19,20 +20,22 @@ public class Deploy implements Serializable {
* 部署编号
*/
@Id
@
Column
(
name
=
"id"
)
private
Stri
ng
id
;
@
GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
private
Lo
ng
id
;
/**
* 应用编号
*/
@Column
(
name
=
"app_id"
)
private
String
appId
;
@ManyToOne
@JoinColumn
(
name
=
"app_id"
)
private
App
app
;
/**
*
IP列表
*
服务器
*/
@Column
(
name
=
"ip"
)
private
String
ip
;
@ManyToMany
@JoinTable
(
name
=
"mnt_deploy_server"
,
joinColumns
=
{
@JoinColumn
(
name
=
"deploy_id"
,
referencedColumnName
=
"id"
)},
inverseJoinColumns
=
{
@JoinColumn
(
name
=
"server_id"
,
referencedColumnName
=
"id"
)})
private
Set
<
ServerDeploy
>
deploys
;
public
void
copy
(
Deploy
source
){
BeanUtil
.
copyProperties
(
source
,
this
,
CopyOptions
.
create
().
setIgnoreNullValue
(
true
));
...
...
eladmin-system/src/main/java/me/zhengjie/modules/mnt/domain/DeployHistory.java
View file @
2853f394
...
...
@@ -50,7 +50,7 @@ public class DeployHistory implements Serializable {
* 部署编号
*/
@Column
(
name
=
"deploy_id"
,
nullable
=
false
)
private
Stri
ng
deployId
;
private
Lo
ng
deployId
;
public
void
copy
(
DeployHistory
source
){
BeanUtil
.
copyProperties
(
source
,
this
,
CopyOptions
.
create
().
setIgnoreNullValue
(
true
));
...
...
eladmin-system/src/main/java/me/zhengjie/modules/mnt/repository/AppRepository.java
View file @
2853f394
...
...
@@ -8,5 +8,5 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
* @author zhanghouying
* @date 2019-08-24
*/
public
interface
AppRepository
extends
JpaRepository
<
App
,
Stri
ng
>,
JpaSpecificationExecutor
<
App
>
{
public
interface
AppRepository
extends
JpaRepository
<
App
,
Lo
ng
>,
JpaSpecificationExecutor
<
App
>
{
}
eladmin-system/src/main/java/me/zhengjie/modules/mnt/repository/DeployRepository.java
View file @
2853f394
...
...
@@ -8,5 +8,5 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
* @author zhanghouying
* @date 2019-08-24
*/
public
interface
DeployRepository
extends
JpaRepository
<
Deploy
,
Stri
ng
>,
JpaSpecificationExecutor
{
public
interface
DeployRepository
extends
JpaRepository
<
Deploy
,
Lo
ng
>,
JpaSpecificationExecutor
<
Deploy
>
{
}
eladmin-system/src/main/java/me/zhengjie/modules/mnt/rest/AppController.java
View file @
2853f394
...
...
@@ -59,7 +59,7 @@ public class AppController {
@ApiOperation
(
value
=
"删除App"
)
@DeleteMapping
(
value
=
"/{id}"
)
@PreAuthorize
(
"@el.check('app:del')"
)
public
ResponseEntity
delete
(
@PathVariable
Stri
ng
id
){
public
ResponseEntity
delete
(
@PathVariable
Lo
ng
id
){
appService
.
delete
(
id
);
return
new
ResponseEntity
(
HttpStatus
.
OK
);
}
...
...
eladmin-system/src/main/java/me/zhengjie/modules/mnt/rest/DeployController.java
View file @
2853f394
...
...
@@ -66,7 +66,7 @@ public class DeployController {
@ApiOperation
(
value
=
"删除Deploy"
)
@DeleteMapping
(
value
=
"/{id}"
)
@PreAuthorize
(
"@el.check('deploy:del')"
)
public
ResponseEntity
delete
(
@PathVariable
Stri
ng
id
){
public
ResponseEntity
delete
(
@PathVariable
Lo
ng
id
){
deployService
.
delete
(
id
);
return
new
ResponseEntity
(
HttpStatus
.
OK
);
}
...
...
@@ -76,7 +76,7 @@ public class DeployController {
@PostMapping
(
value
=
"/upload"
)
@PreAuthorize
(
"@el.check('deploy:edit')"
)
public
ResponseEntity
upload
(
@RequestBody
MultipartFile
file
,
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
Exception
{
Stri
ng
id
=
request
.
getParameter
(
"id"
);
Lo
ng
id
=
Long
.
valueOf
(
request
.
getParameter
(
"id"
)
)
;
String
fileName
=
""
;
if
(
file
!=
null
){
fileName
=
file
.
getOriginalFilename
();
...
...
eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/AppService.java
View file @
2853f394
...
...
@@ -31,7 +31,7 @@ public interface AppService {
* @param id
* @return
*/
AppDTO
findById
(
Stri
ng
id
);
AppDTO
findById
(
Lo
ng
id
);
/**
* create
...
...
@@ -50,5 +50,5 @@ public interface AppService {
* delete
* @param id
*/
void
delete
(
Stri
ng
id
);
void
delete
(
Lo
ng
id
);
}
eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/DeployService.java
View file @
2853f394
...
...
@@ -32,7 +32,7 @@ public interface DeployService {
* @param id
* @return
*/
DeployDTO
findById
(
Stri
ng
id
);
DeployDTO
findById
(
Lo
ng
id
);
/**
* create
...
...
@@ -54,7 +54,7 @@ public interface DeployService {
* @CacheEvict(allEntries = true)
* @param id
*/
void
delete
(
Stri
ng
id
);
void
delete
(
Lo
ng
id
);
/**
* 部署文件到服务器
...
...
@@ -62,7 +62,7 @@ public interface DeployService {
* @param appId
* @return
*/
public
String
deploy
(
String
fileSavePath
,
Stri
ng
appId
);
public
String
deploy
(
String
fileSavePath
,
Lo
ng
appId
);
/**
* 查询部署状态
...
...
eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/dto/AppDTO.java
View file @
2853f394
...
...
@@ -3,6 +3,7 @@ package me.zhengjie.modules.mnt.service.dto;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.sql.Timestamp
;
/**
...
...
@@ -52,4 +53,6 @@ public class AppDTO implements Serializable {
*/
private
String
deployScript
;
private
Timestamp
createTime
;
}
eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/dto/AppQueryCriteria.java
View file @
2853f394
...
...
@@ -3,6 +3,9 @@ package me.zhengjie.modules.mnt.service.dto;
import
lombok.Data
;
import
me.zhengjie.annotation.Query
;
import
java.sql.Timestamp
;
import
java.util.List
;
/**
* @author zhanghouying
* @date 2019-08-24
...
...
@@ -15,4 +18,7 @@ public class AppQueryCriteria{
*/
@Query
(
type
=
Query
.
Type
.
INNER_LIKE
)
private
String
name
;
@Query
(
type
=
Query
.
Type
.
BETWEEN
)
private
List
<
Timestamp
>
createTime
;
}
eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/dto/DeployDTO.java
View file @
2853f394
...
...
@@ -2,6 +2,7 @@ package me.zhengjie.modules.mnt.service.dto;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Set
;
/**
...
...
@@ -16,16 +17,12 @@ public class DeployDTO implements Serializable {
*/
private
String
id
;
/**
* 应用编号
*/
private
String
appId
;
private
AppDTO
app
;
/**
*
IP列表
*
服务器
*/
private
String
ip
;
private
Set
<
ServerDeployDTO
>
deploys
;
/**
* 服务状态
...
...
eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/dto/DeployHistoryDTO.java
View file @
2853f394
...
...
@@ -39,5 +39,5 @@ public class DeployHistoryDTO implements Serializable {
/**
* 部署编号
*/
private
Stri
ng
deployId
;
private
Lo
ng
deployId
;
}
eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/impl/AppServiceImpl.java
View file @
2853f394
package
me.zhengjie.modules.mnt.service.impl
;
import
cn.hutool.core.util.IdUtil
;
import
me.zhengjie.modules.mnt.domain.App
;
import
me.zhengjie.modules.mnt.repository.AppRepository
;
import
me.zhengjie.modules.mnt.service.AppService
;
...
...
@@ -15,7 +14,6 @@ import org.springframework.data.domain.Pageable;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Optional
;
/**
...
...
@@ -47,7 +45,7 @@ public class AppServiceImpl implements AppService {
}
@Override
public
AppDTO
findById
(
Stri
ng
id
)
{
public
AppDTO
findById
(
Lo
ng
id
)
{
Optional
<
App
>
app
=
appRepository
.
findById
(
id
);
ValidationUtil
.
isNull
(
app
,
"App"
,
"id"
,
id
);
return
appMapper
.
toDto
(
app
.
get
());
...
...
@@ -56,7 +54,6 @@ public class AppServiceImpl implements AppService {
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
AppDTO
create
(
App
resources
)
{
resources
.
setId
(
IdUtil
.
fastUUID
());
return
appMapper
.
toDto
(
appRepository
.
save
(
resources
));
}
...
...
@@ -72,7 +69,7 @@ public class AppServiceImpl implements AppService {
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
(
Stri
ng
id
)
{
public
void
delete
(
Lo
ng
id
)
{
appRepository
.
deleteById
(
id
);
}
}
eladmin-system/src/main/java/me/zhengjie/modules/mnt/service/impl/DeployServiceImpl.java
View file @
2853f394
...
...
@@ -5,8 +5,10 @@ import cn.hutool.core.date.DateUtil;
import
cn.hutool.core.util.IdUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
me.zhengjie.exception.BadRequestException
;
import
me.zhengjie.modules.mnt.domain.App
;
import
me.zhengjie.modules.mnt.domain.Deploy
;
import
me.zhengjie.modules.mnt.domain.DeployHistory
;
import
me.zhengjie.modules.mnt.domain.ServerDeploy
;
import
me.zhengjie.modules.mnt.repository.DeployRepository
;
import
me.zhengjie.modules.mnt.service.*
;
import
me.zhengjie.modules.mnt.service.dto.*
;
...
...
@@ -32,6 +34,7 @@ import java.io.IOException;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Optional
;
import
java.util.Set
;
/**
* @author zhanghouying
...
...
@@ -74,7 +77,7 @@ public class DeployServiceImpl implements DeployService {
}
@Override
public
DeployDTO
findById
(
Stri
ng
id
)
{
public
DeployDTO
findById
(
Lo
ng
id
)
{
Optional
<
Deploy
>
Deploy
=
deployRepository
.
findById
(
id
);
ValidationUtil
.
isNull
(
Deploy
,
"Deploy"
,
"id"
,
id
);
return
deployMapper
.
toDto
(
Deploy
.
get
());
...
...
@@ -83,7 +86,6 @@ public class DeployServiceImpl implements DeployService {
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
DeployDTO
create
(
Deploy
resources
)
{
resources
.
setId
(
IdUtil
.
simpleUUID
());
return
deployMapper
.
toDto
(
deployRepository
.
save
(
resources
));
}
...
...
@@ -99,12 +101,12 @@ public class DeployServiceImpl implements DeployService {
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
(
Stri
ng
id
)
{
public
void
delete
(
Lo
ng
id
)
{
deployRepository
.
deleteById
(
id
);
}
@Override
public
String
deploy
(
String
fileSavePath
,
Stri
ng
id
)
{
public
String
deploy
(
String
fileSavePath
,
Lo
ng
id
)
{
return
deployApp
(
fileSavePath
,
id
);
}
...
...
@@ -113,14 +115,14 @@ public class DeployServiceImpl implements DeployService {
* @param id
* @return
*/
private
String
deployApp
(
String
fileSavePath
,
Stri
ng
id
)
{
private
String
deployApp
(
String
fileSavePath
,
Lo
ng
id
)
{
DeployDTO
deploy
=
findById
(
id
);
if
(
deploy
==
null
)
{
sendMsg
(
"部署信息不存在"
,
MsgType
.
ERROR
);
throw
new
BadRequestException
(
"部署信息不存在"
);
}
AppDTO
app
=
appService
.
findById
(
deploy
.
getApp
Id
()
);
AppDTO
app
=
deploy
.
getApp
(
);
if
(
app
==
null
)
{
sendMsg
(
"包对应应用信息不存在"
,
MsgType
.
ERROR
);
throw
new
BadRequestException
(
"包对应应用信息不存在"
);
...
...
@@ -130,42 +132,44 @@ public class DeployServiceImpl implements DeployService {
String
uploadPath
=
app
.
getUploadPath
();
StringBuilder
sb
=
new
StringBuilder
();
String
msg
=
""
;
String
ip
=
deploy
.
getIp
();
ExecuteShellUtil
executeShellUtil
=
getExecuteShellUtil
(
ip
);
//判断是否第一次部署
boolean
flag
=
checkFile
(
executeShellUtil
,
app
);
//第一步要确认服务器上有这个目录
executeShellUtil
.
execute
(
"mkdir -p "
+
uploadPath
);
//上传文件
msg
=
String
.
format
(
"登陆到服务器:%s"
,
ip
);
ScpClientUtil
scpClientUtil
=
getScpClientUtil
(
ip
);
log
.
info
(
msg
);
sendMsg
(
msg
,
MsgType
.
INFO
);
msg
=
String
.
format
(
"上传文件到服务器:%s<br>目录:%s下"
,
ip
,
uploadPath
);
sendMsg
(
msg
,
MsgType
.
INFO
);
scpClientUtil
.
putFile
(
fileSavePath
,
uploadPath
);
if
(
flag
)
{
sendMsg
(
"停止原来应用"
,
MsgType
.
INFO
);
//停止应用
stopApp
(
port
,
executeShellUtil
);
sendMsg
(
"备份原来应用"
,
MsgType
.
INFO
);
//备份应用
backupApp
(
executeShellUtil
,
ip
,
app
.
getDeployPath
(),
app
.
getName
(),
app
.
getBackupPath
(),
id
);
Set
<
ServerDeployDTO
>
deploys
=
deploy
.
getDeploys
();
for
(
ServerDeployDTO
deployDTO
:
deploys
)
{
String
ip
=
deployDTO
.
getIp
();
ExecuteShellUtil
executeShellUtil
=
getExecuteShellUtil
(
ip
);
//判断是否第一次部署
boolean
flag
=
checkFile
(
executeShellUtil
,
app
);
//第一步要确认服务器上有这个目录
executeShellUtil
.
execute
(
"mkdir -p "
+
uploadPath
);
//上传文件
msg
=
String
.
format
(
"登陆到服务器:%s"
,
ip
);
ScpClientUtil
scpClientUtil
=
getScpClientUtil
(
ip
);
log
.
info
(
msg
);
sendMsg
(
msg
,
MsgType
.
INFO
);
msg
=
String
.
format
(
"上传文件到服务器:%s<br>目录:%s下"
,
ip
,
uploadPath
);
sendMsg
(
msg
,
MsgType
.
INFO
);
scpClientUtil
.
putFile
(
fileSavePath
,
uploadPath
);
if
(
flag
)
{
sendMsg
(
"停止原来应用"
,
MsgType
.
INFO
);
//停止应用
stopApp
(
port
,
executeShellUtil
);
sendMsg
(
"备份原来应用"
,
MsgType
.
INFO
);
//备份应用
backupApp
(
executeShellUtil
,
ip
,
app
.
getDeployPath
(),
app
.
getName
(),
app
.
getBackupPath
(),
id
);
}
sendMsg
(
"部署应用"
,
MsgType
.
INFO
);
//部署文件,并启动应用
String
deployScript
=
app
.
getDeployScript
();
executeShellUtil
.
execute
(
deployScript
);
sendMsg
(
"启动应用"
,
MsgType
.
INFO
);
String
startScript
=
app
.
getStartScript
();
executeShellUtil
.
execute
(
startScript
);
//只有过5秒才能知道到底是不是启动成功了。
sleep
(
5
);
boolean
result
=
checkIsRunningStatus
(
port
,
executeShellUtil
);
sb
.
append
(
"服务器:"
).
append
(
deployDTO
.
getName
()).
append
(
"<br>应用:"
).
append
(
app
.
getName
());
sendResultMsg
(
result
,
sb
);
}
sendMsg
(
"部署应用"
,
MsgType
.
INFO
);
//部署文件,并启动应用
String
deployScript
=
app
.
getDeployScript
();
executeShellUtil
.
execute
(
deployScript
);
sendMsg
(
"启动应用"
,
MsgType
.
INFO
);
String
startScript
=
app
.
getStartScript
();
executeShellUtil
.
execute
(
startScript
);
//只有过5秒才能知道到底是不是启动成功了。
sleep
(
5
);
boolean
result
=
checkIsRunningStatus
(
port
,
executeShellUtil
);
sb
.
append
(
"服务器:"
).
append
(
ip
).
append
(
"<br>应用:"
).
append
(
app
.
getName
());
sendResultMsg
(
result
,
sb
);
return
"部署结束"
;
}
...
...
@@ -177,7 +181,7 @@ public class DeployServiceImpl implements DeployService {
}
}
private
void
backupApp
(
ExecuteShellUtil
executeShellUtil
,
String
ip
,
String
fileSavePath
,
String
appName
,
String
backupPath
,
Stri
ng
id
)
{
private
void
backupApp
(
ExecuteShellUtil
executeShellUtil
,
String
ip
,
String
fileSavePath
,
String
appName
,
String
backupPath
,
Lo
ng
id
)
{
String
deployDate
=
DateUtil
.
format
(
new
Date
(),
DatePattern
.
PURE_DATETIME_PATTERN
);
StringBuilder
sb
=
new
StringBuilder
();
if
(!
backupPath
.
endsWith
(
FILE_SEPARATOR
))
{
...
...
@@ -241,21 +245,22 @@ public class DeployServiceImpl implements DeployService {
@Override
public
String
serverStatus
(
Deploy
resources
)
{
String
ip
=
resources
.
getIp
();
String
appId
=
resources
.
getAppId
();
AppDTO
app
=
appService
.
findById
(
appId
);
StringBuffer
sb
=
new
StringBuffer
();
ExecuteShellUtil
executeShellUtil
=
getExecuteShellUtil
(
ip
);
sb
.
append
(
"服务器:"
).
append
(
ip
).
append
(
"<br>应用:"
).
append
(
app
.
getName
());
boolean
result
=
checkIsRunningStatus
(
app
.
getPort
(),
executeShellUtil
);
if
(
result
)
{
sb
.
append
(
"<br>正在运行"
);
sendMsg
(
sb
.
toString
(),
MsgType
.
INFO
);
}
else
{
sb
.
append
(
"<br>已停止!"
);
sendMsg
(
sb
.
toString
(),
MsgType
.
ERROR
);
Set
<
ServerDeploy
>
serverDeploys
=
resources
.
getDeploys
();
App
app
=
resources
.
getApp
();
for
(
ServerDeploy
serverDeploy
:
serverDeploys
)
{
StringBuilder
sb
=
new
StringBuilder
();
ExecuteShellUtil
executeShellUtil
=
getExecuteShellUtil
(
serverDeploy
.
getIp
());
sb
.
append
(
"服务器:"
).
append
(
serverDeploy
.
getName
()).
append
(
"<br>应用:"
).
append
(
app
.
getName
());
boolean
result
=
checkIsRunningStatus
(
app
.
getPort
(),
executeShellUtil
);
if
(
result
)
{
sb
.
append
(
"<br>正在运行"
);
sendMsg
(
sb
.
toString
(),
MsgType
.
INFO
);
}
else
{
sb
.
append
(
"<br>已停止!"
);
sendMsg
(
sb
.
toString
(),
MsgType
.
ERROR
);
}
log
.
info
(
sb
.
toString
());
}
log
.
info
(
sb
.
toString
());
return
"执行完毕"
;
}
...
...
@@ -277,21 +282,22 @@ public class DeployServiceImpl implements DeployService {
*/
@Override
public
String
startServer
(
Deploy
resources
)
{
String
ip
=
resources
.
getIp
();
String
appId
=
resources
.
getAppId
();
AppDTO
app
=
appService
.
findById
(
appId
);
StringBuilder
sb
=
new
StringBuilder
();
ExecuteShellUtil
executeShellUtil
=
getExecuteShellUtil
(
ip
);
//为了防止重复启动,这里先停止应用
stopApp
(
app
.
getPort
(),
executeShellUtil
);
sb
.
append
(
"服务器:"
).
append
(
ip
).
append
(
"<br>应用:"
).
append
(
app
.
getName
());
sendMsg
(
"下发启动命令"
,
MsgType
.
INFO
);
executeShellUtil
.
execute
(
app
.
getStartScript
());
//停止3秒,防止应用没有启动完成
sleep
(
3
);
boolean
result
=
checkIsRunningStatus
(
app
.
getPort
(),
executeShellUtil
);
sendResultMsg
(
result
,
sb
);
log
.
info
(
sb
.
toString
());
Set
<
ServerDeploy
>
deploys
=
resources
.
getDeploys
();
App
app
=
resources
.
getApp
();
for
(
ServerDeploy
deploy
:
deploys
)
{
StringBuilder
sb
=
new
StringBuilder
();
ExecuteShellUtil
executeShellUtil
=
getExecuteShellUtil
(
deploy
.
getIp
());
//为了防止重复启动,这里先停止应用
stopApp
(
app
.
getPort
(),
executeShellUtil
);
sb
.
append
(
"服务器:"
).
append
(
deploy
.
getName
()).
append
(
"<br>应用:"
).
append
(
app
.
getName
());
sendMsg
(
"下发启动命令"
,
MsgType
.
INFO
);
executeShellUtil
.
execute
(
app
.
getStartScript
());
//停止3秒,防止应用没有启动完成
sleep
(
3
);
boolean
result
=
checkIsRunningStatus
(
app
.
getPort
(),
executeShellUtil
);
sendResultMsg
(
result
,
sb
);
log
.
info
(
sb
.
toString
());
}
return
"执行完毕"
;
}
...
...
@@ -302,34 +308,35 @@ public class DeployServiceImpl implements DeployService {
*/
@Override
public
String
stopServer
(
Deploy
resources
)
{
String
ip
=
resources
.
getIp
();
String
appId
=
resources
.
getAppId
();
AppDTO
app
=
appService
.
findById
(
appId
);
StringBuffer
sb
=
new
StringBuffer
();
ExecuteShellUtil
executeShellUtil
=
getExecuteShellUtil
(
ip
);
sb
.
append
(
"服务器:"
).
append
(
ip
).
append
(
"<br>应用:"
).
append
(
app
.
getName
());
sendMsg
(
"下发停止命令"
,
MsgType
.
INFO
);
//停止应用
stopApp
(
app
.
getPort
(),
executeShellUtil
);
sleep
(
1
);
boolean
result
=
checkIsRunningStatus
(
app
.
getPort
(),
executeShellUtil
);
if
(
result
)
{
sb
.
append
(
"<br>关闭失败!"
);
sendMsg
(
sb
.
toString
(),
MsgType
.
ERROR
);
}
else
{
sb
.
append
(
"<br>关闭成功!"
);
sendMsg
(
sb
.
toString
(),
MsgType
.
INFO
);
Set
<
ServerDeploy
>
deploys
=
resources
.
getDeploys
();
App
app
=
resources
.
getApp
();
for
(
ServerDeploy
deploy
:
deploys
)
{
StringBuffer
sb
=
new
StringBuffer
();
ExecuteShellUtil
executeShellUtil
=
getExecuteShellUtil
(
deploy
.
getIp
());
sb
.
append
(
"服务器:"
).
append
(
deploy
.
getName
()).
append
(
"<br>应用:"
).
append
(
app
.
getName
());
sendMsg
(
"下发停止命令"
,
MsgType
.
INFO
);
//停止应用
stopApp
(
app
.
getPort
(),
executeShellUtil
);
sleep
(
1
);
boolean
result
=
checkIsRunningStatus
(
app
.
getPort
(),
executeShellUtil
);
if
(
result
)
{
sb
.
append
(
"<br>关闭失败!"
);
sendMsg
(
sb
.
toString
(),
MsgType
.
ERROR
);
}
else
{
sb
.
append
(
"<br>关闭成功!"
);
sendMsg
(
sb
.
toString
(),
MsgType
.
INFO
);
}
log
.
info
(
sb
.
toString
());
}
log
.
info
(
sb
.
toString
());
return
"执行完毕"
;
}
@Override
public
String
serverReduction
(
DeployHistory
resources
)
{
Stri
ng
deployId
=
resources
.
getDeployId
();
Lo
ng
deployId
=
resources
.
getDeployId
();
Deploy
deployInfo
=
deployRepository
.
findById
(
deployId
).
get
();
String
deployDate
=
resources
.
getDeployDate
();
App
DTO
app
=
appService
.
findById
(
deployInfo
.
getApp
Id
()
);
App
app
=
deployInfo
.
getApp
(
);
if
(
app
==
null
)
{
sendMsg
(
"应用信息不存在:"
+
resources
.
getAppName
(),
MsgType
.
ERROR
);
throw
new
BadRequestException
(
"应用信息不存在:"
+
resources
.
getAppName
());
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment