// CheckSanityEarly checks for configuration and runtime errors that // can be detected before GetCurrentState() and ComputeChangeSets() // are called. // // If it returns an error, it is pointless to run GetCurrentState or // ComputeChangeSets: after doing so, the statistics would be // meaningless and it would be dangerous to run any Commit methods. func (bal *Balancer) CheckSanityEarly(c *arvados.Client) error { u, err := c.CurrentUser() if err != nil { return fmt.Errorf("CurrentUser(): %v", err) } if !u.IsActive || !u.IsAdmin { return fmt.Errorf("current user (%s) is not an active admin user", u.UUID) } for _, srv := range bal.KeepServices { if srv.ServiceType == "proxy" { return fmt.Errorf("config error: %s: proxy servers cannot be balanced", srv) } } return nil }