mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 20:24:09 +00:00
Merge pull request #50208 from FengyunPan/fix-volume-detach
Automatic merge from submit-queue Ignore the available volume when calling DetachDisk Fix #50207 If user detachs the volume by nova in openstack env, volume becomes available. If nova instance is been deleted, nova will detach it automatically and become available. So the "available" is fine since that means the volume is detached from instance already. **Release note**: ```release-note NONE ```
This commit is contained in:
commit
702f23e977
@ -215,11 +215,7 @@ func (os *OpenStack) AttachDisk(instanceID, volumeID string) (string, error) {
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
if volume.Status != VolumeAvailableStatus {
|
||||
errmsg := fmt.Sprintf("volume %s status is %s, not %s, can not be attached to instance %s.", volume.Name, volume.Status, VolumeAvailableStatus, instanceID)
|
||||
glog.Errorf(errmsg)
|
||||
return "", errors.New(errmsg)
|
||||
}
|
||||
|
||||
cClient, err := os.NewComputeV2()
|
||||
if err != nil {
|
||||
return "", err
|
||||
@ -256,6 +252,12 @@ func (os *OpenStack) DetachDisk(instanceID, volumeID string) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if volume.Status == VolumeAvailableStatus {
|
||||
// "available" is fine since that means the volume is detached from instance already.
|
||||
glog.V(2).Infof("volume: %s has been detached from compute: %s ", volume.ID, instanceID)
|
||||
return nil
|
||||
}
|
||||
|
||||
if volume.Status != VolumeInUseStatus {
|
||||
errmsg := fmt.Sprintf("can not detach volume %s, its status is %s.", volume.Name, volume.Status)
|
||||
glog.Errorf(errmsg)
|
||||
|
Loading…
Reference in New Issue
Block a user