func nodeExistsInCloudProvider(cloud cloudprovider.Interface, nodeName string) (bool, error) { instances, ok := cloud.Instances() if !ok { return false, fmt.Errorf("%v", ErrCloudInstance) } if _, err := instances.ExternalID(nodeName); err != nil { if err == cloudprovider.InstanceNotFound { return false, nil } return false, err } return true, nil }
// getNodeName returns the node name according to the cloud provider // if cloud provider is specified. Otherwise, returns the hostname of the node. func getNodeName(cloud cloudprovider.Interface, hostname string) (types.NodeName, error) { if cloud == nil { return types.NodeName(hostname), nil } instances, ok := cloud.Instances() if !ok { return "", fmt.Errorf("failed to get instances from cloud provider") } nodeName, err := instances.CurrentNodeName(hostname) if err != nil { return "", fmt.Errorf("error fetching current node name from cloud provider: %v", err) } glog.V(2).Infof("cloud provider determined current node name to be %s", nodeName) return nodeName, nil }