Skip to content

Commit

Permalink
Merge pull request #425 from stgraber/migrate
Browse files Browse the repository at this point in the history
lxd-to-incus: Fix issues found by golang-ci
  • Loading branch information
freeekanayaka committed Jan 23, 2024
2 parents 0523f5a + 37f81b1 commit 71d4862
Show file tree
Hide file tree
Showing 11 changed files with 179 additions and 183 deletions.
137 changes: 70 additions & 67 deletions cmd/lxd-to-incus/main.go

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions cmd/lxd-to-incus/paths.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package main

type DaemonPaths struct {
Daemon string
Logs string
Cache string
type daemonPaths struct {
daemon string
logs string
cache string
}
18 changes: 9 additions & 9 deletions cmd/lxd-to-incus/sources.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,17 @@ import (
"github.com/lxc/incus/client"
)

type Source interface {
Present() bool
Stop() error
Start() error
Purge() error
Connect() (incus.InstanceServer, error)
Paths() (*DaemonPaths, error)
Name() string
type source interface {
present() bool
stop() error
start() error
purge() error
connect() (incus.InstanceServer, error)
paths() (*daemonPaths, error)
name() string
}

var sources = []Source{
var sources = []source{
&srcSnap{},
&srcDeb{},
&srcCOPR{},
Expand Down
22 changes: 11 additions & 11 deletions cmd/lxd-to-incus/sources_copr.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (

type srcCOPR struct{}

func (s *srcCOPR) Present() bool {
func (s *srcCOPR) present() bool {
// Validate that the RPM package is installed.
_, err := subprocess.RunCommand("rpm", "-q", "lxd")
if err != nil {
Expand All @@ -22,33 +22,33 @@ func (s *srcCOPR) Present() bool {
return true
}

func (s *srcCOPR) Name() string {
func (s *srcCOPR) name() string {
return "COPR package"
}

func (s *srcCOPR) Stop() error {
func (s *srcCOPR) stop() error {
_, err := subprocess.RunCommand("systemctl", "stop", "lxd-containers.service", "lxd.service", "lxd.socket")
return err
}

func (s *srcCOPR) Start() error {
func (s *srcCOPR) start() error {
_, err := subprocess.RunCommand("systemctl", "start", "lxd.socket", "lxd-containers.service")
return err
}

func (s *srcCOPR) Purge() error {
func (s *srcCOPR) purge() error {
_, err := subprocess.RunCommand("dnf", "remove", "-y", "lxd")
return err
}

func (s *srcCOPR) Connect() (incus.InstanceServer, error) {
func (s *srcCOPR) connect() (incus.InstanceServer, error) {
return incus.ConnectIncusUnix("/run/lxd.socket", &incus.ConnectionArgs{SkipGetServer: true})
}

func (s *srcCOPR) Paths() (*DaemonPaths, error) {
return &DaemonPaths{
Daemon: "/var/lib/lxd",
Logs: "/var/log/lxd",
Cache: "/var/cache/lxd",
func (s *srcCOPR) paths() (*daemonPaths, error) {
return &daemonPaths{
daemon: "/var/lib/lxd",
logs: "/var/log/lxd",
cache: "/var/cache/lxd",
}, nil
}
22 changes: 11 additions & 11 deletions cmd/lxd-to-incus/sources_deb.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (

type srcDeb struct{}

func (s *srcDeb) Present() bool {
func (s *srcDeb) present() bool {
// Validate that the Debian package is installed.
if !util.PathExists("/var/lib/dpkg/info/lxd.list") {
return false
Expand All @@ -21,33 +21,33 @@ func (s *srcDeb) Present() bool {
return true
}

func (s *srcDeb) Name() string {
func (s *srcDeb) name() string {
return ".deb package"
}

func (s *srcDeb) Stop() error {
func (s *srcDeb) stop() error {
_, err := subprocess.RunCommand("systemctl", "stop", "lxd-containers.service", "lxd.service", "lxd.socket")
return err
}

func (s *srcDeb) Start() error {
func (s *srcDeb) start() error {
_, err := subprocess.RunCommand("systemctl", "start", "lxd.socket", "lxd-containers.service")
return err
}

func (s *srcDeb) Purge() error {
func (s *srcDeb) purge() error {
_, err := subprocess.RunCommand("apt-get", "remove", "--yes", "--purge", "lxd", "lxd-client")
return err
}

func (s *srcDeb) Connect() (incus.InstanceServer, error) {
func (s *srcDeb) connect() (incus.InstanceServer, error) {
return incus.ConnectIncusUnix("/var/lib/lxd/unix.socket", &incus.ConnectionArgs{SkipGetServer: true})
}

func (s *srcDeb) Paths() (*DaemonPaths, error) {
return &DaemonPaths{
Daemon: "/var/lib/lxd",
Logs: "/var/log/lxd",
Cache: "/var/cache/lxd",
func (s *srcDeb) paths() (*daemonPaths, error) {
return &daemonPaths{
daemon: "/var/lib/lxd",
logs: "/var/log/lxd",
cache: "/var/cache/lxd",
}, nil
}
37 changes: 19 additions & 18 deletions cmd/lxd-to-incus/sources_manual.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package main

import (
"fmt"
"net/http"
"time"

Expand All @@ -10,20 +11,16 @@ import (

type srcManual struct{}

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

return true
func (s *srcManual) present() bool {
return util.PathExists("/var/lib/lxd")
}

func (s *srcManual) Name() string {
func (s *srcManual) name() string {
return "manual installation"
}

func (s *srcManual) Stop() error {
d, err := s.Connect()
func (s *srcManual) stop() error {
d, err := s.connect()
if err != nil {
return err
}
Expand All @@ -34,7 +31,11 @@ func (s *srcManual) Stop() error {
}

// Request shutdown, this shouldn't return until daemon has stopped so use a large request timeout.
httpTransport := httpClient.Transport.(*http.Transport)
httpTransport, ok := httpClient.Transport.(*http.Transport)
if !ok {
return fmt.Errorf("Bad transport type")
}

httpTransport.ResponseHeaderTimeout = 3600 * time.Second
_, _, err = d.RawQuery("PUT", "/internal/shutdown", nil, "")
if err != nil {
Expand All @@ -44,22 +45,22 @@ func (s *srcManual) Stop() error {
return nil
}

func (s *srcManual) Start() error {
func (s *srcManual) start() error {
return nil
}

func (s *srcManual) Purge() error {
func (s *srcManual) purge() error {
return nil
}

func (s *srcManual) Connect() (incus.InstanceServer, error) {
func (s *srcManual) connect() (incus.InstanceServer, error) {
return incus.ConnectIncusUnix("/var/lib/lxd/unix.socket", &incus.ConnectionArgs{SkipGetServer: true})
}

func (s *srcManual) Paths() (*DaemonPaths, error) {
return &DaemonPaths{
Daemon: "/var/lib/lxd",
Logs: "/var/log/lxd",
Cache: "/var/cache/lxd",
func (s *srcManual) paths() (*daemonPaths, error) {
return &daemonPaths{
daemon: "/var/lib/lxd",
logs: "/var/log/lxd",
cache: "/var/cache/lxd",
}, nil
}
22 changes: 11 additions & 11 deletions cmd/lxd-to-incus/sources_snap.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (

type srcSnap struct{}

func (s *srcSnap) Present() bool {
func (s *srcSnap) present() bool {
// Validate that the snap is installed.
if !util.PathExists("/snap/lxd") && !util.PathExists("/var/lib/snapd/snap/lxd") {
return false
Expand All @@ -21,33 +21,33 @@ func (s *srcSnap) Present() bool {
return true
}

func (s *srcSnap) Name() string {
func (s *srcSnap) name() string {
return "snap package"
}

func (s *srcSnap) Stop() error {
func (s *srcSnap) stop() error {
_, err := subprocess.RunCommand("snap", "stop", "lxd")
return err
}

func (s *srcSnap) Start() error {
func (s *srcSnap) start() error {
_, err := subprocess.RunCommand("snap", "start", "lxd")
return err
}

func (s *srcSnap) Purge() error {
func (s *srcSnap) purge() error {
_, err := subprocess.RunCommand("snap", "remove", "lxd", "--purge")
return err
}

func (s *srcSnap) Connect() (incus.InstanceServer, error) {
func (s *srcSnap) connect() (incus.InstanceServer, error) {
return incus.ConnectIncusUnix("/var/snap/lxd/common/lxd/unix.socket", &incus.ConnectionArgs{SkipGetServer: true})
}

func (s *srcSnap) Paths() (*DaemonPaths, error) {
return &DaemonPaths{
Daemon: "/var/snap/lxd/common/lxd",
Logs: "/var/snap/lxd/common/lxd/logs",
Cache: "/var/snap/lxd/common/lxd/cache",
func (s *srcSnap) paths() (*daemonPaths, error) {
return &daemonPaths{
daemon: "/var/snap/lxd/common/lxd",
logs: "/var/snap/lxd/common/lxd/logs",
cache: "/var/snap/lxd/common/lxd/cache",
}, nil
}
16 changes: 8 additions & 8 deletions cmd/lxd-to-incus/targets.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ import (
"github.com/lxc/incus/client"
)

type Target interface {
Present() bool
Stop() error
Start() error
Connect() (incus.InstanceServer, error)
Paths() (*DaemonPaths, error)
Name() string
type target interface {
present() bool
stop() error
start() error
connect() (incus.InstanceServer, error)
paths() (*daemonPaths, error)
name() string
}

var targets = []Target{&targetSystemd{}, &targetOpenRC{}}
var targets = []target{&targetSystemd{}, &targetOpenRC{}}
26 changes: 11 additions & 15 deletions cmd/lxd-to-incus/targets_openrc.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,21 @@ import (

type targetOpenRC struct{}

func (s *targetOpenRC) Present() bool {
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
return err == nil
}

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

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

func (s *targetOpenRC) Connect() (incus.InstanceServer, error) {
func (s *targetOpenRC) connect() (incus.InstanceServer, error) {
return incus.ConnectIncusUnix("/var/lib/incus/unix.socket", &incus.ConnectionArgs{SkipGetServer: true})
}

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

func (s *targetOpenRC) Name() string {
func (s *targetOpenRC) name() string {
return "openrc"
}
Loading

0 comments on commit 71d4862

Please sign in to comment.