// remove will remove the supplied unit from state. It will panic if it // observes inconsistent internal state. func (d *Deployer) remove(unit *state.Unit) error { if d.deployed.Contains(unit.Name()) { panic("must not remove a deployed unit") } else if unit.Life() == state.Alive { panic("must not remove an Alive unit") } logger.Infof("removing unit %q", unit) if err := unit.EnsureDead(); err != nil { return err } return unit.Remove() }
// remove will remove the supplied unit from state. It will panic if it // observes inconsistent internal state. func (d *Deployer) remove(unit *state.Unit) error { if d.deployed[unit.Name()] { panic("must not remove a deployed unit") } else if unit.Life() == state.Alive { panic("must not remove an Alive unit") } log.Printf("worker/deployer: removing unit %q", unit) if err := unit.EnsureDead(); err != nil { return err } service, err := unit.Service() if err != nil { return err } return service.RemoveUnit(unit) }
func assertUnitLife(c *C, unit *state.Unit, life state.Life) { c.Assert(unit.Refresh(), IsNil) c.Assert(unit.Life(), Equals, life) }