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
87b7d166
Commit
87b7d166
authored
Aug 03, 2020
by
szh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
重置节点 重置钱包 改为消息发送 接口即时返回成功
parent
fe2a3c59
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
75 additions
and
77 deletions
+75
-77
raspberryChan.go
pkg/app/raspberryChan.go
+71
-10
node.go
routers/api/v1/node.go
+4
-67
No files found.
pkg/app/raspberryChan.go
View file @
87b7d166
...
@@ -9,6 +9,7 @@ import (
...
@@ -9,6 +9,7 @@ import (
"os"
"os"
"os/exec"
"os/exec"
"time"
"time"
"path"
)
)
var
(
var
(
...
@@ -30,37 +31,51 @@ func RaspberryChan() {
...
@@ -30,37 +31,51 @@ func RaspberryChan() {
case
"ROLLBACK"
:
case
"ROLLBACK"
:
err
:=
rollback
()
err
:=
rollback
()
if
err
==
nil
{
if
err
==
nil
{
tlog
.
Info
(
"rollback success"
,
"err"
,
nil
)
tlog
.
Info
(
"
RaspberryChan
rollback success"
,
"err"
,
nil
)
}
else
{
}
else
{
tlog
.
Error
(
"rollback fail "
,
"err"
,
err
)
tlog
.
Error
(
"
RaspberryChan
rollback fail "
,
"err"
,
err
)
}
}
case
"BACKUP"
:
case
"BACKUP"
:
err
:=
backup
()
err
:=
backup
()
if
err
==
nil
{
if
err
==
nil
{
tlog
.
Info
(
"backup success"
,
"err"
,
nil
)
tlog
.
Info
(
"
RaspberryChan
backup success"
,
"err"
,
nil
)
}
else
{
}
else
{
tlog
.
Error
(
"backup fail "
,
"err"
,
err
)
tlog
.
Error
(
"
RaspberryChan
backup fail "
,
"err"
,
err
)
}
}
case
"RECOVER"
:
case
"RECOVER"
:
err
:=
recoverNode
()
err
:=
recoverNode
()
if
err
==
nil
{
if
err
==
nil
{
tlog
.
Info
(
"recover success"
,
"err"
,
nil
)
tlog
.
Info
(
"
RaspberryChan
recover success"
,
"err"
,
nil
)
}
else
{
}
else
{
tlog
.
Error
(
"recover fail "
,
"err"
,
err
)
tlog
.
Error
(
"
RaspberryChan
recover fail "
,
"err"
,
err
)
}
}
case
"DELETEBACKUP"
:
case
"DELETEBACKUP"
:
err
:=
deleteBackup
()
err
:=
deleteBackup
()
if
err
==
nil
{
if
err
==
nil
{
tlog
.
Info
(
"deleteBackup success"
,
"err"
,
nil
)
tlog
.
Info
(
"
RaspberryChan
deleteBackup success"
,
"err"
,
nil
)
}
else
{
}
else
{
tlog
.
Error
(
"deleteBackup fail "
,
"err"
,
err
)
tlog
.
Error
(
"
RaspberryChan
deleteBackup fail "
,
"err"
,
err
)
}
}
case
"RESTART"
:
case
"RESTART"
:
err
:=
restartNode
()
err
:=
restartNode
()
if
err
==
nil
{
if
err
==
nil
{
tlog
.
Info
(
"deleteBackup success"
,
"err"
,
nil
)
tlog
.
Info
(
"
RaspberryChan
deleteBackup success"
,
"err"
,
nil
)
}
else
{
}
else
{
tlog
.
Error
(
"deleteBackup fail "
,
"err"
,
err
)
tlog
.
Error
(
"RaspberryChan deleteBackup fail "
,
"err"
,
err
)
}
case
"RESET"
:
err
:=
resetNode
()
if
err
==
nil
{
tlog
.
Info
(
"RaspberryChan resetNode success"
,
"err"
,
nil
)
}
else
{
tlog
.
Error
(
"RaspberryChan resetNode fail "
,
"err"
,
err
)
}
case
"RESETWALLET"
:
err
:=
resetWallet
()
if
err
==
nil
{
tlog
.
Info
(
"RaspberryChan resetWallet success"
,
"err"
,
nil
)
}
else
{
tlog
.
Error
(
"RaspberryChan resetWallet fail "
,
"err"
,
err
)
}
}
}
}
...
@@ -248,6 +263,52 @@ func restartNode() error {
...
@@ -248,6 +263,52 @@ func restartNode() error {
return
nil
return
nil
}
}
func
resetNode
()
error
{
BityuanFlag
.
Lock
.
Lock
()
defer
BityuanFlag
.
Lock
.
Unlock
()
if
btyPath
==
""
{
tlog
.
Error
(
"btyPath empty"
,
"err"
,
"node not exists"
)
return
errors
.
New
(
"node not exists"
)
}
_
,
err
:=
SafeCloseNode
()
if
err
!=
nil
{
return
err
}
isrun
:=
MakeSureBtyIsNotRun
()
if
isrun
{
return
errors
.
New
(
"bty is running"
)
}
err
=
os
.
RemoveAll
(
fmt
.
Sprintf
(
"%s/datadir"
,
path
.
Dir
(
btyPath
)))
if
err
!=
nil
{
return
err
}
StartProcess
(
setting
.
Chain33Pai
.
Auto
)
return
nil
}
func
resetWallet
()
error
{
BityuanFlag
.
Lock
.
Lock
()
defer
BityuanFlag
.
Lock
.
Unlock
()
if
btyPath
==
""
{
tlog
.
Error
(
"btyPath empty"
,
"err"
,
"node not exists"
)
return
errors
.
New
(
"node not exists"
)
}
_
,
err
:=
SafeCloseNode
()
if
err
!=
nil
{
return
err
}
isrun
:=
MakeSureBtyIsNotRun
()
if
isrun
{
return
errors
.
New
(
"bty is running"
)
}
err
=
os
.
RemoveAll
(
fmt
.
Sprintf
(
"%s/wallet"
,
path
.
Dir
(
btyPath
)))
if
err
!=
nil
{
return
err
}
StartProcess
(
setting
.
Chain33Pai
.
Auto
)
return
nil
}
func
MakeSureBtyIsNotRun
()
bool
{
func
MakeSureBtyIsNotRun
()
bool
{
s
:=
time
.
Now
()
s
:=
time
.
Now
()
defer
func
()
{
defer
func
()
{
...
...
routers/api/v1/node.go
View file @
87b7d166
...
@@ -16,7 +16,6 @@ import (
...
@@ -16,7 +16,6 @@ import (
"net/http"
"net/http"
"os"
"os"
"os/exec"
"os/exec"
"path"
"reflect"
"reflect"
"strconv"
"strconv"
"strings"
"strings"
...
@@ -25,42 +24,8 @@ import (
...
@@ -25,42 +24,8 @@ import (
func
ResetWallet
(
c
*
gin
.
Context
)
{
func
ResetWallet
(
c
*
gin
.
Context
)
{
appG
:=
app
.
Gin
{
C
:
c
}
appG
:=
app
.
Gin
{
C
:
c
}
app
.
BityuanFlag
.
Lock
.
Lock
()
app
.
JobChan
<-
app
.
MsgType
{
Name
:
"RESETWALLET"
}
defer
app
.
BityuanFlag
.
Lock
.
Unlock
()
appG
.
Response
(
http
.
StatusOK
,
e
.
SUCCESS
,
"bityuan wallet reset"
)
if
app
.
BityuanFlag
.
Flag
{
appG
.
Response
(
http
.
StatusOK
,
e
.
TRY_LATER
,
"other job is busy,please try later"
)
return
}
app
.
BityuanFlag
.
Flag
=
true
if
app
.
NodeError
!=
nil
{
tlog
.
Error
(
app
.
NodeError
.
Error
())
appG
.
Response
(
http
.
StatusOK
,
e
.
NODE_ERROR
,
"node internal error,could not start node"
)
app
.
BityuanFlag
.
Flag
=
false
return
}
t
,
err
:=
app
.
SafeCloseNode
()
if
err
!=
nil
||
!
t
{
app
.
BityuanFlag
.
Flag
=
false
appG
.
Response
(
http
.
StatusOK
,
e
.
NODE_ERROR
,
err
)
return
}
err
=
os
.
RemoveAll
(
fmt
.
Sprintf
(
"%s/wallet"
,
path
.
Dir
(
app
.
Bityuan
.
Path
)))
if
err
!=
nil
{
appG
.
Response
(
http
.
StatusOK
,
e
.
NODE_ERROR
,
"fail to remove wallet"
)
tlog
.
Error
(
"ResetWallet"
,
"remove error"
,
err
)
app
.
BityuanFlag
.
Flag
=
false
return
}
err
=
app
.
StartProcess
(
setting
.
Chain33Pai
.
Auto
)
if
err
!=
nil
{
appG
.
Response
(
http
.
StatusOK
,
e
.
NODE_ERROR
,
"fail to restart node"
)
tlog
.
Error
(
"ResetWallet"
,
"auto.sh error "
,
err
)
app
.
BityuanFlag
.
Flag
=
false
return
}
appG
.
Response
(
http
.
StatusOK
,
e
.
SUCCESS
,
"reset complete"
)
app
.
BityuanFlag
.
Flag
=
false
}
}
//钱包更新,只替换执行文件和配置文件
//钱包更新,只替换执行文件和配置文件
...
@@ -189,36 +154,8 @@ func UpdateNodeNew(c *gin.Context) {
...
@@ -189,36 +154,8 @@ func UpdateNodeNew(c *gin.Context) {
//重置节点只需要删除datadir 然后重启节点
//重置节点只需要删除datadir 然后重启节点
func
ResetNode
(
c
*
gin
.
Context
)
{
func
ResetNode
(
c
*
gin
.
Context
)
{
appG
:=
app
.
Gin
{
C
:
c
}
appG
:=
app
.
Gin
{
C
:
c
}
app
.
BityuanFlag
.
Lock
.
Lock
()
app
.
JobChan
<-
app
.
MsgType
{
Name
:
"RESET"
}
defer
app
.
BityuanFlag
.
Lock
.
Unlock
()
appG
.
Response
(
http
.
StatusOK
,
e
.
SUCCESS
,
"bityuan reset"
)
if
app
.
BityuanFlag
.
Flag
{
appG
.
Response
(
http
.
StatusOK
,
e
.
TRY_LATER
,
"other job is busy,please try later"
)
return
}
app
.
BityuanFlag
.
Flag
=
true
_
,
err
:=
app
.
SafeCloseNode
()
if
err
!=
nil
{
appG
.
Response
(
http
.
StatusOK
,
e
.
NODE_ERROR
,
"node err"
)
app
.
BityuanFlag
.
Flag
=
false
return
}
err
=
os
.
RemoveAll
(
fmt
.
Sprintf
(
"%s/datadir"
,
path
.
Dir
(
app
.
Bityuan
.
Path
)))
if
err
!=
nil
{
app
.
BityuanFlag
.
Flag
=
false
tlog
.
Error
(
"ResetNode"
,
"remove datadir err"
,
err
)
appG
.
Response
(
http
.
StatusOK
,
e
.
RM_ERROR
,
"remove datadir err"
)
return
}
err
=
app
.
StartProcess
(
setting
.
Chain33Pai
.
Auto
)
if
err
!=
nil
{
tlog
.
Error
(
"ResetNode"
,
"start node err"
,
err
)
app
.
BityuanFlag
.
Flag
=
false
appG
.
Response
(
http
.
StatusOK
,
e
.
NODE_ERROR
,
"start auto sh err"
)
return
}
app
.
BityuanFlag
.
Flag
=
false
appG
.
Response
(
http
.
StatusOK
,
e
.
SUCCESS
,
"reset job ok"
)
}
}
func
UpdateDetail
(
c
*
gin
.
Context
)
{
func
UpdateDetail
(
c
*
gin
.
Context
)
{
...
...
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