func (c *Client) InBandMessagesFromState(s gregor.State) ([]gregor.InBandMessage, error) { items, err := s.Items() if err != nil { return nil, err } var res []gregor.InBandMessage for _, i := range items { if ibm, err := c.sm.ObjFactory().MakeInBandMessageFromItem(i); err == nil { res = append(res, ibm) } } return res, nil }
func (m *MemEngine) InitState(s gregor.State) error { m.Lock() defer m.Unlock() items, err := s.Items() if err != nil { return err } now := m.clock.Now() for _, it := range items { user := m.getUser(it.Metadata().UID()) ibm, err := m.objFactory.MakeInBandMessageFromItem(it) if err != nil { return err } item := user.addItem(now, it) user.logMessage(nowIfZero(now, item.ctime), ibm, item) } return nil }
func (g *gregorHandler) getState() (res gregor1.State, err error) { var s gregor.State if g == nil || g.gregorCli == nil { return res, errors.New("gregor service not available (are you in standalone?)") } s, err = g.gregorCli.StateMachineState(nil) if err != nil { return res, err } ps, err := s.Export() if err != nil { return res, err } var ok bool if res, ok = ps.(gregor1.State); !ok { return res, errors.New("failed to convert state to exportable format") } return res, nil }