Skip to content
This repository has been archived by the owner on Jan 30, 2020. It is now read-only.

Commit

Permalink
fleetd: Add param -systemd_user=true to use systemd --user
Browse files Browse the repository at this point in the history
  • Loading branch information
hmalphettes committed Jul 9, 2016
1 parent 914b410 commit 18bee5e
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 4 deletions.
1 change: 1 addition & 0 deletions config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ type Config struct {
DisableWatches bool
VerifyUnits bool
UnitsDirectory string
SystemdUser bool
AuthorizedKeysFile string
}

Expand Down
2 changes: 2 additions & 0 deletions fleetd/fleetd.go
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ func main() {
cfgset.String("metadata", "", "List of key-value metadata to assign to the fleet machine")
cfgset.String("agent_ttl", agent.DefaultTTL, "TTL in seconds of fleet machine state in etcd")
cfgset.String("units_directory", "/run/fleet/units/", "Path to the fleet units directory")
cfgset.Bool("systemd_user", false, "When true use systemd --user)")
cfgset.Int("token_limit", 100, "Maximum number of entries per page returned from API requests")
cfgset.Bool("disable_engine", false, "Disable the engine entirely, use with care")
cfgset.Bool("disable_watches", false, "Disable the use of etcd watches. Increases scheduling latency")
Expand Down Expand Up @@ -227,6 +228,7 @@ func getConfig(flagset *flag.FlagSet, userCfgFile string) (*config.Config, error
DisableWatches: (*flagset.Lookup("disable_watches")).Value.(flag.Getter).Get().(bool),
VerifyUnits: (*flagset.Lookup("verify_units")).Value.(flag.Getter).Get().(bool),
UnitsDirectory: (*flagset.Lookup("units_directory")).Value.(flag.Getter).Get().(string),
SystemdUser: (*flagset.Lookup("systemd_user")).Value.(flag.Getter).Get().(bool),
TokenLimit: (*flagset.Lookup("token_limit")).Value.(flag.Getter).Get().(int),
AuthorizedKeysFile: (*flagset.Lookup("authorized_keys_file")).Value.(flag.Getter).Get().(string),
}
Expand Down
2 changes: 1 addition & 1 deletion functional/systemd_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ func TestSystemdUnitFlow(t *testing.T) {
}
defer os.RemoveAll(uDir)

mgr, err := systemd.NewSystemdUnitManager(uDir)
mgr, err := systemd.NewSystemdUnitManager(uDir, false)
if err != nil {
t.Fatalf("Failed initializing SystemdUnitManager: %v", err)
}
Expand Down
2 changes: 1 addition & 1 deletion server/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ func New(cfg config.Config, listeners []net.Listener) (*Server, error) {
return nil, err
}

mgr, err := systemd.NewSystemdUnitManager(cfg.UnitsDirectory)
mgr, err := systemd.NewSystemdUnitManager(cfg.UnitsDirectory, cfg.SystemdUser)
if err != nil {
return nil, err
}
Expand Down
11 changes: 9 additions & 2 deletions systemd/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ type systemdUnitManager struct {
mutex sync.RWMutex
}

func NewSystemdUnitManager(uDir string) (*systemdUnitManager, error) {
systemd, err := dbus.New()
func NewSystemdUnitManager(uDir string, systemdUser bool) (*systemdUnitManager, error) {
systemd, err := createDbusConnection(systemdUser)
if err != nil {
return nil, err
}
Expand All @@ -60,6 +60,13 @@ func NewSystemdUnitManager(uDir string) (*systemdUnitManager, error) {
return &mgr, nil
}

func createDbusConnection(systemdUser bool) (*dbus.Conn, error) {
if systemdUser {
return dbus.NewUserConnection()
}
return dbus.New()
}

func hashUnitFiles(dir string) (map[string]unit.Hash, error) {
uNames, err := lsUnitsDir(dir)
if err != nil {
Expand Down

0 comments on commit 18bee5e

Please sign in to comment.