Skip to content

Commit

Permalink
wrappers: enable services on the user side
Browse files Browse the repository at this point in the history
  • Loading branch information
Meulengracht committed Apr 30, 2024
1 parent b5f770c commit ef0cd88
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 6 deletions.
4 changes: 1 addition & 3 deletions wrappers/services.go
Original file line number Diff line number Diff line change
Expand Up @@ -396,9 +396,7 @@ func StartServices(apps []*snap.AppInfo, disabledSvcs *DisabledServices, flags *
}

timings.Run(tm, "start-user-services", "start user services", func(nested timings.Measurer) {
// TODO: Until we properly deal with: --user --global --no-reload disable
const enable = false
err = cli.startServices(enable, disabledUserSvcs, userServices...)
err = cli.startServices(flags.Enable, disabledUserSvcs, userServices...)
})
// let the cleanup know some services may have been started
servicesStarted = true
Expand Down
18 changes: 15 additions & 3 deletions wrappers/services_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3302,6 +3302,8 @@ func (s *servicesTestSuite) TestStopStartServicesWithSocketsDisableAndEnable(c *
{"--user", "--global", "--no-reload", "enable", "snap.hello-snap.svc2.sock1.socket", "snap.hello-snap.svc2.sock2.socket"},
{"start", "snap.hello-snap.svc1.sock1.socket"},
{"start", "snap.hello-snap.svc1.sock2.socket"},
{"--user", "--no-reload", "enable", "snap.hello-snap.svc2.sock1.socket", "snap.hello-snap.svc2.sock2.socket"},
{"--user", "daemon-reload"},
{"--user", "start", "snap.hello-snap.svc2.sock1.socket"},
{"--user", "start", "snap.hello-snap.svc2.sock2.socket"},
})
Expand Down Expand Up @@ -3537,6 +3539,8 @@ func (s *servicesTestSuite) TestStartServicesUserDaemons(c *C) {

c.Assert(s.sysdLog, DeepEquals, [][]string{
{"--user", "--global", "--no-reload", "enable", filepath.Base(svcFile)},
{"--user", "--no-reload", "enable", filepath.Base(svcFile)},
{"--user", "daemon-reload"},
{"--user", "start", filepath.Base(svcFile)},
})
}
Expand Down Expand Up @@ -4108,14 +4112,18 @@ func (s *servicesTestSuite) TestStartSnapMultiUserServicesFailStartCleanup(c *C)
flags := &wrappers.StartServicesFlags{Enable: true}
err := wrappers.StartServices(svcs, nil, flags, &progress.Null, s.perfTimings)
c.Assert(err, ErrorMatches, "some user services failed to start")
c.Assert(sysdLog, HasLen, 10, Commentf("len: %v calls: %v", len(sysdLog), sysdLog))
c.Assert(sysdLog, HasLen, 14, Commentf("len: %v calls: %v", len(sysdLog), sysdLog))
c.Check(sysdLog, DeepEquals, [][]string{
{"--user", "--global", "--no-reload", "enable", svc1Name, svc2Name},
{"--user", "--no-reload", "enable", "snap.hello-snap.svc1.service", "snap.hello-snap.svc2.service"},
{"--user", "daemon-reload"},
{"--user", "start", svc1Name},
{"--user", "start", svc2Name}, // one of the services fails
// session agent attempts to stop the non-failed services
{"--user", "stop", svc1Name},
{"--user", "show", "--property=ActiveState", svc1Name},
{"--user", "--no-reload", "disable", "snap.hello-snap.svc1.service", "snap.hello-snap.svc2.service"},
{"--user", "daemon-reload"},
// StartServices ensures everything is stopped
{"--user", "stop", svc2Name},
{"--user", "show", "--property=ActiveState", svc2Name},
Expand Down Expand Up @@ -4436,13 +4444,15 @@ func (s *servicesTestSuite) TestStartSnapSocketEnableStart(c *C) {
flags := &wrappers.StartServicesFlags{Enable: true}
err := wrappers.StartServices(apps, nil, flags, &progress.Null, s.perfTimings)
c.Assert(err, IsNil)
c.Assert(s.sysdLog, HasLen, 6, Commentf("len: %v calls: %v", len(s.sysdLog), s.sysdLog))
c.Assert(s.sysdLog, HasLen, 8, Commentf("len: %v calls: %v", len(s.sysdLog), s.sysdLog))
c.Check(s.sysdLog, DeepEquals, [][]string{
{"--no-reload", "enable", svc2Sock, svc1Name},
{"daemon-reload"},
{"--user", "--global", "--no-reload", "enable", svc3Sock},
{"start", svc2Sock},
{"start", svc1Name},
{"--user", "--no-reload", "enable", svc3Sock},
{"--user", "daemon-reload"},
{"--user", "start", svc3Sock},
}, Commentf("calls: %v", s.sysdLog))
}
Expand Down Expand Up @@ -4470,13 +4480,15 @@ func (s *servicesTestSuite) TestStartSnapTimerEnableStart(c *C) {
flags := &wrappers.StartServicesFlags{Enable: true}
err := wrappers.StartServices(apps, nil, flags, &progress.Null, s.perfTimings)
c.Assert(err, IsNil)
c.Assert(s.sysdLog, HasLen, 6, Commentf("len: %v calls: %v", len(s.sysdLog), s.sysdLog))
c.Assert(s.sysdLog, HasLen, 8, Commentf("len: %v calls: %v", len(s.sysdLog), s.sysdLog))
c.Check(s.sysdLog, DeepEquals, [][]string{
{"--no-reload", "enable", svc2Timer, svc1Name},
{"daemon-reload"},
{"--user", "--global", "--no-reload", "enable", svc3Timer},
{"start", svc2Timer},
{"start", svc1Name},
{"--user", "--no-reload", "enable", svc3Timer},
{"--user", "daemon-reload"},
{"--user", "start", svc3Timer},
}, Commentf("calls: %v", s.sysdLog))
}
Expand Down

0 comments on commit ef0cd88

Please sign in to comment.