mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 12:15:52 +00:00
add test to verify vsphere cloud provider report node hostname
as in pull #67922 has modify vsphere cloud provider to report node hostname, this patch is to add the test for it. also fix an issue at InstanceID(), it suppose to return cloudprovider.InstanceNotFound when vm not found, after the fix, test TestInstance() can pass
This commit is contained in:
parent
113872798d
commit
ce15129b9e
@ -762,9 +762,6 @@ func (vs *VSphere) InstanceID(ctx context.Context, nodeName k8stypes.NodeName) (
|
||||
}
|
||||
vm, err := vs.getVMFromNodeName(ctx, nodeName)
|
||||
if err != nil {
|
||||
if err == vclib.ErrNoVMFound {
|
||||
return "", cloudprovider.InstanceNotFound
|
||||
}
|
||||
glog.Errorf("Failed to get VM object for node: %q. err: +%v", convertToString(nodeName), err)
|
||||
return "", err
|
||||
}
|
||||
@ -782,9 +779,8 @@ func (vs *VSphere) InstanceID(ctx context.Context, nodeName k8stypes.NodeName) (
|
||||
|
||||
instanceID, err := instanceIDInternal()
|
||||
if err != nil {
|
||||
var isManagedObjectNotFoundError bool
|
||||
isManagedObjectNotFoundError, err = vs.retry(nodeName, err)
|
||||
if isManagedObjectNotFoundError {
|
||||
if vclib.IsManagedObjectNotFoundError(err) {
|
||||
err = vs.nodeManager.RediscoverNode(nodeName)
|
||||
if err == nil {
|
||||
glog.V(4).Infof("InstanceID: Found node %q", convertToString(nodeName))
|
||||
instanceID, err = instanceIDInternal()
|
||||
@ -871,9 +867,8 @@ func (vs *VSphere) AttachDisk(vmDiskPath string, storagePolicyName string, nodeN
|
||||
requestTime := time.Now()
|
||||
diskUUID, err = attachDiskInternal(vmDiskPath, storagePolicyName, nodeName)
|
||||
if err != nil {
|
||||
var isManagedObjectNotFoundError bool
|
||||
isManagedObjectNotFoundError, err = vs.retry(nodeName, err)
|
||||
if isManagedObjectNotFoundError {
|
||||
if vclib.IsManagedObjectNotFoundError(err) {
|
||||
err = vs.nodeManager.RediscoverNode(nodeName)
|
||||
if err == nil {
|
||||
glog.V(4).Infof("AttachDisk: Found node %q", convertToString(nodeName))
|
||||
diskUUID, err = attachDiskInternal(vmDiskPath, storagePolicyName, nodeName)
|
||||
@ -886,18 +881,6 @@ func (vs *VSphere) AttachDisk(vmDiskPath string, storagePolicyName string, nodeN
|
||||
return diskUUID, err
|
||||
}
|
||||
|
||||
func (vs *VSphere) retry(nodeName k8stypes.NodeName, err error) (bool, error) {
|
||||
isManagedObjectNotFoundError := false
|
||||
if err != nil {
|
||||
if vclib.IsManagedObjectNotFoundError(err) {
|
||||
isManagedObjectNotFoundError = true
|
||||
glog.V(4).Infof("error %q ManagedObjectNotFound for node %q", err, convertToString(nodeName))
|
||||
err = vs.nodeManager.RediscoverNode(nodeName)
|
||||
}
|
||||
}
|
||||
return isManagedObjectNotFoundError, err
|
||||
}
|
||||
|
||||
// DetachDisk detaches given virtual disk volume from the compute running kubelet.
|
||||
func (vs *VSphere) DetachDisk(volPath string, nodeName k8stypes.NodeName) error {
|
||||
detachDiskInternal := func(volPath string, nodeName k8stypes.NodeName) error {
|
||||
@ -942,9 +925,8 @@ func (vs *VSphere) DetachDisk(volPath string, nodeName k8stypes.NodeName) error
|
||||
requestTime := time.Now()
|
||||
err := detachDiskInternal(volPath, nodeName)
|
||||
if err != nil {
|
||||
var isManagedObjectNotFoundError bool
|
||||
isManagedObjectNotFoundError, err = vs.retry(nodeName, err)
|
||||
if isManagedObjectNotFoundError {
|
||||
if vclib.IsManagedObjectNotFoundError(err) {
|
||||
err = vs.nodeManager.RediscoverNode(nodeName)
|
||||
if err == nil {
|
||||
err = detachDiskInternal(volPath, nodeName)
|
||||
}
|
||||
@ -1000,9 +982,8 @@ func (vs *VSphere) DiskIsAttached(volPath string, nodeName k8stypes.NodeName) (b
|
||||
requestTime := time.Now()
|
||||
isAttached, err := diskIsAttachedInternal(volPath, nodeName)
|
||||
if err != nil {
|
||||
var isManagedObjectNotFoundError bool
|
||||
isManagedObjectNotFoundError, err = vs.retry(nodeName, err)
|
||||
if isManagedObjectNotFoundError {
|
||||
if vclib.IsManagedObjectNotFoundError(err) {
|
||||
err = vs.nodeManager.RediscoverNode(nodeName)
|
||||
if err == vclib.ErrNoVMFound {
|
||||
isAttached, err = false, nil
|
||||
} else if err == nil {
|
||||
|
@ -36,6 +36,7 @@ import (
|
||||
vapi "github.com/vmware/govmomi/vapi/simulator"
|
||||
"github.com/vmware/govmomi/vapi/tags"
|
||||
"github.com/vmware/govmomi/vim25/mo"
|
||||
"k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
"k8s.io/apimachinery/pkg/util/rand"
|
||||
"k8s.io/kubernetes/pkg/cloudprovider"
|
||||
@ -527,6 +528,15 @@ func TestInstances(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("Instances.NodeAddresses(%s) failed: %s", nodeName, err)
|
||||
}
|
||||
found := false
|
||||
for _, addr := range addrs {
|
||||
if addr.Type == v1.NodeHostName {
|
||||
found = true
|
||||
}
|
||||
}
|
||||
if found == false {
|
||||
t.Fatalf("NodeAddresses does not report hostname, %s %s", nodeName, addrs)
|
||||
}
|
||||
t.Logf("Found NodeAddresses(%s) = %s\n", nodeName, addrs)
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user