-
Notifications
You must be signed in to change notification settings - Fork 0
/
client.go
115 lines (96 loc) · 4.31 KB
/
client.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
package kubeclient
import (
"io"
"net"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/runtime/serializer"
"k8s.io/client-go/rest"
"github.com/deckhouse/virtualization/api/client/generated/clientset/versioned"
virtualizationv1alpha2 "github.com/deckhouse/virtualization/api/client/generated/clientset/versioned/typed/core/v1alpha2"
coreinstall "github.com/deckhouse/virtualization/api/core/install"
subinstall "github.com/deckhouse/virtualization/api/subresources/install"
"github.com/deckhouse/virtualization/api/subresources/v1alpha2"
)
var (
Scheme = runtime.NewScheme()
Codecs = serializer.NewCodecFactory(Scheme)
)
func init() {
coreinstall.Install(Scheme)
subinstall.Install(Scheme)
metav1.AddToGroupVersion(Scheme, schema.GroupVersion{Version: "v1"})
unversioned := schema.GroupVersion{Group: "", Version: "v1"}
Scheme.AddUnversionedTypes(unversioned,
&metav1.Status{},
&metav1.APIVersions{},
&metav1.APIGroupList{},
&metav1.APIGroup{},
&metav1.APIResourceList{},
)
}
type Client interface {
ClusterVirtualImages() virtualizationv1alpha2.ClusterVirtualImageInterface
VirtualMachines(namespace string) VirtualMachineInterface
VirtualImages(namespace string) virtualizationv1alpha2.VirtualImageInterface
VirtualDisks(namespace string) virtualizationv1alpha2.VirtualDiskInterface
VirtualMachineBlockDeviceAttachments(namespace string) virtualizationv1alpha2.VirtualMachineBlockDeviceAttachmentInterface
VirtualMachineIPAddressClaims(namespace string) virtualizationv1alpha2.VirtualMachineIPAddressClaimInterface
VirtualMachineIPAddressLeases() virtualizationv1alpha2.VirtualMachineIPAddressLeaseInterface
VirtualMachineOperations(namespace string) virtualizationv1alpha2.VirtualMachineOperationInterface
VirtualMachineCPUModels() virtualizationv1alpha2.VirtualMachineCPUModelInterface
}
type StreamOptions struct {
In io.Reader
Out io.Writer
}
type StreamInterface interface {
Stream(options StreamOptions) error
AsConn() net.Conn
}
type VirtualMachineInterface interface {
virtualizationv1alpha2.VirtualMachineInterface
SerialConsole(name string, options *SerialConsoleOptions) (StreamInterface, error)
VNC(name string) (StreamInterface, error)
PortForward(name string, opts v1alpha2.VirtualMachinePortForward) (StreamInterface, error)
}
type client struct {
config *rest.Config
shallowCopy *rest.Config
restClient *rest.RESTClient
virtClient *versioned.Clientset
}
func (c client) VirtualMachines(namespace string) VirtualMachineInterface {
return &vm{
VirtualMachineInterface: c.virtClient.VirtualizationV1alpha2().VirtualMachines(namespace),
restClient: c.restClient,
config: c.config,
namespace: namespace,
resource: "virtualmachines",
}
}
func (c client) ClusterVirtualImages() virtualizationv1alpha2.ClusterVirtualImageInterface {
return c.virtClient.VirtualizationV1alpha2().ClusterVirtualImages()
}
func (c client) VirtualImages(namespace string) virtualizationv1alpha2.VirtualImageInterface {
return c.virtClient.VirtualizationV1alpha2().VirtualImages(namespace)
}
func (c client) VirtualDisks(namespace string) virtualizationv1alpha2.VirtualDiskInterface {
return c.virtClient.VirtualizationV1alpha2().VirtualDisks(namespace)
}
func (c client) VirtualMachineBlockDeviceAttachments(namespace string) virtualizationv1alpha2.VirtualMachineBlockDeviceAttachmentInterface {
return c.virtClient.VirtualizationV1alpha2().VirtualMachineBlockDeviceAttachments(namespace)
}
func (c client) VirtualMachineIPAddressClaims(namespace string) virtualizationv1alpha2.VirtualMachineIPAddressClaimInterface {
return c.virtClient.VirtualizationV1alpha2().VirtualMachineIPAddressClaims(namespace)
}
func (c client) VirtualMachineIPAddressLeases() virtualizationv1alpha2.VirtualMachineIPAddressLeaseInterface {
return c.virtClient.VirtualizationV1alpha2().VirtualMachineIPAddressLeases()
}
func (c client) VirtualMachineOperations(namespace string) virtualizationv1alpha2.VirtualMachineOperationInterface {
return c.virtClient.VirtualizationV1alpha2().VirtualMachineOperations(namespace)
}
func (c client) VirtualMachineCPUModels() virtualizationv1alpha2.VirtualMachineCPUModelInterface {
return c.virtClient.VirtualizationV1alpha2().VirtualMachineCPUModels()
}