This commit is contained in:
Shaomin Chen 2017-12-01 10:31:48 -08:00
parent a5d2a025b7
commit ecdb47a40b
2 changed files with 16 additions and 5 deletions

View File

@ -18,13 +18,14 @@ package vsphere
import ( import (
"fmt" "fmt"
"strings"
"sync"
"github.com/golang/glog" "github.com/golang/glog"
"golang.org/x/net/context" "golang.org/x/net/context"
"k8s.io/api/core/v1" "k8s.io/api/core/v1"
k8stypes "k8s.io/apimachinery/pkg/types" k8stypes "k8s.io/apimachinery/pkg/types"
"k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vclib" "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vclib"
"strings"
"sync"
) )
// Stores info about the kubernetes node // Stores info about the kubernetes node
@ -241,6 +242,10 @@ func (nm *NodeManager) removeNode(node *v1.Node) {
nm.registeredNodesLock.Lock() nm.registeredNodesLock.Lock()
delete(nm.registeredNodes, node.ObjectMeta.Name) delete(nm.registeredNodes, node.ObjectMeta.Name)
nm.registeredNodesLock.Unlock() nm.registeredNodesLock.Unlock()
nm.nodeInfoLock.Lock()
delete(nm.nodeInfoMap, node.ObjectMeta.Name)
nm.nodeInfoLock.Unlock()
} }
// GetNodeInfo returns a NodeInfo which datacenter, vm and vc server ip address. // GetNodeInfo returns a NodeInfo which datacenter, vm and vc server ip address.

View File

@ -32,12 +32,13 @@ import (
"fmt" "fmt"
"path/filepath"
"github.com/vmware/govmomi/vim25/mo" "github.com/vmware/govmomi/vim25/mo"
"k8s.io/api/core/v1" "k8s.io/api/core/v1"
k8stypes "k8s.io/apimachinery/pkg/types" k8stypes "k8s.io/apimachinery/pkg/types"
"k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vclib" "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vclib"
"k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers" "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers"
"path/filepath"
) )
const ( const (
@ -194,13 +195,18 @@ func getSharedDatastoresInK8SCluster(ctx context.Context, dc *vclib.Datacenter,
return nil, fmt.Errorf(msg) return nil, fmt.Errorf(msg)
} }
var sharedDatastores []*vclib.DatastoreInfo var sharedDatastores []*vclib.DatastoreInfo
for index, nodeVmDetail := range nodeVmDetails { for _, nodeVmDetail := range nodeVmDetails {
glog.V(9).Infof("Getting accessible datastores for node %s", nodeVmDetail.NodeName) glog.V(9).Infof("Getting accessible datastores for node %s", nodeVmDetail.NodeName)
accessibleDatastores, err := getAccessibleDatastores(ctx, &nodeVmDetail, nodeManager) accessibleDatastores, err := getAccessibleDatastores(ctx, &nodeVmDetail, nodeManager)
if err != nil { if err != nil {
if err == vclib.ErrNoVMFound {
glog.V(9).Infof("Got NoVMFound error for node %s", nodeVmDetail.NodeName)
continue
}
return nil, err return nil, err
} }
if index == 0 {
if len(sharedDatastores) == 0 {
sharedDatastores = accessibleDatastores sharedDatastores = accessibleDatastores
} else { } else {
sharedDatastores = intersect(sharedDatastores, accessibleDatastores) sharedDatastores = intersect(sharedDatastores, accessibleDatastores)