...
1
19
20 package kubecli
21
22
23
24
27
28 import (
29 "time"
30
31 routev1 "github.com/openshift/client-go/route/clientset/versioned/typed/route/v1"
32
33 clonev1alpha1 "kubevirt.io/client-go/generated/kubevirt/clientset/versioned/typed/clone/v1alpha1"
34
35 secv1 "github.com/openshift/client-go/security/clientset/versioned/typed/security/v1"
36 extclient "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
37 "k8s.io/client-go/discovery"
38 "k8s.io/client-go/dynamic"
39 "k8s.io/client-go/kubernetes"
40 "k8s.io/client-go/rest"
41
42 v1 "kubevirt.io/api/core/v1"
43 cdiclient "kubevirt.io/client-go/generated/containerized-data-importer/clientset/versioned"
44 k8ssnapshotclient "kubevirt.io/client-go/generated/external-snapshotter/clientset/versioned"
45 generatedclient "kubevirt.io/client-go/generated/kubevirt/clientset/versioned"
46 kvcorev1 "kubevirt.io/client-go/generated/kubevirt/clientset/versioned/typed/core/v1"
47 exportv1 "kubevirt.io/client-go/generated/kubevirt/clientset/versioned/typed/export/v1beta1"
48 instancetypev1beta1 "kubevirt.io/client-go/generated/kubevirt/clientset/versioned/typed/instancetype/v1beta1"
49 migrationsv1 "kubevirt.io/client-go/generated/kubevirt/clientset/versioned/typed/migrations/v1alpha1"
50 poolv1 "kubevirt.io/client-go/generated/kubevirt/clientset/versioned/typed/pool/v1alpha1"
51 snapshotv1 "kubevirt.io/client-go/generated/kubevirt/clientset/versioned/typed/snapshot/v1beta1"
52 networkclient "kubevirt.io/client-go/generated/network-attachment-definition-client/clientset/versioned"
53 promclient "kubevirt.io/client-go/generated/prometheus-operator/clientset/versioned"
54 "kubevirt.io/client-go/version"
55 )
56
57 type KubevirtClient interface {
58 VirtualMachineInstance(namespace string) VirtualMachineInstanceInterface
59 VirtualMachineInstanceMigration(namespace string) VirtualMachineInstanceMigrationInterface
60 ReplicaSet(namespace string) ReplicaSetInterface
61 VirtualMachinePool(namespace string) poolv1.VirtualMachinePoolInterface
62 VirtualMachine(namespace string) VirtualMachineInterface
63 KubeVirt(namespace string) KubeVirtInterface
64 VirtualMachineInstancePreset(namespace string) VirtualMachineInstancePresetInterface
65 VirtualMachineSnapshot(namespace string) snapshotv1.VirtualMachineSnapshotInterface
66 VirtualMachineSnapshotContent(namespace string) snapshotv1.VirtualMachineSnapshotContentInterface
67 VirtualMachineRestore(namespace string) snapshotv1.VirtualMachineRestoreInterface
68 VirtualMachineExport(namespace string) exportv1.VirtualMachineExportInterface
69 VirtualMachineInstancetype(namespace string) instancetypev1beta1.VirtualMachineInstancetypeInterface
70 VirtualMachineClusterInstancetype() instancetypev1beta1.VirtualMachineClusterInstancetypeInterface
71 VirtualMachinePreference(namespace string) instancetypev1beta1.VirtualMachinePreferenceInterface
72 VirtualMachineClusterPreference() instancetypev1beta1.VirtualMachineClusterPreferenceInterface
73 MigrationPolicy() migrationsv1.MigrationPolicyInterface
74 ExpandSpec(namespace string) ExpandSpecInterface
75 ServerVersion() ServerVersionInterface
76 VirtualMachineClone(namespace string) clonev1alpha1.VirtualMachineCloneInterface
77 ClusterProfiler() *ClusterProfiler
78 GuestfsVersion() *GuestfsVersion
79 RestClient() *rest.RESTClient
80 GeneratedKubeVirtClient() generatedclient.Interface
81 CdiClient() cdiclient.Interface
82 NetworkClient() networkclient.Interface
83 ExtensionsClient() extclient.Interface
84 SecClient() secv1.SecurityV1Interface
85 RouteClient() routev1.RouteV1Interface
86 DiscoveryClient() discovery.DiscoveryInterface
87 PrometheusClient() promclient.Interface
88 KubernetesSnapshotClient() k8ssnapshotclient.Interface
89 DynamicClient() dynamic.Interface
90 MigrationPolicyClient() *migrationsv1.MigrationsV1alpha1Client
91 kubernetes.Interface
92 Config() *rest.Config
93 SetRestTimeout(timeout time.Duration) (KubevirtClient, error)
94 }
95
96 type kubevirt struct {
97 master string
98 kubeconfig string
99 restClient *rest.RESTClient
100 config *rest.Config
101 generatedKubeVirtClient *generatedclient.Clientset
102 cdiClient *cdiclient.Clientset
103 networkClient *networkclient.Clientset
104 extensionsClient *extclient.Clientset
105 secClient *secv1.SecurityV1Client
106 routeClient *routev1.RouteV1Client
107 discoveryClient *discovery.DiscoveryClient
108 prometheusClient *promclient.Clientset
109 snapshotClient *k8ssnapshotclient.Clientset
110 dynamicClient dynamic.Interface
111 migrationsClient *migrationsv1.MigrationsV1alpha1Client
112 cloneClient *clonev1alpha1.CloneV1alpha1Client
113 *kubernetes.Clientset
114 }
115
116 func (k kubevirt) SetRestTimeout(timeout time.Duration) (KubevirtClient, error) {
117 config := rest.CopyConfig(k.config)
118 config.Timeout = timeout
119 k.config = config
120
121 restClient, err := rest.RESTClientFor(k.config)
122 if err != nil {
123 return &k, err
124 }
125 k.restClient = restClient
126
127 return &k, nil
128 }
129
130 func (k kubevirt) Config() *rest.Config {
131 return k.config
132 }
133
134 func (k kubevirt) CdiClient() cdiclient.Interface {
135 return k.cdiClient
136 }
137
138 func (k kubevirt) NetworkClient() networkclient.Interface {
139 return k.networkClient
140 }
141
142 func (k kubevirt) ExtensionsClient() extclient.Interface {
143 return k.extensionsClient
144 }
145
146 func (k kubevirt) SecClient() secv1.SecurityV1Interface {
147 return k.secClient
148 }
149
150 func (k kubevirt) RouteClient() routev1.RouteV1Interface {
151 return k.routeClient
152 }
153
154 func (k kubevirt) DiscoveryClient() discovery.DiscoveryInterface {
155 return k.discoveryClient
156 }
157
158 func (k kubevirt) PrometheusClient() promclient.Interface {
159 return k.prometheusClient
160 }
161
162 func (k kubevirt) RestClient() *rest.RESTClient {
163 return k.restClient
164 }
165
166 func (k kubevirt) GeneratedKubeVirtClient() generatedclient.Interface {
167 return k.generatedKubeVirtClient
168 }
169
170 func (k kubevirt) VirtualMachinePool(namespace string) poolv1.VirtualMachinePoolInterface {
171 return k.generatedKubeVirtClient.PoolV1alpha1().VirtualMachinePools(namespace)
172 }
173
174 func (k kubevirt) VirtualMachineSnapshot(namespace string) snapshotv1.VirtualMachineSnapshotInterface {
175 return k.generatedKubeVirtClient.SnapshotV1beta1().VirtualMachineSnapshots(namespace)
176 }
177
178 func (k kubevirt) VirtualMachineSnapshotContent(namespace string) snapshotv1.VirtualMachineSnapshotContentInterface {
179 return k.generatedKubeVirtClient.SnapshotV1beta1().VirtualMachineSnapshotContents(namespace)
180 }
181
182 func (k kubevirt) VirtualMachineRestore(namespace string) snapshotv1.VirtualMachineRestoreInterface {
183 return k.generatedKubeVirtClient.SnapshotV1beta1().VirtualMachineRestores(namespace)
184 }
185
186 func (k kubevirt) VirtualMachineExport(namespace string) exportv1.VirtualMachineExportInterface {
187 return k.generatedKubeVirtClient.ExportV1beta1().VirtualMachineExports(namespace)
188 }
189
190 func (k kubevirt) VirtualMachineInstancetype(namespace string) instancetypev1beta1.VirtualMachineInstancetypeInterface {
191 return k.generatedKubeVirtClient.InstancetypeV1beta1().VirtualMachineInstancetypes(namespace)
192 }
193
194 func (k kubevirt) VirtualMachineClusterInstancetype() instancetypev1beta1.VirtualMachineClusterInstancetypeInterface {
195 return k.generatedKubeVirtClient.InstancetypeV1beta1().VirtualMachineClusterInstancetypes()
196 }
197
198 func (k kubevirt) VirtualMachinePreference(namespace string) instancetypev1beta1.VirtualMachinePreferenceInterface {
199 return k.generatedKubeVirtClient.InstancetypeV1beta1().VirtualMachinePreferences(namespace)
200 }
201
202 func (k kubevirt) VirtualMachineClusterPreference() instancetypev1beta1.VirtualMachineClusterPreferenceInterface {
203 return k.generatedKubeVirtClient.InstancetypeV1beta1().VirtualMachineClusterPreferences()
204 }
205
206 func (k kubevirt) KubernetesSnapshotClient() k8ssnapshotclient.Interface {
207 return k.snapshotClient
208 }
209
210 func (k kubevirt) DynamicClient() dynamic.Interface {
211 return k.dynamicClient
212 }
213
214 func (k kubevirt) MigrationPolicy() migrationsv1.MigrationPolicyInterface {
215 return k.generatedKubeVirtClient.MigrationsV1alpha1().MigrationPolicies()
216 }
217
218 func (k kubevirt) MigrationPolicyClient() *migrationsv1.MigrationsV1alpha1Client {
219 return k.migrationsClient
220 }
221
222 func (k kubevirt) VirtualMachineClone(namespace string) clonev1alpha1.VirtualMachineCloneInterface {
223 return k.generatedKubeVirtClient.CloneV1alpha1().VirtualMachineClones(namespace)
224 }
225
226 func (k kubevirt) VirtualMachineCloneClient() *clonev1alpha1.CloneV1alpha1Client {
227 return k.cloneClient
228 }
229
230 type VirtualMachineInstanceInterface interface {
231 kvcorev1.VirtualMachineInstanceInterface
232 }
233
234 type ReplicaSetInterface interface {
235 kvcorev1.VirtualMachineInstanceReplicaSetInterface
236 }
237
238 type VirtualMachineInstancePresetInterface interface {
239 kvcorev1.VirtualMachineInstancePresetInterface
240 }
241
242
243
244 type VirtualMachineInterface interface {
245 kvcorev1.VirtualMachineInterface
246 }
247
248 type VirtualMachineInstanceMigrationInterface interface {
249 kvcorev1.VirtualMachineInstanceMigrationInterface
250 }
251
252 type KubeVirtInterface interface {
253 kvcorev1.KubeVirtInterface
254 }
255
256 type ServerVersionInterface interface {
257 Get() (*version.Info, error)
258 }
259
260 type ExpandSpecInterface interface {
261 ForVirtualMachine(vm *v1.VirtualMachine) (*v1.VirtualMachine, error)
262 }
263
View as plain text