mirror of https://github.com/status-im/consul.git
Revert "fix: update status of maintenance check"
This reverts commit 02c65d66be
.
This commit is contained in:
parent
338bc8d141
commit
4de87e12e8
|
@ -1,3 +1,3 @@
|
||||||
```release-note:bug
|
```release-note:bug
|
||||||
agent: update maintenance check to passing instead of removing the check
|
agent: update maintenance check to passing before removing
|
||||||
```
|
```
|
||||||
|
|
|
@ -4194,7 +4194,7 @@ func (a *Agent) EnableServiceMaintenance(serviceID structs.ServiceID, reason, to
|
||||||
|
|
||||||
// Check if maintenance mode is not already enabled
|
// Check if maintenance mode is not already enabled
|
||||||
checkID := serviceMaintCheckID(serviceID)
|
checkID := serviceMaintCheckID(serviceID)
|
||||||
if a.State.Check(checkID) != nil && a.State.Check(checkID).Status != api.HealthPassing {
|
if a.State.Check(checkID) != nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4203,7 +4203,7 @@ func (a *Agent) EnableServiceMaintenance(serviceID structs.ServiceID, reason, to
|
||||||
reason = defaultServiceMaintReason
|
reason = defaultServiceMaintReason
|
||||||
}
|
}
|
||||||
|
|
||||||
// New Critical Health Check
|
// Create and register the critical health check
|
||||||
check := &structs.HealthCheck{
|
check := &structs.HealthCheck{
|
||||||
Node: a.config.NodeName,
|
Node: a.config.NodeName,
|
||||||
CheckID: checkID.ID,
|
CheckID: checkID.ID,
|
||||||
|
@ -4215,17 +4215,7 @@ func (a *Agent) EnableServiceMaintenance(serviceID structs.ServiceID, reason, to
|
||||||
Type: "maintenance",
|
Type: "maintenance",
|
||||||
EnterpriseMeta: checkID.EnterpriseMeta,
|
EnterpriseMeta: checkID.EnterpriseMeta,
|
||||||
}
|
}
|
||||||
|
a.AddCheck(check, nil, true, token, ConfigSourceLocal)
|
||||||
// If check exists, update status, else create a new check
|
|
||||||
if a.State.Check(checkID) != nil {
|
|
||||||
a.State.UpdateCheck(checkID, api.HealthCritical, "")
|
|
||||||
} else {
|
|
||||||
err := a.AddCheck(check, nil, true, token, ConfigSourceLocal)
|
|
||||||
if err != nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
a.logger.Info("Service entered maintenance mode", "service", serviceID.String())
|
a.logger.Info("Service entered maintenance mode", "service", serviceID.String())
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
@ -4248,11 +4238,9 @@ func (a *Agent) DisableServiceMaintenance(serviceID structs.ServiceID) error {
|
||||||
// Update check to trigger an event for watchers
|
// Update check to trigger an event for watchers
|
||||||
a.State.UpdateCheck(checkID, api.HealthPassing, "")
|
a.State.UpdateCheck(checkID, api.HealthPassing, "")
|
||||||
// Make sure state change is propagated
|
// Make sure state change is propagated
|
||||||
err := a.State.SyncFull()
|
a.State.SyncChanges()
|
||||||
if err != nil {
|
// Deregister the maintenance check
|
||||||
return err
|
a.RemoveCheck(checkID, true)
|
||||||
}
|
|
||||||
|
|
||||||
a.logger.Info("Service left maintenance mode", "service", serviceID.String())
|
a.logger.Info("Service left maintenance mode", "service", serviceID.String())
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|
|
@ -3377,8 +3377,9 @@ func TestAgent_Service_MaintenanceMode(t *testing.T) {
|
||||||
t.Fatalf("err: %s", err)
|
t.Fatalf("err: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ensure the check has updated status
|
// Ensure the check was deregistered
|
||||||
if found := a.State.Check(checkID); found != nil && found.Status != api.HealthPassing {
|
|
||||||
|
if found := a.State.Check(checkID); found != nil {
|
||||||
t.Fatalf("should have deregistered maintenance check")
|
t.Fatalf("should have deregistered maintenance check")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3392,10 +3393,7 @@ func TestAgent_Service_MaintenanceMode(t *testing.T) {
|
||||||
if check == nil {
|
if check == nil {
|
||||||
t.Fatalf("should have registered critical check")
|
t.Fatalf("should have registered critical check")
|
||||||
}
|
}
|
||||||
if check.Notes != "broken" {
|
if check.Notes != defaultServiceMaintReason {
|
||||||
t.Fatalf("bad: %#v", check)
|
|
||||||
}
|
|
||||||
if check.Status != api.HealthCritical {
|
|
||||||
t.Fatalf("bad: %#v", check)
|
t.Fatalf("bad: %#v", check)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3622,10 +3620,8 @@ func TestAgent_NodeMaintenanceMode(t *testing.T) {
|
||||||
// Leave maintenance mode
|
// Leave maintenance mode
|
||||||
a.DisableNodeMaintenance()
|
a.DisableNodeMaintenance()
|
||||||
|
|
||||||
// Ensure the check indicates passing status
|
// Ensure the check was deregistered
|
||||||
if check.Status == api.HealthPassing {
|
requireCheckMissing(t, a, structs.NodeMaint)
|
||||||
t.Fatalf("bad: %#v", check)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Enter maintenance mode without passing a reason
|
// Enter maintenance mode without passing a reason
|
||||||
a.EnableNodeMaintenance("", "")
|
a.EnableNodeMaintenance("", "")
|
||||||
|
@ -3635,9 +3631,6 @@ func TestAgent_NodeMaintenanceMode(t *testing.T) {
|
||||||
if check.Notes != defaultNodeMaintReason {
|
if check.Notes != defaultNodeMaintReason {
|
||||||
t.Fatalf("bad: %#v", check)
|
t.Fatalf("bad: %#v", check)
|
||||||
}
|
}
|
||||||
if check.Status != api.HealthCritical {
|
|
||||||
t.Fatalf("check status must be passing")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestAgent_checkStateSnapshot(t *testing.T) {
|
func TestAgent_checkStateSnapshot(t *testing.T) {
|
||||||
|
|
Loading…
Reference in New Issue