Пример #1
0
func runOnce(c *agent.Conf, a Agent) error {
	st, passwordChanged, err := c.OpenState()
	if err != nil {
		return err
	}
	defer st.Close()
	entity, err := a.Entity(st)
	if state.IsNotFound(err) || err == nil && entity.Life() == state.Dead {
		return worker.ErrDead
	}
	if err != nil {
		return err
	}
	if passwordChanged {
		if err := c.Write(); err != nil {
			return err
		}
		if err := entity.SetMongoPassword(c.StateInfo.Password); err != nil {
			return err
		}
	}
	return a.RunOnce(st, entity)
}