From ccc22c0fba950fce5e63b17d724976448644e677 Mon Sep 17 00:00:00 2001 From: Mohit Chachada Date: Tue, 12 May 2026 14:36:45 +0200 Subject: [PATCH] o/snapstate: set userID from snapst and from opts as fallback for component installation --- overlord/snapstate/component.go | 7 +++++-- overlord/snapstate/component_install_test.go | 8 ++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) 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")