diff --git a/overlord/snapstate/component.go b/overlord/snapstate/component.go index 24ed8597159..bc677bb62f0 100644 --- a/overlord/snapstate/component.go +++ b/overlord/snapstate/component.go @@ -188,8 +188,11 @@ func componentSetupsForInstall(ctx context.Context, st *state.State, names []str return nil, err } - // TODO:COMPS: figure out which user to use here - user, err := userFromUserID(st, opts.UserID) + userID, err := userIDForSnap(st, &snapst, opts.UserID) + if err != nil { + return nil, err + } + user, err := userFromUserID(st, userID) if err != nil { return nil, err } diff --git a/overlord/snapstate/component_install_test.go b/overlord/snapstate/component_install_test.go index 530021533e4..d72e3456886 100644 --- a/overlord/snapstate/component_install_test.go +++ b/overlord/snapstate/component_install_test.go @@ -1085,6 +1085,14 @@ func (s *snapmgrTestSuite) testInstallComponents(c *C, opts testInstallComponent } c.Assert(snapsupSetupProfiles.UserID, Equals, expectedUserID) + s.fakeBackend.ops.MustFindOp(c, "storesvc-snap-action") + for _, op := range s.fakeBackend.ops { + if op.op == "storesvc-snap-action" || op.op == "storesvc-snap-action:action" { + c.Assert(op.userID, Equals, expectedUserID, + Commentf("expected userID %d in op %q but got %d", expectedUserID, op.op, op.userID)) + } + } + prepareKmodComps := setupTs.Tasks()[1] c.Assert(prepareKmodComps.Kind(), Equals, "prepare-kernel-modules-components")