func (s *Store) retrieveAssertion(bs asserts.Backstore, assertType *asserts.AssertionType, primaryKey []string) (asserts.Assertion, error) { a, err := bs.Get(assertType, primaryKey, assertType.MaxSupportedFormat()) if err == asserts.ErrNotFound && s.assertFallback { return s.fallback.Assertion(assertType, primaryKey, nil) } return a, err }
func findSnapRevision(snapDigest string, bs asserts.Backstore) (*asserts.SnapRevision, *asserts.Account, error) { a, err := bs.Get(asserts.SnapRevisionType, []string{snapDigest}, asserts.SnapRevisionType.MaxSupportedFormat()) if err != nil { return nil, nil, err } snapRev := a.(*asserts.SnapRevision) a, err = bs.Get(asserts.AccountType, []string{snapRev.DeveloperID()}, asserts.AccountType.MaxSupportedFormat()) if err != nil { return nil, nil, err } devAcct := a.(*asserts.Account) return snapRev, devAcct, nil }
func addSnapIDs(bs asserts.Backstore, initial map[string]string) (map[string]string, error) { m := make(map[string]string) for id, name := range initial { m[id] = name } hit := func(a asserts.Assertion) { decl := a.(*asserts.SnapDeclaration) m[decl.SnapID()] = decl.SnapName() } err := bs.Search(asserts.SnapDeclarationType, nil, hit, asserts.SnapDeclarationType.MaxSupportedFormat()) if err != nil { return nil, err } return m, nil }