func (p *FakeProvisioner) SetUnitStatus(unit provision.Unit, status provision.Status) error { p.mut.Lock() defer p.mut.Unlock() var units []provision.Unit if unit.AppName == "" { units = p.getAllUnits() } else { app, ok := p.apps[unit.AppName] if !ok { return errNotProvisioned } units = app.units } index := -1 for i, unt := range units { if unt.ID == unit.ID { index = i unit.AppName = unt.AppName break } } if index < 0 { return &provision.UnitNotFoundError{ID: unit.ID} } app := p.apps[unit.AppName] app.units[index].Status = status p.apps[unit.AppName] = app return nil }