mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-01 07:47:56 +00:00
Merge pull request #25179 from swagiaal/get-cloud-retries
Move getCloudProvider retries to getCloudProvider()
This commit is contained in:
commit
f6a68469f0
@ -166,18 +166,12 @@ func (gceutil *GCEDiskUtil) CreateVolume(c *gcePersistentDiskProvisioner) (strin
|
|||||||
// Attaches the specified persistent disk device to node, verifies that it is attached, and retries if it fails.
|
// Attaches the specified persistent disk device to node, verifies that it is attached, and retries if it fails.
|
||||||
func attachDiskAndVerify(b *gcePersistentDiskMounter, sdBeforeSet sets.String) (string, error) {
|
func attachDiskAndVerify(b *gcePersistentDiskMounter, sdBeforeSet sets.String) (string, error) {
|
||||||
devicePaths := getDiskByIdPaths(b.gcePersistentDisk)
|
devicePaths := getDiskByIdPaths(b.gcePersistentDisk)
|
||||||
var gceCloud *gcecloud.GCECloud
|
gceCloud, err := getCloudProvider(b.gcePersistentDisk.plugin)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
for numRetries := 0; numRetries < maxRetries; numRetries++ {
|
for numRetries := 0; numRetries < maxRetries; numRetries++ {
|
||||||
var err error
|
|
||||||
if gceCloud == nil {
|
|
||||||
gceCloud, err = getCloudProvider(b.gcePersistentDisk.plugin)
|
|
||||||
if err != nil || gceCloud == nil {
|
|
||||||
// Retry on error. See issue #11321
|
|
||||||
glog.Errorf("Error getting GCECloudProvider while detaching PD %q: %v", b.pdName, err)
|
|
||||||
time.Sleep(errorSleepDuration)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if numRetries > 0 {
|
if numRetries > 0 {
|
||||||
glog.Warningf("Retrying attach for GCE PD %q (retry count=%v).", b.pdName, numRetries)
|
glog.Warningf("Retrying attach for GCE PD %q (retry count=%v).", b.pdName, numRetries)
|
||||||
@ -240,18 +234,13 @@ func detachDiskAndVerify(c *gcePersistentDiskUnmounter) {
|
|||||||
glog.V(5).Infof("detachDiskAndVerify(...) for pd %q. Awake and ready to execute.", c.pdName)
|
glog.V(5).Infof("detachDiskAndVerify(...) for pd %q. Awake and ready to execute.", c.pdName)
|
||||||
|
|
||||||
devicePaths := getDiskByIdPaths(c.gcePersistentDisk)
|
devicePaths := getDiskByIdPaths(c.gcePersistentDisk)
|
||||||
var gceCloud *gcecloud.GCECloud
|
gceCloud, err := getCloudProvider(c.gcePersistentDisk.plugin)
|
||||||
|
if err != nil {
|
||||||
|
glog.Errorf("Failed to get GCECloudProvider while detaching %v ", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
for numRetries := 0; numRetries < maxRetries; numRetries++ {
|
for numRetries := 0; numRetries < maxRetries; numRetries++ {
|
||||||
var err error
|
|
||||||
if gceCloud == nil {
|
|
||||||
gceCloud, err = getCloudProvider(c.gcePersistentDisk.plugin)
|
|
||||||
if err != nil || gceCloud == nil {
|
|
||||||
// Retry on error. See issue #11321
|
|
||||||
glog.Errorf("Error getting GCECloudProvider while detaching PD %q: %v", c.pdName, err)
|
|
||||||
time.Sleep(errorSleepDuration)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if numRetries > 0 {
|
if numRetries > 0 {
|
||||||
glog.Warningf("Retrying detach for GCE PD %q (retry count=%v).", c.pdName, numRetries)
|
glog.Warningf("Retrying detach for GCE PD %q (retry count=%v).", c.pdName, numRetries)
|
||||||
@ -349,13 +338,21 @@ func getCloudProvider(plugin *gcePersistentDiskPlugin) (*gcecloud.GCECloud, erro
|
|||||||
return nil, fmt.Errorf("Failed to get GCE Cloud Provider. plugin.host object is nil.")
|
return nil, fmt.Errorf("Failed to get GCE Cloud Provider. plugin.host object is nil.")
|
||||||
}
|
}
|
||||||
|
|
||||||
cloudProvider := plugin.host.GetCloudProvider()
|
var err error
|
||||||
gceCloudProvider, ok := cloudProvider.(*gcecloud.GCECloud)
|
for numRetries := 0; numRetries < maxRetries; numRetries++ {
|
||||||
if !ok || gceCloudProvider == nil {
|
cloudProvider := plugin.host.GetCloudProvider()
|
||||||
return nil, fmt.Errorf("Failed to get GCE Cloud Provider. plugin.host.GetCloudProvider returned %v instead", cloudProvider)
|
gceCloudProvider, ok := cloudProvider.(*gcecloud.GCECloud)
|
||||||
|
if !ok || gceCloudProvider == nil {
|
||||||
|
// Retry on error. See issue #11321
|
||||||
|
glog.Errorf("Failed to get GCE Cloud Provider. plugin.host.GetCloudProvider returned %v instead", cloudProvider)
|
||||||
|
time.Sleep(errorSleepDuration)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
return gceCloudProvider, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return gceCloudProvider, nil
|
return nil, fmt.Errorf("Failed to get GCE GCECloudProvider with error %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Calls "udevadm trigger --action=change" for newly created "/dev/sd*" drives (exist only in after set).
|
// Calls "udevadm trigger --action=change" for newly created "/dev/sd*" drives (exist only in after set).
|
||||||
|
Loading…
Reference in New Issue
Block a user