// ListServices lists all installed services on the running system func ListServices() ([]string, error) { initName, err := VersionInitSystem(series.HostSeries()) if err != nil { return nil, errors.Trace(err) } switch initName { case InitSystemWindows: services, err := windows.ListServices() if err != nil { return nil, errors.Annotatef(err, "failed to list %s services", initName) } return services, nil case InitSystemUpstart: services, err := upstart.ListServices() if err != nil { return nil, errors.Annotatef(err, "failed to list %s services", initName) } return services, nil case InitSystemSystemd: services, err := systemd.ListServices() if err != nil { return nil, errors.Annotatef(err, "failed to list %s services", initName) } return services, nil default: return nil, errors.NotFoundf("init system %q", initName) } }
func (s *initSystemSuite) TestListServicesEmpty(c *gc.C) { s.addListResponse() names, err := systemd.ListServices() c.Assert(err, jc.ErrorIsNil) c.Check(names, gc.HasLen, 0) s.stub.CheckCallNames(c, "RunCommand") }
func (s *initSystemSuite) TestListServices(c *gc.C) { s.addService("jujud-machine-0", "active") s.addService("something-else", "error") s.addService("jujud-unit-wordpress-0", "active") s.addService("another", "inactive") s.addListResponse() names, err := systemd.ListServices() c.Assert(err, jc.ErrorIsNil) c.Check(names, jc.SameContents, []string{ "jujud-machine-0", "something-else", "jujud-unit-wordpress-0", "another", }) s.stub.CheckCallNames(c, "RunCommand") }