Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
chain33-pai
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
szh
chain33-pai
Commits
5a3ec693
Commit
5a3ec693
authored
Jan 06, 2020
by
szh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
path + /
parent
97eb5dd0
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
23 additions
and
19 deletions
+23
-19
node.go
routers/api/v1/node.go
+23
-19
No files found.
routers/api/v1/node.go
View file @
5a3ec693
...
@@ -66,7 +66,7 @@ func UpdateNode(c *gin.Context){
...
@@ -66,7 +66,7 @@ func UpdateNode(c *gin.Context){
appG
.
Response
(
http
.
StatusOK
,
e
.
NODE_ERROR
,
"node internal error,could not start node"
)
appG
.
Response
(
http
.
StatusOK
,
e
.
NODE_ERROR
,
"node internal error,could not start node"
)
return
return
}
}
absPath
:=
app
.
GetAbsPath
(
setting
.
BityuanSetting
.
Name
)
absPath
:=
app
.
GetAbsPath
(
setting
.
BityuanSetting
.
Name
)
+
"/"
pwd
,
err
:=
os
.
Getwd
()
pwd
,
err
:=
os
.
Getwd
()
if
err
!=
nil
{
if
err
!=
nil
{
appG
.
Response
(
http
.
StatusOK
,
e
.
ERROR
,
"get pwd err"
)
appG
.
Response
(
http
.
StatusOK
,
e
.
ERROR
,
"get pwd err"
)
...
@@ -98,9 +98,11 @@ func UpdateNode(c *gin.Context){
...
@@ -98,9 +98,11 @@ func UpdateNode(c *gin.Context){
appG
.
Response
(
http
.
StatusOK
,
e
.
NETWORK_ERROR
,
"network error,please checkout your network then try again"
)
appG
.
Response
(
http
.
StatusOK
,
e
.
NETWORK_ERROR
,
"network error,please checkout your network then try again"
)
return
return
}
}
stderr
:=
bytes
.
NewBuffer
(
nil
)
name
:=
setting
.
BityuanSetting
.
Name
+
"_"
+
latestVersion
+
".tar.gz"
name
:=
setting
.
BityuanSetting
.
Name
+
"_"
+
latestVersion
+
".tar.gz"
url
:=
setting
.
Chain33Pai
.
DownloadUrl
+
name
url
:=
setting
.
Chain33Pai
.
DownloadUrl
+
name
tlog
.
Info
(
"UpdateNode"
,
"dir"
,
setting
.
BityuanSetting
.
Name
+
"_"
+
latestVersion
)
tlog
.
Info
(
"UpdateNode"
,
"path"
,
absPath
)
err
=
app
.
DownLoadFile
(
url
,
name
,
int32
(
1
))
err
=
app
.
DownLoadFile
(
url
,
name
,
int32
(
1
))
if
err
!=
nil
{
if
err
!=
nil
{
appG
.
Response
(
http
.
StatusOK
,
e
.
DOWNLOAD_ERROR
,
err
)
appG
.
Response
(
http
.
StatusOK
,
e
.
DOWNLOAD_ERROR
,
err
)
...
@@ -110,6 +112,7 @@ func UpdateNode(c *gin.Context){
...
@@ -110,6 +112,7 @@ func UpdateNode(c *gin.Context){
}
}
//解压缩文件
//解压缩文件
tar
:=
exec
.
Command
(
"tar"
,
"-xvf"
,
name
)
tar
:=
exec
.
Command
(
"tar"
,
"-xvf"
,
name
)
tar
.
Stderr
=
stderr
err
=
tar
.
Start
()
err
=
tar
.
Start
()
if
err
!=
nil
{
if
err
!=
nil
{
tlog
.
Error
(
"tar"
,
"err"
,
err
)
tlog
.
Error
(
"tar"
,
"err"
,
err
)
...
@@ -120,14 +123,15 @@ func UpdateNode(c *gin.Context){
...
@@ -120,14 +123,15 @@ func UpdateNode(c *gin.Context){
}
}
err
=
tar
.
Wait
()
err
=
tar
.
Wait
()
if
err
!=
nil
{
if
err
!=
nil
{
tlog
.
Error
(
"tar"
,
"err"
,
err
)
tlog
.
Error
(
"tar"
,
"err"
,
stderr
.
String
()
)
appG
.
Response
(
http
.
StatusOK
,
e
.
TAR_XVF_ERROR
,
err
)
appG
.
Response
(
http
.
StatusOK
,
e
.
TAR_XVF_ERROR
,
stderr
.
String
()
)
app
.
UpdateInfo
.
Flag
=
true
app
.
UpdateInfo
.
Flag
=
true
app
.
BityuanFlag
=
false
app
.
BityuanFlag
=
false
return
return
}
}
//备份原文件 确保没有alias 关联
//备份原文件 确保没有alias 关联
bak
:=
exec
.
Command
(
"cp"
,
absPath
+
setting
.
BityuanSetting
.
Name
,
absPath
+
setting
.
BityuanSetting
.
Name
+
".bak"
)
bak
:=
exec
.
Command
(
"cp"
,
absPath
+
setting
.
BityuanSetting
.
Name
,
absPath
+
setting
.
BityuanSetting
.
Name
+
".bak"
)
bak
.
Stderr
=
stderr
err
=
bak
.
Start
()
err
=
bak
.
Start
()
if
err
!=
nil
{
if
err
!=
nil
{
tlog
.
Error
(
"bak"
,
"err"
,
err
)
tlog
.
Error
(
"bak"
,
"err"
,
err
)
...
@@ -138,14 +142,15 @@ func UpdateNode(c *gin.Context){
...
@@ -138,14 +142,15 @@ func UpdateNode(c *gin.Context){
}
}
err
=
bak
.
Wait
()
err
=
bak
.
Wait
()
if
err
!=
nil
{
if
err
!=
nil
{
tlog
.
Error
(
"bak"
,
"err"
,
err
)
tlog
.
Error
(
"bak"
,
"err"
,
stderr
.
String
()
)
appG
.
Response
(
http
.
StatusOK
,
e
.
CP_ERROR
,
err
)
appG
.
Response
(
http
.
StatusOK
,
e
.
CP_ERROR
,
stderr
.
String
()
)
app
.
UpdateInfo
.
Flag
=
true
app
.
UpdateInfo
.
Flag
=
true
app
.
BityuanFlag
=
false
app
.
BityuanFlag
=
false
return
return
}
}
//备份配置文件
//备份配置文件
bakconf
:=
exec
.
Command
(
"cp"
,
absPath
+
"bityuan.toml"
,
absPath
+
"bityuan.toml.bak"
)
bakconf
:=
exec
.
Command
(
"cp"
,
absPath
+
"bityuan.toml"
,
absPath
+
"bityuan.toml.bak"
)
bakconf
.
Stderr
=
stderr
err
=
bakconf
.
Start
()
err
=
bakconf
.
Start
()
if
err
!=
nil
{
if
err
!=
nil
{
tlog
.
Error
(
"bakconf"
,
"err"
,
err
)
tlog
.
Error
(
"bakconf"
,
"err"
,
err
)
...
@@ -156,8 +161,8 @@ func UpdateNode(c *gin.Context){
...
@@ -156,8 +161,8 @@ func UpdateNode(c *gin.Context){
}
}
err
=
bakconf
.
Wait
()
err
=
bakconf
.
Wait
()
if
err
!=
nil
{
if
err
!=
nil
{
tlog
.
Error
(
"bakconf"
,
"err"
,
err
)
tlog
.
Error
(
"bakconf"
,
"err"
,
stderr
.
String
()
)
appG
.
Response
(
http
.
StatusOK
,
e
.
CP_ERROR
,
err
)
appG
.
Response
(
http
.
StatusOK
,
e
.
CP_ERROR
,
stderr
.
String
()
)
app
.
UpdateInfo
.
Flag
=
true
app
.
UpdateInfo
.
Flag
=
true
app
.
BityuanFlag
=
false
app
.
BityuanFlag
=
false
return
return
...
@@ -170,8 +175,7 @@ func UpdateNode(c *gin.Context){
...
@@ -170,8 +175,7 @@ func UpdateNode(c *gin.Context){
return
return
}
}
//替换原执行文件
//替换原执行文件
tlog
.
Error
(
setting
.
BityuanSetting
.
Name
+
"_"
+
latestVersion
)
tlog
.
Error
(
absPath
)
err
=
os
.
Chmod
(
pwd
+
setting
.
BityuanSetting
.
Name
+
"_"
+
latestVersion
+
"/"
+
setting
.
BityuanSetting
.
Name
,
0755
)
err
=
os
.
Chmod
(
pwd
+
setting
.
BityuanSetting
.
Name
+
"_"
+
latestVersion
+
"/"
+
setting
.
BityuanSetting
.
Name
,
0755
)
if
err
!=
nil
{
if
err
!=
nil
{
appG
.
Response
(
http
.
StatusOK
,
e
.
ERROR
,
err
)
appG
.
Response
(
http
.
StatusOK
,
e
.
ERROR
,
err
)
...
@@ -187,8 +191,8 @@ func UpdateNode(c *gin.Context){
...
@@ -187,8 +191,8 @@ func UpdateNode(c *gin.Context){
return
return
}
}
mv
:=
exec
.
Command
(
"mv"
,
pwd
+
setting
.
BityuanSetting
.
Name
+
"_"
+
latestVersion
+
"/"
+
setting
.
BityuanSetting
.
Name
,
absPath
)
mv
:=
exec
.
Command
(
"mv"
,
pwd
+
setting
.
BityuanSetting
.
Name
+
"_"
+
latestVersion
+
"/"
+
setting
.
BityuanSetting
.
Name
,
absPath
)
mverr
:=
bytes
.
NewBuffer
(
nil
)
mv
.
Stderr
=
mv
err
mv
.
Stderr
=
std
err
err
=
mv
.
Start
()
err
=
mv
.
Start
()
if
err
!=
nil
{
if
err
!=
nil
{
tlog
.
Error
(
"mv"
,
"err"
,
err
)
tlog
.
Error
(
"mv"
,
"err"
,
err
)
...
@@ -199,15 +203,14 @@ func UpdateNode(c *gin.Context){
...
@@ -199,15 +203,14 @@ func UpdateNode(c *gin.Context){
}
}
err
=
mv
.
Wait
()
err
=
mv
.
Wait
()
if
err
!=
nil
{
if
err
!=
nil
{
tlog
.
Error
(
"stderr:"
,
"err"
,
mv
err
.
String
())
tlog
.
Error
(
"stderr:"
,
"err"
,
std
err
.
String
())
appG
.
Response
(
http
.
StatusOK
,
e
.
MV_ERROR
,
mv
err
.
String
())
appG
.
Response
(
http
.
StatusOK
,
e
.
MV_ERROR
,
std
err
.
String
())
app
.
UpdateInfo
.
Flag
=
true
app
.
UpdateInfo
.
Flag
=
true
app
.
BityuanFlag
=
false
app
.
BityuanFlag
=
false
return
return
}
}
mv2
:=
exec
.
Command
(
"mv"
,
pwd
+
setting
.
BityuanSetting
.
Name
+
"_"
+
latestVersion
+
"/"
+
setting
.
BityuanSetting
.
Name
+
"-cli"
,
absPath
)
mv2
:=
exec
.
Command
(
"mv"
,
pwd
+
setting
.
BityuanSetting
.
Name
+
"_"
+
latestVersion
+
"/"
+
setting
.
BityuanSetting
.
Name
+
"-cli"
,
absPath
)
mverr2
:=
bytes
.
NewBuffer
(
nil
)
mv2
.
Stderr
=
stderr
mv2
.
Stderr
=
mverr2
err
=
mv2
.
Start
()
err
=
mv2
.
Start
()
if
err
!=
nil
{
if
err
!=
nil
{
tlog
.
Error
(
"mv2"
,
"err"
,
err
)
tlog
.
Error
(
"mv2"
,
"err"
,
err
)
...
@@ -218,8 +221,8 @@ func UpdateNode(c *gin.Context){
...
@@ -218,8 +221,8 @@ func UpdateNode(c *gin.Context){
}
}
err
=
mv2
.
Wait
()
err
=
mv2
.
Wait
()
if
err
!=
nil
{
if
err
!=
nil
{
tlog
.
Error
(
"stderr2:"
,
"err"
,
mverr2
.
String
())
tlog
.
Error
(
"stderr2:"
,
"err"
,
stderr
.
String
())
appG
.
Response
(
http
.
StatusOK
,
e
.
MV_ERROR
,
mverr2
.
String
())
appG
.
Response
(
http
.
StatusOK
,
e
.
MV_ERROR
,
stderr
.
String
())
app
.
UpdateInfo
.
Flag
=
true
app
.
UpdateInfo
.
Flag
=
true
app
.
BityuanFlag
=
false
app
.
BityuanFlag
=
false
return
return
...
@@ -242,6 +245,7 @@ func UpdateNode(c *gin.Context){
...
@@ -242,6 +245,7 @@ func UpdateNode(c *gin.Context){
// return
// return
//}
//}
remove
:=
exec
.
Command
(
"rm"
,
"-rf"
,
setting
.
BityuanSetting
.
Name
+
"_"
+
latestVersion
,
name
)
remove
:=
exec
.
Command
(
"rm"
,
"-rf"
,
setting
.
BityuanSetting
.
Name
+
"_"
+
latestVersion
,
name
)
remove
.
Stderr
=
stderr
err
=
remove
.
Start
()
err
=
remove
.
Start
()
if
err
!=
nil
{
if
err
!=
nil
{
appG
.
Response
(
http
.
StatusOK
,
e
.
RM_ERROR
,
err
)
appG
.
Response
(
http
.
StatusOK
,
e
.
RM_ERROR
,
err
)
...
@@ -250,7 +254,7 @@ func UpdateNode(c *gin.Context){
...
@@ -250,7 +254,7 @@ func UpdateNode(c *gin.Context){
}
}
err
=
remove
.
Wait
()
err
=
remove
.
Wait
()
if
err
!=
nil
{
if
err
!=
nil
{
appG
.
Response
(
http
.
StatusOK
,
e
.
RM_ERROR
,
err
)
appG
.
Response
(
http
.
StatusOK
,
e
.
RM_ERROR
,
stderr
.
String
()
)
app
.
DPercent
.
Flag
=
false
app
.
DPercent
.
Flag
=
false
return
return
}
}
...
...
Write
Preview
Markdown
is supported
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