Skip to content

Commit b1b6e8f

Browse files
committed
chore: dry run core upgrade in demo
1 parent 0265e44 commit b1b6e8f

File tree

2 files changed

+122
-120
lines changed

2 files changed

+122
-120
lines changed

resources/demo/app.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Email = [email protected]
66
HTTPChallengePort = 9180
77
StartCmd = bash
88
NodeSecret = fdc7764f-92d2-454c-9640-6a09be121139
9+
Demo = true
910

1011
[nginx_log]
1112
AccessLogPath = /var/log/nginx/access.local.log

server/api/upgrade.go

Lines changed: 121 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -1,144 +1,145 @@
11
package api
22

33
import (
4-
"github.com/0xJacky/Nginx-UI/server/internal/logger"
5-
"github.com/0xJacky/Nginx-UI/server/internal/upgrader"
6-
"github.com/gin-gonic/gin"
7-
"github.com/gorilla/websocket"
8-
"net/http"
9-
"os"
4+
"github.com/0xJacky/Nginx-UI/server/internal/logger"
5+
"github.com/0xJacky/Nginx-UI/server/internal/upgrader"
6+
"github.com/0xJacky/Nginx-UI/server/settings"
7+
"github.com/gin-gonic/gin"
8+
"github.com/gorilla/websocket"
9+
"net/http"
10+
"os"
1011
)
1112

1213
func GetRelease(c *gin.Context) {
13-
data, err := upgrader.GetRelease(c.Query("channel"))
14-
if err != nil {
15-
ErrHandler(c, err)
16-
return
17-
}
18-
runtimeInfo, err := upgrader.GetRuntimeInfo()
19-
if err != nil {
20-
ErrHandler(c, err)
21-
return
22-
}
23-
type resp struct {
24-
upgrader.TRelease
25-
upgrader.RuntimeInfo
26-
}
27-
c.JSON(http.StatusOK, resp{
28-
data, runtimeInfo,
29-
})
14+
data, err := upgrader.GetRelease(c.Query("channel"))
15+
if err != nil {
16+
ErrHandler(c, err)
17+
return
18+
}
19+
runtimeInfo, err := upgrader.GetRuntimeInfo()
20+
if err != nil {
21+
ErrHandler(c, err)
22+
return
23+
}
24+
type resp struct {
25+
upgrader.TRelease
26+
upgrader.RuntimeInfo
27+
}
28+
c.JSON(http.StatusOK, resp{
29+
data, runtimeInfo,
30+
})
3031
}
3132

3233
func GetCurrentVersion(c *gin.Context) {
33-
curVer, err := upgrader.GetCurrentVersion()
34-
if err != nil {
35-
ErrHandler(c, err)
36-
return
37-
}
34+
curVer, err := upgrader.GetCurrentVersion()
35+
if err != nil {
36+
ErrHandler(c, err)
37+
return
38+
}
3839

39-
c.JSON(http.StatusOK, curVer)
40+
c.JSON(http.StatusOK, curVer)
4041
}
4142

4243
func PerformCoreUpgrade(c *gin.Context) {
43-
var upGrader = websocket.Upgrader{
44-
CheckOrigin: func(r *http.Request) bool {
45-
return true
46-
},
47-
}
48-
// upgrade http to websocket
49-
ws, err := upGrader.Upgrade(c.Writer, c.Request, nil)
50-
if err != nil {
51-
logger.Error(err)
52-
return
53-
}
54-
defer ws.Close()
44+
var upGrader = websocket.Upgrader{
45+
CheckOrigin: func(r *http.Request) bool {
46+
return true
47+
},
48+
}
49+
// upgrade http to websocket
50+
ws, err := upGrader.Upgrade(c.Writer, c.Request, nil)
51+
if err != nil {
52+
logger.Error(err)
53+
return
54+
}
55+
defer ws.Close()
5556

56-
var control struct {
57-
DryRun bool `json:"dry_run"`
58-
Channel string `json:"channel"`
59-
}
57+
var control struct {
58+
DryRun bool `json:"dry_run"`
59+
Channel string `json:"channel"`
60+
}
6061

61-
err = ws.ReadJSON(&control)
62+
err = ws.ReadJSON(&control)
6263

63-
if err != nil {
64-
logger.Error(err)
65-
return
66-
}
64+
if err != nil {
65+
logger.Error(err)
66+
return
67+
}
6768

68-
_ = ws.WriteJSON(gin.H{
69-
"status": "info",
70-
"message": "Initialing core upgrader",
71-
})
69+
_ = ws.WriteJSON(gin.H{
70+
"status": "info",
71+
"message": "Initialing core upgrader",
72+
})
7273

73-
u, err := upgrader.NewUpgrader(control.Channel)
74+
u, err := upgrader.NewUpgrader(control.Channel)
7475

75-
if err != nil {
76-
_ = ws.WriteJSON(gin.H{
77-
"status": "error",
78-
"message": "Initial core upgrader error",
79-
})
80-
_ = ws.WriteJSON(gin.H{
81-
"status": "error",
82-
"message": err.Error(),
83-
})
84-
logger.Error(err)
85-
return
86-
}
87-
_ = ws.WriteJSON(gin.H{
88-
"status": "info",
89-
"message": "Downloading latest release",
90-
})
91-
progressChan := make(chan float64)
92-
go func() {
93-
for progress := range progressChan {
94-
_ = ws.WriteJSON(gin.H{
95-
"status": "progress",
96-
"progress": progress,
97-
})
98-
}
99-
}()
76+
if err != nil {
77+
_ = ws.WriteJSON(gin.H{
78+
"status": "error",
79+
"message": "Initial core upgrader error",
80+
})
81+
_ = ws.WriteJSON(gin.H{
82+
"status": "error",
83+
"message": err.Error(),
84+
})
85+
logger.Error(err)
86+
return
87+
}
88+
_ = ws.WriteJSON(gin.H{
89+
"status": "info",
90+
"message": "Downloading latest release",
91+
})
92+
progressChan := make(chan float64)
93+
go func() {
94+
for progress := range progressChan {
95+
_ = ws.WriteJSON(gin.H{
96+
"status": "progress",
97+
"progress": progress,
98+
})
99+
}
100+
}()
100101

101-
tarName, err := u.DownloadLatestRelease(progressChan)
102+
tarName, err := u.DownloadLatestRelease(progressChan)
102103

103-
if err != nil {
104-
_ = ws.WriteJSON(gin.H{
105-
"status": "error",
106-
"message": "Download latest release error",
107-
})
108-
_ = ws.WriteJSON(gin.H{
109-
"status": "error",
110-
"message": err.Error(),
111-
})
112-
logger.Error(err)
113-
return
114-
}
104+
if err != nil {
105+
_ = ws.WriteJSON(gin.H{
106+
"status": "error",
107+
"message": "Download latest release error",
108+
})
109+
_ = ws.WriteJSON(gin.H{
110+
"status": "error",
111+
"message": err.Error(),
112+
})
113+
logger.Error(err)
114+
return
115+
}
115116

116-
defer func() {
117-
_ = os.Remove(tarName)
118-
_ = os.Remove(tarName + ".digest")
119-
}()
120-
_ = ws.WriteJSON(gin.H{
121-
"status": "info",
122-
"message": "Performing core upgrade",
123-
})
124-
// dry run
125-
if control.DryRun {
126-
return
127-
}
117+
defer func() {
118+
_ = os.Remove(tarName)
119+
_ = os.Remove(tarName + ".digest")
120+
}()
121+
_ = ws.WriteJSON(gin.H{
122+
"status": "info",
123+
"message": "Performing core upgrade",
124+
})
125+
// dry run
126+
if control.DryRun || settings.ServerSettings.Demo {
127+
return
128+
}
128129

129-
_ = os.Remove(u.ExPath)
130-
// bye, overseer will restart nginx-ui
131-
err = u.PerformCoreUpgrade(u.ExPath, tarName)
132-
if err != nil {
133-
_ = ws.WriteJSON(gin.H{
134-
"status": "error",
135-
"message": "Perform core upgrade error",
136-
})
137-
_ = ws.WriteJSON(gin.H{
138-
"status": "error",
139-
"message": err.Error(),
140-
})
141-
logger.Error(err)
142-
return
143-
}
130+
_ = os.Remove(u.ExPath)
131+
// bye, overseer will restart nginx-ui
132+
err = u.PerformCoreUpgrade(u.ExPath, tarName)
133+
if err != nil {
134+
_ = ws.WriteJSON(gin.H{
135+
"status": "error",
136+
"message": "Perform core upgrade error",
137+
})
138+
_ = ws.WriteJSON(gin.H{
139+
"status": "error",
140+
"message": err.Error(),
141+
})
142+
logger.Error(err)
143+
return
144+
}
144145
}

0 commit comments

Comments
 (0)