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
738b1e40
Commit
738b1e40
authored
Nov 04, 2021
by
szh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
比特元 6.4版本 强制升级到最新版本
parent
4bf8af55
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
152 additions
and
19 deletions
+152
-19
process.go
pkg/app/process.go
+16
-1
raspberryChan.go
pkg/app/raspberryChan.go
+135
-17
version.go
pkg/app/version.go
+1
-1
No files found.
pkg/app/process.go
View file @
738b1e40
...
...
@@ -187,7 +187,22 @@ func MakeSureNodeRunning() error {
tlog
.
Error
(
"MakeSureNodeRunning SetPai"
,
"err"
,
err
)
return
err
}
//版本不一致 6.4.x版本进行升级
version
,
err
:=
pai
.
GetPaiLatestVersion
(
1
)
if
err
!=
nil
{
return
err
}
if
pai
.
BtyVersion
!=
nil
&&
pai
.
BtyVersion
.
App
!=
version
&&
strings
.
Contains
(
pai
.
BtyVersion
.
App
,
"6.4"
)
{
for
_
,
d
:=
range
pai
.
Disks
{
if
len
(
d
.
SizeK
)
>=
9
&&
(
strings
.
Contains
(
d
.
Use
,
"98"
)
||
strings
.
Contains
(
d
.
Use
,
"99"
)
||
strings
.
Contains
(
d
.
Use
,
"100"
))
{
util
.
AddValue
(
&
JobID
,
1
)
JobChan
<-
MsgType
{
Name
:
"CLEARLOG"
,
JobID
:
JobID
}
}
}
util
.
AddValue
(
&
JobID
,
1
)
JobChan
<-
MsgType
{
Name
:
"NODEUPDATE"
,
JobID
:
JobID
}
return
nil
}
// peer list只有自己 节点应进行重启或升级
if
pai
.
PeerLen
==
1
{
util
.
AddValue
(
&
JobID
,
1
)
...
...
pkg/app/raspberryChan.go
View file @
738b1e40
...
...
@@ -2,15 +2,17 @@ package app
import
(
"bytes"
pai2
"chain33-pai/pkg/pai"
"chain33-pai/pkg/setting"
"chain33-pai/pkg/util"
"chain33-pai/service/pai_service"
"errors"
"fmt"
"os"
"os/exec"
"time"
"strings"
"strconv"
"strings"
"time"
)
var
(
...
...
@@ -28,7 +30,7 @@ func RaspberryChan() {
}
path
:=
GetAbsPath
(
setting
.
BityuanSetting
.
Name
)
if
path
!=
""
{
tlog
.
Info
(
"GetAbsPath node"
,
"path"
,
path
)
tlog
.
Info
(
"GetAbsPath node"
,
"path"
,
path
)
btyPath
=
path
}
switch
value
.
Name
{
...
...
@@ -37,35 +39,35 @@ func RaspberryChan() {
if
err
!=
nil
{
tlog
.
Error
(
"RaspberryChan rollback fail "
,
"err"
,
err
)
}
updateJobMap
(
value
.
JobID
,
err
)
updateJobMap
(
value
.
JobID
,
err
)
tlog
.
Info
(
"RaspberryChan rollback success"
,
"err"
,
nil
)
case
"BACKUP"
:
err
:=
backup
()
if
err
!=
nil
{
tlog
.
Error
(
"RaspberryChan backup fail "
,
"err"
,
err
)
}
updateJobMap
(
value
.
JobID
,
err
)
updateJobMap
(
value
.
JobID
,
err
)
tlog
.
Info
(
"RaspberryChan backup success"
,
"err"
,
nil
)
case
"RECOVER"
:
err
:=
recoverNode
()
if
err
!=
nil
{
tlog
.
Error
(
"RaspberryChan recover fail "
,
"err"
,
err
)
}
updateJobMap
(
value
.
JobID
,
err
)
updateJobMap
(
value
.
JobID
,
err
)
tlog
.
Info
(
"RaspberryChan recover success"
,
"err"
,
nil
)
case
"DELETEBACKUP"
:
err
:=
deleteBackup
()
if
err
!=
nil
{
tlog
.
Error
(
"RaspberryChan deleteBackup fail "
,
"err"
,
err
)
}
updateJobMap
(
value
.
JobID
,
err
)
updateJobMap
(
value
.
JobID
,
err
)
tlog
.
Info
(
"RaspberryChan deleteBackup success"
,
"err"
,
nil
)
case
"RESTART"
:
err
:=
restartNode
()
if
err
!=
nil
{
tlog
.
Error
(
"RaspberryChan deleteBackup fail "
,
"err"
,
err
)
}
updateJobMap
(
value
.
JobID
,
err
)
updateJobMap
(
value
.
JobID
,
err
)
tlog
.
Info
(
"RaspberryChan deleteBackup success"
,
"err"
,
nil
)
case
"RESET"
:
err
:=
resetNode
()
...
...
@@ -73,30 +75,146 @@ func RaspberryChan() {
tlog
.
Error
(
"RaspberryChan resetNode fail "
,
"err"
,
err
)
}
updateJobMap
(
value
.
JobID
,
err
)
updateJobMap
(
value
.
JobID
,
err
)
tlog
.
Info
(
"RaspberryChan resetNode success"
,
"err"
,
nil
)
case
"RESETWALLET"
:
err
:=
resetWallet
()
if
err
!=
nil
{
tlog
.
Error
(
"RaspberryChan resetWallet fail "
,
"err"
,
err
)
}
updateJobMap
(
value
.
JobID
,
err
)
updateJobMap
(
value
.
JobID
,
err
)
tlog
.
Info
(
"RaspberryChan resetWallet success"
,
"err"
,
nil
)
case
"CLOSE"
:
err
:=
closeNode
()
if
err
!=
nil
{
tlog
.
Error
(
"RaspberryChan resetWallet fail "
,
"err"
,
err
)
}
updateJobMap
(
value
.
JobID
,
err
)
updateJobMap
(
value
.
JobID
,
err
)
tlog
.
Info
(
"RaspberryChan resetWallet success"
,
"err"
,
nil
)
default
:
tlog
.
Error
(
"RaspberryChan not support type"
,
"msg"
,
value
.
Name
)
updateJobMap
(
value
.
JobID
,
errors
.
New
(
"RaspberryChan not support type"
))
case
"NODEUPDATE"
:
err
:=
nodeUpdate
()
if
err
!=
nil
{
tlog
.
Error
(
"RaspberryChan nodeUpdate fail "
,
"err"
,
err
)
}
updateJobMap
(
value
.
JobID
,
err
)
case
"CLEARLOG"
:
//清理日志 为其他操作做准备
err
:=
clearLog
()
if
err
!=
nil
{
tlog
.
Error
(
"RaspberryChan clearLog fail "
,
"err"
,
err
)
}
updateJobMap
(
value
.
JobID
,
err
)
default
:
tlog
.
Error
(
"RaspberryChan not support type"
,
"msg"
,
value
.
Name
)
updateJobMap
(
value
.
JobID
,
errors
.
New
(
"RaspberryChan not support type"
))
}
}
time
.
Sleep
(
time
.
Second
*
1
)
}
}
func
clearLog
()
error
{
BityuanFlag
.
Lock
.
Lock
()
defer
BityuanFlag
.
Lock
.
Unlock
()
if
btyPath
!=
""
{
remove
:=
exec
.
Command
(
"rm"
,
"-rf"
,
btyPath
+
"/logs/*.gz"
)
err
:=
remove
.
Run
()
if
err
!=
nil
{
tlog
.
Error
(
"rm -rf datadir_backup"
,
"err"
,
err
)
return
err
}
return
nil
}
tlog
.
Error
(
"clearLog "
,
"err"
,
"btypath not exists"
)
return
errors
.
New
(
"btypath is empty"
)
}
func
nodeUpdate
()
error
{
BityuanFlag
.
Lock
.
Lock
()
defer
BityuanFlag
.
Lock
.
Unlock
()
var
pai
pai_service
.
Pai
var
latestVersion
string
err
:=
pai
.
GetBtyVersion
()
if
err
!=
nil
{
tlog
.
Error
(
"nodeupdate"
,
"err"
,
err
)
return
err
}
//判断当前环境为测试环境还是正式环境
if
setting
.
Chain33Pai
.
Env
==
"formal"
{
latestVersion
,
err
=
pai
.
GetPaiLatestVersion
(
int32
(
1
))
if
err
!=
nil
{
return
err
}
}
else
if
setting
.
Chain33Pai
.
Env
==
"test"
{
latestVersion
,
err
=
pai
.
GetPaiVersionTest
(
int32
(
1
))
if
err
!=
nil
{
return
err
}
}
tlog
.
Info
(
"nodeupdate"
,
"node version"
,
pai
.
BtyVersion
.
App
,
"last version"
,
latestVersion
)
if
util
.
VersionCompare
(
version
)
<=
util
.
VersionCompare
(
pai
.
BtyVersion
.
App
)
{
return
nil
}
name
:=
setting
.
BityuanSetting
.
Name
+
"_"
+
latestVersion
+
".tar.gz"
url
:=
setting
.
Chain33Pai
.
DownloadUrl
+
name
if
pai2
.
GetArchType
()
==
"x86_64"
{
name
=
setting
.
BityuanSetting
.
Name
+
"-linux_"
+
latestVersion
+
".tar.gz"
url
=
setting
.
Chain33Pai
.
DownloadUrl
+
name
}
else
if
pai2
.
GetArchType
()
==
"arm"
{
name
=
setting
.
BityuanSetting
.
Name
+
"-arm_"
+
latestVersion
+
".tar.gz"
url
=
setting
.
Chain33Pai
.
DownloadUrl
+
name
}
tlog
.
Info
(
"chan UpdateNode"
,
"dir"
,
setting
.
BityuanSetting
.
Name
+
"_"
+
latestVersion
)
tlog
.
Info
(
"chan UpdateNode"
,
"path"
,
btyPath
)
tlog
.
Info
(
"chan downloadUrl"
,
"url"
,
url
)
err
=
DownLoadFile
(
url
,
name
,
1
)
if
err
!=
nil
{
tlog
.
Error
(
"nodeupdate download"
,
"err"
,
err
)
return
err
}
_
,
err
=
SafeCloseNode
()
if
err
!=
nil
{
return
err
}
isRun
:=
MakeSureBtyIsNotRun
()
if
!
isRun
{
tlog
.
Error
(
"MakeSureBtyIsNotRun"
,
"isRun"
,
isRun
)
return
nil
}
btyPathSplit
:=
strings
.
Split
(
btyPath
,
"wallet-bty"
)
if
len
(
btyPathSplit
)
!=
2
{
return
errors
.
New
(
"btyPath not contains wallet-bty"
)
}
tar
:=
exec
.
Command
(
"tar"
,
"-xvf"
,
name
,
"-C"
,
btyPathSplit
[
0
])
stdErr
:=
bytes
.
NewBuffer
(
nil
)
tar
.
Stderr
=
stdErr
err
=
tar
.
Start
()
if
err
!=
nil
{
tlog
.
Error
(
"tar "
,
"err"
,
string
(
stdErr
.
Bytes
()))
return
err
}
err
=
tar
.
Wait
()
if
err
!=
nil
{
tlog
.
Error
(
"tar "
,
"err"
,
string
(
stdErr
.
Bytes
()))
return
err
}
time
.
Sleep
(
time
.
Second
*
1
)
rm
:=
exec
.
Command
(
"rm"
,
"-rf"
,
name
)
rm
.
Stderr
=
stdErr
err
=
rm
.
Start
()
if
err
!=
nil
{
tlog
.
Error
(
"rm "
,
"err"
,
string
(
stdErr
.
Bytes
()))
return
err
}
err
=
rm
.
Wait
()
if
err
!=
nil
{
tlog
.
Error
(
"rm "
,
"err"
,
string
(
stdErr
.
Bytes
()))
return
err
}
StartProcess
(
setting
.
Chain33Pai
.
Auto
)
return
nil
}
func
rollback
()
error
{
...
...
@@ -369,8 +487,8 @@ func closeNode() error {
return
nil
}
func
updateJobMap
(
id
int32
,
err
error
)
bool
{
if
_
,
exists
:=
JobDoneMap
[
id
];
!
exists
{
func
updateJobMap
(
id
int32
,
err
error
)
bool
{
if
_
,
exists
:=
JobDoneMap
[
id
];
!
exists
{
if
err
==
nil
{
JobDoneMap
[
id
]
=
""
}
else
{
...
...
@@ -379,7 +497,7 @@ func updateJobMap(id int32,err error) bool {
return
true
}
tlog
.
Error
(
"updateJobMap error"
,
"jobid"
,
id
)
tlog
.
Error
(
"updateJobMap error"
,
"jobid"
,
id
)
return
false
}
...
...
pkg/app/version.go
View file @
738b1e40
package
app
const
version
=
"0.3.
5
"
const
version
=
"0.3.
6
"
var
(
GitCommit
string
...
...
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