@@ -20,48 +20,30 @@ package capabilities
20
20
import (
21
21
"encoding/xml"
22
22
"fmt"
23
- "os"
24
23
25
24
"github.com/cobaltcore-dev/kvm-node-agent/api/v1alpha1"
26
25
libvirt "github.com/digitalocean/go-libvirt"
27
- "github.com/digitalocean/go-libvirt/socket/dialers"
28
26
"k8s.io/apimachinery/pkg/api/resource"
29
27
"sigs.k8s.io/controller-runtime/pkg/log"
30
28
)
31
29
32
30
// Client that returns the capabilities of the host we are mounted on.
33
31
type Client interface {
34
32
// Return the capabilities status of the host we are mounted on.
35
- Get() (v1alpha1.CapabilitiesStatus, error)
33
+ Get(virt *libvirt.Libvirt ) (v1alpha1.CapabilitiesStatus, error)
36
34
}
37
35
38
36
// Implementation of the CapabilitiesClient interface.
39
- type client struct {
40
- // Libvirt instance to connect to.
41
- virt *libvirt.Libvirt
42
- }
37
+ type client struct{}
43
38
44
- // Create a new capabilities client using the provided LIBVIRT_SOCKET env variable .
39
+ // Create a new capabilities client.
45
40
func NewClient() Client {
46
- socketPath := os.Getenv("LIBVIRT_SOCKET")
47
- if socketPath == "" {
48
- socketPath = "/run/libvirt/libvirt-sock"
49
- }
50
- log.Log.Info("capabilities client uses libvirt socket", "socket", socketPath)
51
- dialer := dialers.NewLocal(dialers.WithSocket(socketPath))
52
- virt := libvirt.NewWithDialer(dialer)
53
- return &client{virt: virt}
41
+ return &client{}
54
42
}
55
43
56
44
// Return the capabilities of the host we are mounted on.
57
- func (m *client) Get() (v1alpha1.CapabilitiesStatus, error) {
58
- if !m.virt.IsConnected() {
59
- if err := m.virt.Connect(); err != nil {
60
- log.Log.Error(err, "failed to connect to libvirt")
61
- return v1alpha1.CapabilitiesStatus{}, err
62
- }
63
- }
64
- capabilitiesXMLBytes, err := m.virt.Capabilities()
45
+ func (m *client) Get(virt *libvirt.Libvirt) (v1alpha1.CapabilitiesStatus, error) {
46
+ capabilitiesXMLBytes, err := virt.Capabilities()
65
47
if err != nil {
66
48
log.Log.Error(err, "failed to get libvirt capabilities")
67
49
return v1alpha1.CapabilitiesStatus{}, err
@@ -83,7 +65,7 @@ func NewClientEmulator() Client {
83
65
}
84
66
85
67
// Get the capabilities of the host we are mounted on.
86
- func (c *clientEmulator) Get() (v1alpha1.CapabilitiesStatus, error) {
68
+ func (c *clientEmulator) Get(virt *libvirt.Libvirt ) (v1alpha1.CapabilitiesStatus, error) {
87
69
var capabilities Capabilities
88
70
if err := xml.Unmarshal(exampleXML, &capabilities); err != nil {
89
71
log.Log.Error(err, "failed to unmarshal example capabilities")
0 commit comments