package hostguard import "context" func (a *RootAuthority) HostRetired(ctx context.Context, host string) (bool, error) { if err := ctx.Err(); err != nil { return false, err } if a == nil || a.store == nil || validateFileHost(host) != nil { return false, ErrInvalidInput } unlock, err := a.store.Lock(ctx, host+".lock") if err != nil { return false, err } defer unlock() r, err := a.read(host) if err != nil { return false, err } if r.quarantined || r.pendingInstallation != nil || r.barrier != nil { return false, ErrFenced } if r.ActiveStamp != 0 { return false, nil } for _, old := range r.rootRetired { if old.Incarnation == r.installation.Incarnation && old.Stamp == r.installation.Stamp && old.Stamp != 0 { return true, nil } } return false, nil }