func (c *Container) SetStatus(status provision.Status) error { log.Debugf(" set status[%s] of container (%s, %s)", c.BoxId, c.Name, status.String()) if asm, err := carton.NewAmbly(c.CartonId); err != nil { return err } else if err = asm.SetStatus(status); err != nil { return err } if c.Level == provision.BoxSome { log.Debugf(" set status[%s] of container (%s, %s)", c.BoxId, c.Name, status.String()) if comp, err := carton.NewComponent(c.BoxId); err != nil { return err } else if err = comp.SetStatus(status); err != nil { return err } } return nil }
//it possible to have a Notifier interface that does this, duck typed b y Assembly, Components. func (m *Machine) SetStatus(status provision.Status) error { log.Debugf(" set status[%s] of machine (%s, %s)", m.Id, m.Name, status.String()) if asm, err := carton.NewAmbly(m.CartonId); err != nil { return err } else if err = asm.SetStatus(status); err != nil { return err } if m.Level == provision.BoxSome { log.Debugf(" set status[%s] of machine (%s, %s)", m.Id, m.Name, status.String()) if comp, err := carton.NewComponent(m.Id); err != nil { return err } else if err = comp.SetStatus(status); err != nil { return err } } return nil }