mirror of
https://github.com/minio/minio.git
synced 2025-11-12 06:50:17 -05:00
Implement cluster-wide in-place updates (#8070)
This PR is a breaking change and also deprecates `minio update` command, from this release onwards all users are advised to just use `mc admin update`
This commit is contained in:
@@ -824,10 +824,29 @@ func (s *peerRESTServer) SignalServiceHandler(w http.ResponseWriter, r *http.Req
|
||||
s.writeErrorResponse(w, errors.New("signal name is missing"))
|
||||
return
|
||||
}
|
||||
signal := serviceSignal(signalString)
|
||||
si, err := strconv.Atoi(signalString)
|
||||
if err != nil {
|
||||
s.writeErrorResponse(w, err)
|
||||
return
|
||||
}
|
||||
signal := serviceSignal(si)
|
||||
defer w.(http.Flusher).Flush()
|
||||
switch signal {
|
||||
case serviceRestart, serviceStop:
|
||||
switch {
|
||||
case signal&serviceUpdate == serviceUpdate:
|
||||
us, err := updateServer()
|
||||
if err != nil {
|
||||
s.writeErrorResponse(w, err)
|
||||
return
|
||||
}
|
||||
// We didn't upgrade, no need to restart
|
||||
// the services.
|
||||
if us.CurrentVersion == us.UpdatedVersion {
|
||||
return
|
||||
}
|
||||
fallthrough
|
||||
case signal&serviceRestart == serviceRestart:
|
||||
fallthrough
|
||||
case signal&serviceStop == serviceStop:
|
||||
globalServiceSignalCh <- signal
|
||||
default:
|
||||
s.writeErrorResponse(w, errUnsupportedSignal)
|
||||
|
||||
Reference in New Issue
Block a user