@@ -41,6 +41,18 @@ func GetCurrentVersion(c *gin.Context) {
4141 c .JSON (http .StatusOK , curVer )
4242}
4343
44+ const (
45+ UpgradeStatusInfo = "info"
46+ UpgradeStatusError = "error"
47+ UpgradeStatusProgress = "progress"
48+ )
49+
50+ type CoreUpgradeResp struct {
51+ Status string `json:"status"`
52+ Progress float64 `json:"progress"`
53+ Message string `json:"message"`
54+ }
55+
4456func PerformCoreUpgrade (c * gin.Context ) {
4557 var upGrader = websocket.Upgrader {
4658 CheckOrigin : func (r * http.Request ) bool {
@@ -67,49 +79,48 @@ func PerformCoreUpgrade(c *gin.Context) {
6779 return
6880 }
6981
70- _ = ws .WriteJSON (gin. H {
71- "status" : "info" ,
72- "message" : "Initialing core upgrader" ,
82+ _ = ws .WriteJSON (CoreUpgradeResp {
83+ Status : UpgradeStatusInfo ,
84+ Message : "Initialing core upgrader" ,
7385 })
7486
7587 u , err := upgrader .NewUpgrader (control .Channel )
7688
7789 if err != nil {
78- _ = ws .WriteJSON (gin. H {
79- "status" : "error" ,
80- "message" : "Initial core upgrader error" ,
90+ _ = ws .WriteJSON (CoreUpgradeResp {
91+ Status : UpgradeStatusError ,
92+ Message : "Initial core upgrader error" ,
8193 })
82- _ = ws .WriteJSON (gin. H {
83- "status" : "error" ,
84- "message" : err .Error (),
94+ _ = ws .WriteJSON (CoreUpgradeResp {
95+ Status : UpgradeStatusError ,
96+ Message : err .Error (),
8597 })
8698 logger .Error (err )
8799 return
88100 }
89- _ = ws .WriteJSON (gin. H {
90- "status" : "info" ,
91- "message" : "Downloading latest release" ,
101+ _ = ws .WriteJSON (CoreUpgradeResp {
102+ Status : UpgradeStatusInfo ,
103+ Message : "Downloading latest release" ,
92104 })
93105 progressChan := make (chan float64 )
94106 go func () {
95107 for progress := range progressChan {
96- _ = ws .WriteJSON (gin. H {
97- "status" : "progress" ,
98- "progress" : progress ,
108+ _ = ws .WriteJSON (CoreUpgradeResp {
109+ Status : UpgradeStatusProgress ,
110+ Progress : progress ,
99111 })
100112 }
101113 }()
102114
103115 tarName , err := u .DownloadLatestRelease (progressChan )
104-
105116 if err != nil {
106- _ = ws .WriteJSON (gin. H {
107- "status" : "error" ,
108- "message" : "Download latest release error" ,
117+ _ = ws .WriteJSON (CoreUpgradeResp {
118+ Status : UpgradeStatusError ,
119+ Message : "Download latest release error" ,
109120 })
110- _ = ws .WriteJSON (gin. H {
111- "status" : "error" ,
112- "message" : err .Error (),
121+ _ = ws .WriteJSON (CoreUpgradeResp {
122+ Status : UpgradeStatusError ,
123+ Message : err .Error (),
113124 })
114125 logger .Error (err )
115126 return
@@ -119,9 +130,9 @@ func PerformCoreUpgrade(c *gin.Context) {
119130 _ = os .Remove (tarName )
120131 _ = os .Remove (tarName + ".digest" )
121132 }()
122- _ = ws .WriteJSON (gin. H {
123- "status" : "info" ,
124- "message" : "Performing core upgrade" ,
133+ _ = ws .WriteJSON (CoreUpgradeResp {
134+ Status : UpgradeStatusInfo ,
135+ Message : "Performing core upgrade" ,
125136 })
126137 // dry run
127138 if control .DryRun || settings .ServerSettings .Demo {
@@ -132,13 +143,13 @@ func PerformCoreUpgrade(c *gin.Context) {
132143 // bye, overseer will restart nginx-ui
133144 err = u .PerformCoreUpgrade (u .ExPath , tarName )
134145 if err != nil {
135- _ = ws .WriteJSON (gin. H {
136- "status" : "error" ,
137- "message" : "Perform core upgrade error" ,
146+ _ = ws .WriteJSON (CoreUpgradeResp {
147+ Status : UpgradeStatusError ,
148+ Message : "Perform core upgrade error" ,
138149 })
139- _ = ws .WriteJSON (gin. H {
140- "status" : "error" ,
141- "message" : err .Error (),
150+ _ = ws .WriteJSON (CoreUpgradeResp {
151+ Status : UpgradeStatusError ,
152+ Message : err .Error (),
142153 })
143154 logger .Error (err )
144155 return
0 commit comments