Skip to content

Commit

Permalink
cmd/lxd-to-incus: Add OpenRC target support
Browse files Browse the repository at this point in the history
Signed-off-by: xsoalokinx <[email protected]>
  • Loading branch information
xsoalokinx committed Oct 29, 2023
1 parent 519a5d2 commit 73f22c1
Showing 1 changed file with 45 additions and 1 deletion.
46 changes: 45 additions & 1 deletion cmd/lxd-to-incus/targets.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ type Target interface {
Paths() (*DaemonPaths, error)
}

var targets = []Target{&targetSystemd{}}
var targets = []Target{&targetSystemd{}, &targetOpenRC{}}

type targetSystemd struct{}

Expand Down Expand Up @@ -61,3 +61,47 @@ func (s *targetSystemd) Paths() (*DaemonPaths, error) {
Cache: "/var/cache/incus/",
}, nil
}

type targetOpenRC struct{}

func (s *targetOpenRC) Present() bool {
if !util.PathExists("/var/lib/incus/") {
return false
}

_, err := subprocess.RunCommand("rc-service", "--exists", "incus")
if err != nil {
return false
}

return true
}

func (s *targetOpenRC) Stop() error {
_, err := subprocess.RunCommand("rc-service", "incus", "stop")
return err
}

func (s *targetOpenRC) Start() error {
_, err := subprocess.RunCommand("rc-service", "incus", "start")
if err != nil {
return err
}

// Wait for the socket to become available.
time.Sleep(5 * time.Second)

return nil
}

func (s *targetOpenRC) Connect() (incus.InstanceServer, error) {
return incus.ConnectIncusUnix("/var/lib/incus/unix.socket", nil)
}

func (s *targetOpenRC) Paths() (*DaemonPaths, error) {
return &DaemonPaths{
Daemon: "/var/lib/incus/",
Logs: "/var/log/incus/",
Cache: "/var/cache/incus/",
}, nil
}

0 comments on commit 73f22c1

Please sign in to comment.