From 56a1f308d4eaf67db0fbeae539dc72aee70c9554 Mon Sep 17 00:00:00 2001 From: Andrew Phelps Date: Thu, 15 Aug 2024 21:37:43 -0400 Subject: [PATCH] many: add components param to snapasserts.NewInstalledSnap --- asserts/snapasserts/validation_sets.go | 7 ++-- asserts/snapasserts/validation_sets_test.go | 38 ++++++++++---------- daemon/api_validate_test.go | 2 +- overlord/assertstate/assertstate_test.go | 40 ++++++++++----------- overlord/snapstate/snapstate.go | 3 +- overlord/snapstate/snapstate_test.go | 4 +-- seed/seedwriter/writer.go | 4 ++- 7 files changed, 51 insertions(+), 47 deletions(-) diff --git a/asserts/snapasserts/validation_sets.go b/asserts/snapasserts/validation_sets.go index e8e61dd7cdd..cc51b5f5f19 100644 --- a/asserts/snapasserts/validation_sets.go +++ b/asserts/snapasserts/validation_sets.go @@ -46,10 +46,11 @@ type InstalledComponent struct { } // NewInstalledSnap creates InstalledSnap. -func NewInstalledSnap(name, snapID string, revision snap.Revision) *InstalledSnap { +func NewInstalledSnap(name, snapID string, revision snap.Revision, components []InstalledComponent) *InstalledSnap { return &InstalledSnap{ - SnapRef: naming.NewSnapRef(name, snapID), - Revision: revision, + SnapRef: naming.NewSnapRef(name, snapID), + Revision: revision, + Components: components, } } diff --git a/asserts/snapasserts/validation_sets_test.go b/asserts/snapasserts/validation_sets_test.go index b79a796abc3..a9e42cb9591 100644 --- a/asserts/snapasserts/validation_sets_test.go +++ b/asserts/snapasserts/validation_sets_test.go @@ -275,7 +275,7 @@ func (s *validationSetsSuite) TestIntersections(c *C) { func (s *validationSetsSuite) TestCheckInstalledSnapsNoValidationSets(c *C) { valsets := snapasserts.NewValidationSets() snaps := []*snapasserts.InstalledSnap{ - snapasserts.NewInstalledSnap("snap-a", "mysnapaaaaaaaaaaaaaaaaaaaaaaaaaa", snap.R(1)), + snapasserts.NewInstalledSnap("snap-a", "mysnapaaaaaaaaaaaaaaaaaaaaaaaaaa", snap.R(1), nil), } err := valsets.CheckInstalledSnaps(snaps, nil) c.Assert(err, IsNil) @@ -430,20 +430,20 @@ func (s *validationSetsSuite) TestCheckInstalledSnaps(c *C) { c.Assert(valsets.Add(vs6), IsNil) c.Assert(valsets.Add(vs7), IsNil) - snapA := snapasserts.NewInstalledSnap("snap-a", "mysnapaaaaaaaaaaaaaaaaaaaaaaaaaa", snap.R(1)) - snapAlocal := snapasserts.NewInstalledSnap("snap-a", "", snap.R("x2")) - snapB := snapasserts.NewInstalledSnap("snap-b", "mysnapbbbbbbbbbbbbbbbbbbbbbbbbbb", snap.R(3)) - snapBinvRev := snapasserts.NewInstalledSnap("snap-b", "mysnapbbbbbbbbbbbbbbbbbbbbbbbbbb", snap.R(8)) - snapBlocal := snapasserts.NewInstalledSnap("snap-b", "", snap.R("x3")) - snapC := snapasserts.NewInstalledSnap("snap-c", "mysnapcccccccccccccccccccccccccc", snap.R(2)) - snapCinvRev := snapasserts.NewInstalledSnap("snap-c", "mysnapcccccccccccccccccccccccccc", snap.R(99)) - snapD := snapasserts.NewInstalledSnap("snap-d", "mysnapdddddddddddddddddddddddddd", snap.R(2)) - snapDrev99 := snapasserts.NewInstalledSnap("snap-d", "mysnapdddddddddddddddddddddddddd", snap.R(99)) - snapDlocal := snapasserts.NewInstalledSnap("snap-d", "", snap.R("x3")) - snapE := snapasserts.NewInstalledSnap("snap-e", "mysnapeeeeeeeeeeeeeeeeeeeeeeeeee", snap.R(2)) - snapF := snapasserts.NewInstalledSnap("snap-f", "mysnapffffffffffffffffffffffffff", snap.R(4)) + snapA := snapasserts.NewInstalledSnap("snap-a", "mysnapaaaaaaaaaaaaaaaaaaaaaaaaaa", snap.R(1), nil) + snapAlocal := snapasserts.NewInstalledSnap("snap-a", "", snap.R("x2"), nil) + snapB := snapasserts.NewInstalledSnap("snap-b", "mysnapbbbbbbbbbbbbbbbbbbbbbbbbbb", snap.R(3), nil) + snapBinvRev := snapasserts.NewInstalledSnap("snap-b", "mysnapbbbbbbbbbbbbbbbbbbbbbbbbbb", snap.R(8), nil) + snapBlocal := snapasserts.NewInstalledSnap("snap-b", "", snap.R("x3"), nil) + snapC := snapasserts.NewInstalledSnap("snap-c", "mysnapcccccccccccccccccccccccccc", snap.R(2), nil) + snapCinvRev := snapasserts.NewInstalledSnap("snap-c", "mysnapcccccccccccccccccccccccccc", snap.R(99), nil) + snapD := snapasserts.NewInstalledSnap("snap-d", "mysnapdddddddddddddddddddddddddd", snap.R(2), nil) + snapDrev99 := snapasserts.NewInstalledSnap("snap-d", "mysnapdddddddddddddddddddddddddd", snap.R(99), nil) + snapDlocal := snapasserts.NewInstalledSnap("snap-d", "", snap.R("x3"), nil) + snapE := snapasserts.NewInstalledSnap("snap-e", "mysnapeeeeeeeeeeeeeeeeeeeeeeeeee", snap.R(2), nil) + snapF := snapasserts.NewInstalledSnap("snap-f", "mysnapffffffffffffffffffffffffff", snap.R(4), nil) // extra snap, not referenced by any validation set - snapZ := snapasserts.NewInstalledSnap("snap-z", "mysnapzzzzzzzzzzzzzzzzzzzzzzzzzz", snap.R(1)) + snapZ := snapasserts.NewInstalledSnap("snap-z", "mysnapzzzzzzzzzzzzzzzzzzzzzzzzzz", snap.R(1), nil) tests := []struct { snaps []*snapasserts.InstalledSnap @@ -727,9 +727,9 @@ func (s *validationSetsSuite) TestCheckInstalledSnapsIgnoreValidation(c *C) { valsets := snapasserts.NewValidationSets() c.Assert(valsets.Add(vs), IsNil) - snapA := snapasserts.NewInstalledSnap("snap-a", "mysnapaaaaaaaaaaaaaaaaaaaaaaaaaa", snap.R(1)) - snapB := snapasserts.NewInstalledSnap("snap-b", "mysnapbbbbbbbbbbbbbbbbbbbbbbbbbb", snap.R(3)) - snapBinvRev := snapasserts.NewInstalledSnap("snap-b", "mysnapbbbbbbbbbbbbbbbbbbbbbbbbbb", snap.R(8)) + snapA := snapasserts.NewInstalledSnap("snap-a", "mysnapaaaaaaaaaaaaaaaaaaaaaaaaaa", snap.R(1), nil) + snapB := snapasserts.NewInstalledSnap("snap-b", "mysnapbbbbbbbbbbbbbbbbbbbbbbbbbb", snap.R(3), nil) + snapBinvRev := snapasserts.NewInstalledSnap("snap-b", "mysnapbbbbbbbbbbbbbbbbbbbbbbbbbb", snap.R(8), nil) // validity check c.Check(valsets.CheckInstalledSnaps([]*snapasserts.InstalledSnap{snapA, snapB}, nil), ErrorMatches, "validation sets assertions are not met:\n"+ @@ -791,8 +791,8 @@ func (s *validationSetsSuite) TestCheckInstalledSnapsErrorFormat(c *C) { // not strictly important, but ensures test data makes sense and avoids confusing results c.Assert(valsets.Conflict(), IsNil) - snapA := snapasserts.NewInstalledSnap("snap-a", "mysnapaaaaaaaaaaaaaaaaaaaaaaaaaa", snap.R(1)) - snapBlocal := snapasserts.NewInstalledSnap("snap-b", "", snap.R("x3")) + snapA := snapasserts.NewInstalledSnap("snap-a", "mysnapaaaaaaaaaaaaaaaaaaaaaaaaaa", snap.R(1), nil) + snapBlocal := snapasserts.NewInstalledSnap("snap-b", "", snap.R("x3"), nil) tests := []struct { snaps []*snapasserts.InstalledSnap diff --git a/daemon/api_validate_test.go b/daemon/api_validate_test.go index 3e253da817c..f395054f885 100644 --- a/daemon/api_validate_test.go +++ b/daemon/api_validate_test.go @@ -846,7 +846,7 @@ func (s *apiValidationSetsSuite) TestApplyValidationSetEnforceModeIgnoreValidati restore := daemon.MockAssertstateFetchEnforceValidationSet(func(st *state.State, accountID, name string, sequence int, userID int, snaps []*snapasserts.InstalledSnap, ignoreValidation map[string]bool) (*assertstate.ValidationSetTracking, error) { c.Check(ignoreValidation, check.DeepEquals, map[string]bool{"snap-b": true}) c.Check(snaps, testutil.DeepUnsortedMatches, []*snapasserts.InstalledSnap{ - snapasserts.NewInstalledSnap("snap-b", "yOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.R("1"))}) + snapasserts.NewInstalledSnap("snap-b", "yOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.R("1"), nil)}) c.Assert(accountID, check.Equals, s.dev1acct.AccountID()) c.Assert(name, check.Equals, "bar") c.Assert(sequence, check.Equals, 0) diff --git a/overlord/assertstate/assertstate_test.go b/overlord/assertstate/assertstate_test.go index d929a327fd1..e121a50a931 100644 --- a/overlord/assertstate/assertstate_test.go +++ b/overlord/assertstate/assertstate_test.go @@ -3351,8 +3351,8 @@ func (s *assertMgrSuite) TestValidationSetAssertionForEnforceNotPinnedHappy(c *C c.Assert(s.storeSigning.Add(vsetAs), IsNil) snaps := []*snapasserts.InstalledSnap{ - snapasserts.NewInstalledSnap("foo", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 1}), - snapasserts.NewInstalledSnap("other", "ididididid", snap.Revision{N: 1}), + snapasserts.NewInstalledSnap("foo", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 1}, nil), + snapasserts.NewInstalledSnap("other", "ididididid", snap.Revision{N: 1}, nil), } sequence := 0 @@ -3389,7 +3389,7 @@ func (s *assertMgrSuite) TestValidationSetAssertionForEnforcePinnedHappy(c *C) { c.Assert(s.storeSigning.Add(vsetAs), IsNil) snaps := []*snapasserts.InstalledSnap{ - snapasserts.NewInstalledSnap("foo", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 1}), + snapasserts.NewInstalledSnap("foo", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 1}, nil), } sequence := 2 @@ -3518,7 +3518,7 @@ func (s *assertMgrSuite) TestValidationSetAssertionForEnforceNotPinnedAfterForge c.Assert(s.storeSigning.Add(vsetAs2), IsNil) snaps := []*snapasserts.InstalledSnap{ - snapasserts.NewInstalledSnap("foo", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 1}), + snapasserts.NewInstalledSnap("foo", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 1}, nil), } sequence := 0 @@ -3569,7 +3569,7 @@ func (s *assertMgrSuite) TestValidationSetAssertionForEnforceNotPinnedAfterMonit c.Assert(s.storeSigning.Add(vsetAs2), IsNil) snaps := []*snapasserts.InstalledSnap{ - snapasserts.NewInstalledSnap("foo", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 1}), + snapasserts.NewInstalledSnap("foo", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 1}, nil), } sequence := 0 @@ -3685,7 +3685,7 @@ func (s *assertMgrSuite) TestEnforceValidationSetAssertion(c *C) { c.Assert(s.storeSigning.Add(vsetAs), IsNil) snaps := []*snapasserts.InstalledSnap{ - snapasserts.NewInstalledSnap("foo", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 1}), + snapasserts.NewInstalledSnap("foo", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 1}, nil), } sequence := 2 @@ -3746,7 +3746,7 @@ func (s *assertMgrSuite) TestEnforceValidationSetAssertionUpdate(c *C) { c.Assert(s.storeSigning.Add(vsetAs), IsNil) snaps := []*snapasserts.InstalledSnap{ - snapasserts.NewInstalledSnap("foo", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 1}), + snapasserts.NewInstalledSnap("foo", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 1}, nil), } sequence := 2 @@ -3823,7 +3823,7 @@ func (s *assertMgrSuite) TestEnforceValidationSetAssertionPinToOlderSequence(c * c.Assert(s.storeSigning.Add(vsetAs2), IsNil) snaps := []*snapasserts.InstalledSnap{ - snapasserts.NewInstalledSnap("foo", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 1}), + snapasserts.NewInstalledSnap("foo", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 1}, nil), } sequence := 2 @@ -3894,7 +3894,7 @@ func (s *assertMgrSuite) TestEnforceValidationSetAssertionAfterMonitor(c *C) { assertstate.UpdateValidationSet(st, &monitor) snaps := []*snapasserts.InstalledSnap{ - snapasserts.NewInstalledSnap("foo", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 1}), + snapasserts.NewInstalledSnap("foo", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 1}, nil), } // add a newer sequence to the store @@ -3946,7 +3946,7 @@ func (s *assertMgrSuite) TestEnforceValidationSetAssertionIgnoreValidation(c *C) c.Assert(s.storeSigning.Add(vsetAs), IsNil) snaps := []*snapasserts.InstalledSnap{ - snapasserts.NewInstalledSnap("foo", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 3}), + snapasserts.NewInstalledSnap("foo", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 3}, nil), } sequence := 2 @@ -4038,8 +4038,8 @@ func (s *assertMgrSuite) TestTryEnforceValidationSetsAssertionsValidationError(c // try to enforce extra validation sets bar and baz. some-snap is present (and required by foo at any revision), // but needs to be at revision 3 to satisfy bar. invalid-snap is present but is invalid for baz. installedSnaps := []*snapasserts.InstalledSnap{ - snapasserts.NewInstalledSnap("some-snap", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 1}), - snapasserts.NewInstalledSnap("invalid-snap", "cccchntON3vR7kwEbVPsILm7bUViPDcc", snap.Revision{N: 1}), + snapasserts.NewInstalledSnap("some-snap", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 1}, nil), + snapasserts.NewInstalledSnap("invalid-snap", "cccchntON3vR7kwEbVPsILm7bUViPDcc", snap.Revision{N: 1}, nil), } err := assertstate.TryEnforcedValidationSets(st, []string{fmt.Sprintf("%s/bar", s.dev1Acct.AccountID()), fmt.Sprintf("%s/baz", s.dev1Acct.AccountID())}, 0, installedSnaps, nil) verr, ok := err.(*snapasserts.ValidationSetsValidationError) @@ -4122,7 +4122,7 @@ func (s *assertMgrSuite) TestTryEnforceValidationSetsAssertionsOK(c *C) { c.Assert(s.storeSigning.Add(vsetAs2), IsNil) installedSnaps := []*snapasserts.InstalledSnap{ - snapasserts.NewInstalledSnap("some-snap", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 3}), + snapasserts.NewInstalledSnap("some-snap", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 3}, nil), } err := assertstate.TryEnforcedValidationSets(st, []string{fmt.Sprintf("%s/bar", s.dev1Acct.AccountID()), fmt.Sprintf("%s/baz=1", s.dev1Acct.AccountID())}, 0, installedSnaps, nil) c.Assert(err, IsNil) @@ -4231,7 +4231,7 @@ func (s *assertMgrSuite) TestTryEnforceValidationSetsAssertionsAlreadyTrackedUpd c.Assert(s.storeSigning.Add(vsetAs2), IsNil) installedSnaps := []*snapasserts.InstalledSnap{ - snapasserts.NewInstalledSnap("some-snap", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 3}), + snapasserts.NewInstalledSnap("some-snap", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 3}, nil), } err := assertstate.TryEnforcedValidationSets(st, []string{fmt.Sprintf("%s/foo", s.dev1Acct.AccountID())}, 0, installedSnaps, nil) c.Assert(err, IsNil) @@ -4312,7 +4312,7 @@ func (s *assertMgrSuite) TestTryEnforceValidationSetsAssertionsConflictError(c * // try to enforce extra validation sets bar and baz. some-snap is present (and required by foo at any revision), // but needs to be at revision 3 to satisfy bar. invalid-snap is present but is invalid for baz. installedSnaps := []*snapasserts.InstalledSnap{ - snapasserts.NewInstalledSnap("some-snap", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 1}), + snapasserts.NewInstalledSnap("some-snap", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 1}, nil), } err := assertstate.TryEnforcedValidationSets(st, []string{fmt.Sprintf("%s/bar", s.dev1Acct.AccountID())}, 0, installedSnaps, nil) _, ok := err.(*snapasserts.ValidationSetsConflictError) @@ -4523,7 +4523,7 @@ func (s *assertMgrSuite) testEnforceValidationSets(c *C, pinnedSeq int) { requestedValSet: localVs, } installedSnaps := []*snapasserts.InstalledSnap{ - snapasserts.NewInstalledSnap("some-snap", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 1}), + snapasserts.NewInstalledSnap("some-snap", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 1}, nil), } err := assertstate.ApplyEnforcedValidationSets(st, valSets, pinnedSeqs, installedSnaps, nil, 0) c.Assert(err, IsNil) @@ -4586,7 +4586,7 @@ func (s *assertMgrSuite) TestEnforceValidationSetsWithNoLocalAssertions(c *C) { } pinnedSeqs := map[string]int{fmt.Sprintf("%s/foo", s.dev1Acct.AccountID()): 1} installedSnaps := []*snapasserts.InstalledSnap{ - snapasserts.NewInstalledSnap("some-snap", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 1}), + snapasserts.NewInstalledSnap("some-snap", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 1}, nil), } err := assertstate.ApplyEnforcedValidationSets(st, valSets, pinnedSeqs, installedSnaps, nil, 0) @@ -4673,7 +4673,7 @@ func (s *assertMgrSuite) TestEnforceValidationSetsWithUnmetConstraints(c *C) { } installedSnaps := []*snapasserts.InstalledSnap{ - snapasserts.NewInstalledSnap("some-snap", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 2}), + snapasserts.NewInstalledSnap("some-snap", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 2}, nil), } err := assertstate.ApplyEnforcedValidationSets(st, valSets, nil, installedSnaps, nil, 0) @@ -4723,7 +4723,7 @@ func (s *assertMgrSuite) testApplyLocalEnforcedValidationSets(c *C, pinnedSeq in vsKey: {release.Series, s.dev1Acct.AccountID(), "foo", "1"}, } installedSnaps := []*snapasserts.InstalledSnap{ - snapasserts.NewInstalledSnap("some-snap", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 1}), + snapasserts.NewInstalledSnap("some-snap", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 1}, nil), } err := assertstate.ApplyLocalEnforcedValidationSets(st, valSets, pinnedSeqs, installedSnaps, nil) c.Assert(err, IsNil) @@ -4801,7 +4801,7 @@ func (s *assertMgrSuite) TestApplyLocalEnforcedValidationSetsWithUnmetConstraint } installedSnaps := []*snapasserts.InstalledSnap{ - snapasserts.NewInstalledSnap("some-snap", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 2}), + snapasserts.NewInstalledSnap("some-snap", "qOqKhntON3vR7kwEbVPsILm7bUViPDzz", snap.Revision{N: 2}, nil), } err := assertstate.ApplyLocalEnforcedValidationSets(st, valSets, nil, installedSnaps, nil) diff --git a/overlord/snapstate/snapstate.go b/overlord/snapstate/snapstate.go index 061af2fbe1a..63664deb40a 100644 --- a/overlord/snapstate/snapstate.go +++ b/overlord/snapstate/snapstate.go @@ -4033,8 +4033,9 @@ func InstalledSnaps(st *state.State) (snaps []*snapasserts.InstalledSnap, ignore if err != nil { return nil, nil, err } + // TODO:COMPS: add components snaps = append(snaps, snapasserts.NewInstalledSnap(snapState.InstanceName(), - snapState.CurrentSideInfo().SnapID, cur.Revision)) + snapState.CurrentSideInfo().SnapID, cur.Revision, nil)) if snapState.IgnoreValidation { ignoreValidation[snapState.InstanceName()] = true } diff --git a/overlord/snapstate/snapstate_test.go b/overlord/snapstate/snapstate_test.go index d28e4ff06d4..6b2c4163ce1 100644 --- a/overlord/snapstate/snapstate_test.go +++ b/overlord/snapstate/snapstate_test.go @@ -7972,8 +7972,8 @@ version: 1`), &snap.SideInfo{Revision: snap.R("5")}) snaps, ignoreValidation, err = snapstate.InstalledSnaps(st) c.Assert(err, IsNil) c.Check(snaps, testutil.DeepUnsortedMatches, []*snapasserts.InstalledSnap{ - snapasserts.NewInstalledSnap("foo", "foo-id", snap.R("23")), - snapasserts.NewInstalledSnap("bar", "bar-id", snap.R("5"))}) + snapasserts.NewInstalledSnap("foo", "foo-id", snap.R("23"), nil), + snapasserts.NewInstalledSnap("bar", "bar-id", snap.R("5"), nil)}) c.Check(ignoreValidation, DeepEquals, map[string]bool{"bar": true}) } diff --git a/seed/seedwriter/writer.go b/seed/seedwriter/writer.go index 3466fc7277e..66d9c02caf1 100644 --- a/seed/seedwriter/writer.go +++ b/seed/seedwriter/writer.go @@ -1534,9 +1534,11 @@ func (w *Writer) validationSets() (*snapasserts.ValidationSets, error) { func (w *Writer) installedSnaps() []*snapasserts.InstalledSnap { installedSnap := func(snap *SeedSnap) *snapasserts.InstalledSnap { - return snapasserts.NewInstalledSnap(snap.SnapName(), snap.ID(), snap.Info.Revision) + return snapasserts.NewInstalledSnap(snap.SnapName(), snap.ID(), snap.Info.Revision, nil) } + // TODO:COMPS: add components + var installedSnaps []*snapasserts.InstalledSnap for _, sn := range w.snapsFromModel { installedSnaps = append(installedSnaps, installedSnap(sn))