...

Source file src/kubevirt.io/client-go/kubecli/kubevirt.go

Documentation: kubevirt.io/client-go/kubecli

     1  /*
     2   * This file is part of the KubeVirt project
     3   *
     4   * Licensed under the Apache License, Version 2.0 (the "License");
     5   * you may not use this file except in compliance with the License.
     6   * You may obtain a copy of the License at
     7   *
     8   *     http://www.apache.org/licenses/LICENSE-2.0
     9   *
    10   * Unless required by applicable law or agreed to in writing, software
    11   * distributed under the License is distributed on an "AS IS" BASIS,
    12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13   * See the License for the specific language governing permissions and
    14   * limitations under the License.
    15   *
    16   * Copyright 2018 Red Hat, Inc.
    17   *
    18   */
    19  
    20  package kubecli
    21  
    22  //go:generate mockgen -source $GOFILE -package=$GOPACKAGE -destination=generated_mock_$GOFILE
    23  
    24  /*
    25   ATTENTION: Rerun code generators when interface signatures are modified.
    26  */
    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 // TODO ihol3 delete function? who's using it?
   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  // VirtualMachineInterface provides convenience methods to work with
   243  // virtual machines inside the cluster
   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