...

Source file src/kubevirt.io/client-go/kubecli/migration.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  import (
    23  	"context"
    24  
    25  	k8smetav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    26  	"k8s.io/apimachinery/pkg/types"
    27  	"k8s.io/client-go/rest"
    28  
    29  	v1 "kubevirt.io/api/core/v1"
    30  	kvcorev1 "kubevirt.io/client-go/generated/kubevirt/clientset/versioned/typed/core/v1"
    31  )
    32  
    33  func (k *kubevirt) VirtualMachineInstanceMigration(namespace string) VirtualMachineInstanceMigrationInterface {
    34  	return &migration{
    35  		VirtualMachineInstanceMigrationInterface: k.GeneratedKubeVirtClient().KubevirtV1().VirtualMachineInstanceMigrations(namespace),
    36  		restClient:                               k.restClient,
    37  		namespace:                                namespace,
    38  		resource:                                 "virtualmachineinstancemigrations",
    39  	}
    40  }
    41  
    42  type migration struct {
    43  	kvcorev1.VirtualMachineInstanceMigrationInterface
    44  	restClient *rest.RESTClient
    45  	namespace  string
    46  	resource   string
    47  }
    48  
    49  // Create new VirtualMachineInstanceMigration in the cluster to specified namespace
    50  func (o *migration) Create(ctx context.Context, newMigration *v1.VirtualMachineInstanceMigration, options k8smetav1.CreateOptions) (*v1.VirtualMachineInstanceMigration, error) {
    51  	newMigrationResult, err := o.VirtualMachineInstanceMigrationInterface.Create(ctx, newMigration, options)
    52  	newMigrationResult.SetGroupVersionKind(v1.VirtualMachineInstanceMigrationGroupVersionKind)
    53  
    54  	return newMigrationResult, err
    55  }
    56  
    57  // Get the VirtualMachineInstanceMigration from the cluster by its name and namespace
    58  func (o *migration) Get(ctx context.Context, name string, options k8smetav1.GetOptions) (*v1.VirtualMachineInstanceMigration, error) {
    59  	newVm, err := o.VirtualMachineInstanceMigrationInterface.Get(ctx, name, options)
    60  	newVm.SetGroupVersionKind(v1.VirtualMachineInstanceMigrationGroupVersionKind)
    61  
    62  	return newVm, err
    63  }
    64  
    65  // Update the VirtualMachineInstanceMigration instance in the cluster in given namespace
    66  func (o *migration) Update(ctx context.Context, migration *v1.VirtualMachineInstanceMigration, opts k8smetav1.UpdateOptions) (*v1.VirtualMachineInstanceMigration, error) {
    67  	updatedVm, err := o.VirtualMachineInstanceMigrationInterface.Update(ctx, migration, opts)
    68  	updatedVm.SetGroupVersionKind(v1.VirtualMachineInstanceMigrationGroupVersionKind)
    69  
    70  	return updatedVm, err
    71  }
    72  
    73  // Delete the defined VirtualMachineInstanceMigration in the cluster in defined namespace
    74  func (o *migration) Delete(ctx context.Context, name string, options k8smetav1.DeleteOptions) error {
    75  	return o.VirtualMachineInstanceMigrationInterface.Delete(ctx, name, options)
    76  }
    77  
    78  // List all VirtualMachineInstanceMigrations in given namespace
    79  func (o *migration) List(ctx context.Context, options k8smetav1.ListOptions) (*v1.VirtualMachineInstanceMigrationList, error) {
    80  	newVmiMigrationList, err := o.VirtualMachineInstanceMigrationInterface.List(ctx, options)
    81  	for i := range newVmiMigrationList.Items {
    82  		newVmiMigrationList.Items[i].SetGroupVersionKind(v1.VirtualMachineInstanceMigrationGroupVersionKind)
    83  	}
    84  
    85  	return newVmiMigrationList, err
    86  }
    87  
    88  func (o *migration) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts k8smetav1.PatchOptions, subresources ...string) (result *v1.VirtualMachineInstanceMigration, err error) {
    89  	return o.VirtualMachineInstanceMigrationInterface.Patch(ctx, name, pt, data, opts, subresources...)
    90  }
    91  
    92  func (o *migration) PatchStatus(ctx context.Context, name string, pt types.PatchType, data []byte, opts k8smetav1.PatchOptions) (result *v1.VirtualMachineInstanceMigration, err error) {
    93  	return o.Patch(ctx, name, pt, data, opts, "status")
    94  }
    95  
    96  func (o *migration) UpdateStatus(ctx context.Context, vmim *v1.VirtualMachineInstanceMigration, opts k8smetav1.UpdateOptions) (result *v1.VirtualMachineInstanceMigration, err error) {
    97  	result, err = o.VirtualMachineInstanceMigrationInterface.UpdateStatus(ctx, vmim, opts)
    98  	result.SetGroupVersionKind(v1.VirtualMachineInstanceMigrationGroupVersionKind)
    99  	return
   100  }
   101  

View as plain text