Merge pull request #36724 from YuPengZTE/devCtx

Automatic merge from submit-queue (batch tested with PRs 36543, 38189, 38289, 38291, 36724)

context.Context should be the first parameter of a function in vsphere

**What this PR does / why we need it**:
Change the position of the context.Context parameter.
**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #

**Special notes for your reviewer**:
golint
**Release note**:

```release-note
```

Signed-off-by: yupeng <yu.peng36@zte.com.cn>
pull/6/head
Kubernetes Submit Queue 2016-12-07 11:40:21 -08:00 committed by GitHub
commit 2c7e1317f4
2 changed files with 32 additions and 32 deletions

View File

@ -287,7 +287,7 @@ func newVSphere(cfg VSphereConfig) (*VSphere, error) {
cfg.Global.RoundTripperCount = RoundTripperDefaultCount
}
c, err := newClient(&cfg, context.TODO())
c, err := newClient(context.TODO(), &cfg)
if err != nil {
return nil, err
}
@ -322,7 +322,7 @@ func logout(vs *VSphere) {
vs.client.Logout(context.TODO())
}
func newClient(cfg *VSphereConfig, ctx context.Context) (*govmomi.Client, error) {
func newClient(ctx context.Context, cfg *VSphereConfig) (*govmomi.Client, error) {
// Parse URL from string
u, err := url.Parse(fmt.Sprintf("https://%s:%s/sdk", cfg.Global.VCenterIP, cfg.Global.VCenterPort))
if err != nil {
@ -345,12 +345,12 @@ func newClient(cfg *VSphereConfig, ctx context.Context) (*govmomi.Client, error)
// Returns a client which communicates with vCenter.
// This client can used to perform further vCenter operations.
func vSphereLogin(vs *VSphere, ctx context.Context) error {
func vSphereLogin(ctx context.Context, vs *VSphere) error {
var err error
clientLock.Lock()
defer clientLock.Unlock()
if vs.client == nil {
vs.client, err = newClient(vs.cfg, ctx)
vs.client, err = newClient(ctx, vs.cfg)
if err != nil {
return err
}
@ -367,7 +367,7 @@ func vSphereLogin(vs *VSphere, ctx context.Context) error {
glog.Warningf("Creating new client session since the existing session is not valid or not authenticated")
vs.client.Logout(ctx)
vs.client, err = newClient(vs.cfg, ctx)
vs.client, err = newClient(ctx, vs.cfg)
if err != nil {
return err
}
@ -376,7 +376,7 @@ func vSphereLogin(vs *VSphere, ctx context.Context) error {
}
// Returns vSphere object `virtual machine` by its name.
func getVirtualMachineByName(cfg *VSphereConfig, ctx context.Context, c *govmomi.Client, nodeName k8stypes.NodeName) (*object.VirtualMachine, error) {
func getVirtualMachineByName(ctx context.Context, cfg *VSphereConfig, c *govmomi.Client, nodeName k8stypes.NodeName) (*object.VirtualMachine, error) {
name := nodeNameToVMName(nodeName)
// Create a new finder
@ -413,7 +413,7 @@ func getVirtualMachineManagedObjectReference(ctx context.Context, c *govmomi.Cli
}
// Returns names of running VMs inside VM folder.
func getInstances(cfg *VSphereConfig, ctx context.Context, c *govmomi.Client, filter string) ([]string, error) {
func getInstances(ctx context.Context, cfg *VSphereConfig, c *govmomi.Client, filter string) ([]string, error) {
f := find.NewFinder(c.Client, true)
dc, err := f.Datacenter(ctx, cfg.Global.Datacenter)
if err != nil {
@ -463,7 +463,7 @@ type Instances struct {
// Instances returns an implementation of Instances for vSphere.
func (vs *VSphere) Instances() (cloudprovider.Instances, bool) {
// Ensure client is logged in and session is valid
err := vSphereLogin(vs, context.TODO())
err := vSphereLogin(context.TODO(), vs)
if err != nil {
glog.Errorf("Failed to login into vCenter - %v", err)
return nil, false
@ -476,7 +476,7 @@ func (i *Instances) List(filter string) ([]k8stypes.NodeName, error) {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
vmList, err := getInstances(i.cfg, ctx, i.client, filter)
vmList, err := getInstances(ctx, i.cfg, i.client, filter)
if err != nil {
return nil, err
}
@ -499,7 +499,7 @@ func (i *Instances) NodeAddresses(nodeName k8stypes.NodeName) ([]v1.NodeAddress,
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
vm, err := getVirtualMachineByName(i.cfg, ctx, i.client, nodeName)
vm, err := getVirtualMachineByName(ctx, i.cfg, i.client, nodeName)
if err != nil {
return nil, err
}
@ -554,7 +554,7 @@ func (i *Instances) ExternalID(nodeName k8stypes.NodeName) (string, error) {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
vm, err := getVirtualMachineByName(i.cfg, ctx, i.client, nodeName)
vm, err := getVirtualMachineByName(ctx, i.cfg, i.client, nodeName)
if err != nil {
if _, ok := err.(*find.NotFoundError); ok {
return "", cloudprovider.InstanceNotFound
@ -587,7 +587,7 @@ func (i *Instances) InstanceID(nodeName k8stypes.NodeName) (string, error) {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
vm, err := getVirtualMachineByName(i.cfg, ctx, i.client, nodeName)
vm, err := getVirtualMachineByName(ctx, i.cfg, i.client, nodeName)
if err != nil {
if _, ok := err.(*find.NotFoundError); ok {
return "", cloudprovider.InstanceNotFound
@ -661,7 +661,7 @@ func (vs *VSphere) ScrubDNS(nameservers, searches []string) (nsOut, srchOut []st
}
// Returns vSphere objects virtual machine, virtual device list, datastore and datacenter.
func getVirtualMachineDevices(cfg *VSphereConfig, ctx context.Context, c *govmomi.Client, name string) (*object.VirtualMachine, object.VirtualDeviceList, *object.Datastore, *object.Datacenter, error) {
func getVirtualMachineDevices(ctx context.Context, cfg *VSphereConfig, c *govmomi.Client, name string) (*object.VirtualMachine, object.VirtualDeviceList, *object.Datastore, *object.Datacenter, error) {
// Create a new finder
f := find.NewFinder(c.Client, true)
@ -694,7 +694,7 @@ func getVirtualMachineDevices(cfg *VSphereConfig, ctx context.Context, c *govmom
}
// Removes SCSI controller which is latest attached to VM.
func cleanUpController(newSCSIController types.BaseVirtualDevice, vmDevices object.VirtualDeviceList, vm *object.VirtualMachine, ctx context.Context) error {
func cleanUpController(ctx context.Context, newSCSIController types.BaseVirtualDevice, vmDevices object.VirtualDeviceList, vm *object.VirtualMachine) error {
if newSCSIController == nil || vmDevices == nil || vm == nil {
return nil
}
@ -717,7 +717,7 @@ func (vs *VSphere) AttachDisk(vmDiskPath string, nodeName k8stypes.NodeName) (di
defer cancel()
// Ensure client is logged in and session is valid
err = vSphereLogin(vs, ctx)
err = vSphereLogin(ctx, vs)
if err != nil {
glog.Errorf("Failed to login into vCenter - %v", err)
return "", "", err
@ -733,7 +733,7 @@ func (vs *VSphere) AttachDisk(vmDiskPath string, nodeName k8stypes.NodeName) (di
}
// Get VM device list
vm, vmDevices, ds, dc, err := getVirtualMachineDevices(vs.cfg, ctx, vs.client, vSphereInstance)
vm, vmDevices, ds, dc, err := getVirtualMachineDevices(ctx, vs.cfg, vs.client, vSphereInstance)
if err != nil {
return "", "", err
}
@ -777,7 +777,7 @@ func (vs *VSphere) AttachDisk(vmDiskPath string, nodeName k8stypes.NodeName) (di
glog.V(1).Infof("cannot add SCSI controller to vm - %v", err)
// attempt clean up of scsi controller
if vmDevices, err := vm.Device(ctx); err == nil {
cleanUpController(newSCSIController, vmDevices, vm, ctx)
cleanUpController(ctx, newSCSIController, vmDevices, vm)
}
return "", "", err
}
@ -793,7 +793,7 @@ func (vs *VSphere) AttachDisk(vmDiskPath string, nodeName k8stypes.NodeName) (di
if scsiController == nil {
glog.Errorf("cannot find SCSI controller in VM")
// attempt clean up of scsi controller
cleanUpController(newSCSIController, vmDevices, vm, ctx)
cleanUpController(ctx, newSCSIController, vmDevices, vm)
return "", "", fmt.Errorf("cannot find SCSI controller in VM")
}
newSCSICreated = true
@ -815,7 +815,7 @@ func (vs *VSphere) AttachDisk(vmDiskPath string, nodeName k8stypes.NodeName) (di
if err != nil {
glog.Errorf("cannot attach disk to the vm - %v", err)
if newSCSICreated {
cleanUpController(newSCSIController, vmDevices, vm, ctx)
cleanUpController(ctx, newSCSIController, vmDevices, vm)
}
return "", "", err
}
@ -823,14 +823,14 @@ func (vs *VSphere) AttachDisk(vmDiskPath string, nodeName k8stypes.NodeName) (di
vmDevices, err = vm.Device(ctx)
if err != nil {
if newSCSICreated {
cleanUpController(newSCSIController, vmDevices, vm, ctx)
cleanUpController(ctx, newSCSIController, vmDevices, vm)
}
return "", "", err
}
devices := vmDevices.SelectByType(disk)
if len(devices) < 1 {
if newSCSICreated {
cleanUpController(newSCSIController, vmDevices, vm, ctx)
cleanUpController(ctx, newSCSIController, vmDevices, vm)
}
return "", "", ErrNoDevicesFound
}
@ -843,7 +843,7 @@ func (vs *VSphere) AttachDisk(vmDiskPath string, nodeName k8stypes.NodeName) (di
diskUUID, err = getVirtualDiskUUID(newDevice)
if err != nil {
if newSCSICreated {
cleanUpController(newSCSIController, vmDevices, vm, ctx)
cleanUpController(ctx, newSCSIController, vmDevices, vm)
}
vs.DetachDisk(deviceName, nodeName)
return "", "", err
@ -932,7 +932,7 @@ func (vs *VSphere) DiskIsAttached(volPath string, nodeName k8stypes.NodeName) (b
defer cancel()
// Ensure client is logged in and session is valid
err := vSphereLogin(vs, ctx)
err := vSphereLogin(ctx, vs)
if err != nil {
glog.Errorf("Failed to login into vCenter - %v", err)
return false, err
@ -962,7 +962,7 @@ func (vs *VSphere) DiskIsAttached(volPath string, nodeName k8stypes.NodeName) (b
}
// Get VM device list
_, vmDevices, _, dc, err := getVirtualMachineDevices(vs.cfg, ctx, vs.client, vSphereInstance)
_, vmDevices, _, dc, err := getVirtualMachineDevices(ctx, vs.cfg, vs.client, vSphereInstance)
if err != nil {
glog.Errorf("Failed to get VM devices for VM %#q. err: %s", vSphereInstance, err)
return false, err
@ -982,7 +982,7 @@ func (vs *VSphere) DisksAreAttached(volPaths []string, nodeName k8stypes.NodeNam
for _, volPath := range volPaths {
attached[volPath] = false
}
err := vSphereLogin(vs, ctx)
err := vSphereLogin(ctx, vs)
if err != nil {
glog.Errorf("Failed to login into vCenter, err: %v", err)
return attached, err
@ -1013,7 +1013,7 @@ func (vs *VSphere) DisksAreAttached(volPaths []string, nodeName k8stypes.NodeNam
}
// Get VM device list
_, vmDevices, _, dc, err := getVirtualMachineDevices(vs.cfg, ctx, vs.client, vSphereInstance)
_, vmDevices, _, dc, err := getVirtualMachineDevices(ctx, vs.cfg, vs.client, vSphereInstance)
if err != nil {
glog.Errorf("Failed to get VM devices for VM %#q. err: %s", vSphereInstance, err)
return attached, err
@ -1160,7 +1160,7 @@ func (vs *VSphere) DetachDisk(volPath string, nodeName k8stypes.NodeName) error
defer cancel()
// Ensure client is logged in and session is valid
err := vSphereLogin(vs, ctx)
err := vSphereLogin(ctx, vs)
if err != nil {
glog.Errorf("Failed to login into vCenter - %v", err)
return err
@ -1190,7 +1190,7 @@ func (vs *VSphere) DetachDisk(volPath string, nodeName k8stypes.NodeName) error
return nil
}
vm, vmDevices, _, dc, err := getVirtualMachineDevices(vs.cfg, ctx, vs.client, vSphereInstance)
vm, vmDevices, _, dc, err := getVirtualMachineDevices(ctx, vs.cfg, vs.client, vSphereInstance)
if err != nil {
return err
}
@ -1238,7 +1238,7 @@ func (vs *VSphere) CreateVolume(volumeOptions *VolumeOptions) (volumePath string
defer cancel()
// Ensure client is logged in and session is valid
err = vSphereLogin(vs, ctx)
err = vSphereLogin(ctx, vs)
if err != nil {
glog.Errorf("Failed to login into vCenter - %v", err)
return "", err
@ -1300,7 +1300,7 @@ func (vs *VSphere) DeleteVolume(vmDiskPath string) error {
defer cancel()
// Ensure client is logged in and session is valid
err := vSphereLogin(vs, ctx)
err := vSphereLogin(ctx, vs)
if err != nil {
glog.Errorf("Failed to login into vCenter - %v", err)
return err
@ -1335,7 +1335,7 @@ func (vs *VSphere) NodeExists(c *govmomi.Client, nodeName k8stypes.NodeName) (bo
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
vm, err := getVirtualMachineByName(vs.cfg, ctx, c, nodeName)
vm, err := getVirtualMachineByName(ctx, vs.cfg, c, nodeName)
if err != nil {
if _, ok := err.(*find.NotFoundError); ok {
return false, nil

View File

@ -118,7 +118,7 @@ func TestVSphereLogin(t *testing.T) {
defer cancel()
// Create vSphere client
err = vSphereLogin(vs, ctx)
err = vSphereLogin(ctx, vs)
if err != nil {
t.Errorf("Failed to create vSpere client: %s", err)
}