Revert "controller/volume: simplify sync logic in syncBoundClaim"

This reverts commit 67787caeeb.
This commit is contained in:
Paul Morie 2016-07-30 14:00:09 -04:00
parent f0fa9e588f
commit a6d0dc0529

View File

@ -258,19 +258,22 @@ func (ctrl *PersistentVolumeController) syncBoundClaim(claim *api.PersistentVolu
// [Unit test set 3] // [Unit test set 3]
if claim.Spec.VolumeName == "" { if claim.Spec.VolumeName == "" {
// Claim was bound before but not any more. // Claim was bound before but not any more.
_, err := ctrl.updateClaimPhaseWithEvent(claim, api.ClaimLost, api.EventTypeWarning, "ClaimLost", "Bound claim has lost reference to PersistentVolume. Data on the volume is lost!") if _, err := ctrl.updateClaimPhaseWithEvent(claim, api.ClaimLost, api.EventTypeWarning, "ClaimLost", "Bound claim has lost reference to PersistentVolume. Data on the volume is lost!"); err != nil {
return err return err
} }
return nil
}
obj, found, err := ctrl.volumes.store.GetByKey(claim.Spec.VolumeName) obj, found, err := ctrl.volumes.store.GetByKey(claim.Spec.VolumeName)
if err != nil { if err != nil {
return err return err
} }
if !found { if !found {
// Claim is bound to a non-existing volume. // Claim is bound to a non-existing volume.
_, err = ctrl.updateClaimPhaseWithEvent(claim, api.ClaimLost, api.EventTypeWarning, "ClaimLost", "Bound claim has lost its PersistentVolume. Data on the volume is lost!") if _, err = ctrl.updateClaimPhaseWithEvent(claim, api.ClaimLost, api.EventTypeWarning, "ClaimLost", "Bound claim has lost its PersistentVolume. Data on the volume is lost!"); err != nil {
return err return err
} }
return nil
} else {
volume, ok := obj.(*api.PersistentVolume) volume, ok := obj.(*api.PersistentVolume)
if !ok { if !ok {
return fmt.Errorf("Cannot convert object from volume cache to volume %q!?: %+v", claim.Spec.VolumeName, obj) return fmt.Errorf("Cannot convert object from volume cache to volume %q!?: %+v", claim.Spec.VolumeName, obj)
@ -288,8 +291,7 @@ func (ctrl *PersistentVolumeController) syncBoundClaim(claim *api.PersistentVolu
return err return err
} }
return nil return nil
} } else if volume.Spec.ClaimRef.UID == claim.UID {
if volume.Spec.ClaimRef.UID == claim.UID {
// All is well // All is well
// NOTE: syncPV can handle this so it can be left out. // NOTE: syncPV can handle this so it can be left out.
// NOTE: bind() call here will do nothing in most cases as // NOTE: bind() call here will do nothing in most cases as
@ -300,13 +302,16 @@ func (ctrl *PersistentVolumeController) syncBoundClaim(claim *api.PersistentVolu
return err return err
} }
return nil return nil
} } else {
// Claim is bound but volume has a different claimant. // Claim is bound but volume has a different claimant.
// Set the claim phase to 'Lost', which is a terminal // Set the claim phase to 'Lost', which is a terminal
// phase. // phase.
_, err = ctrl.updateClaimPhaseWithEvent(claim, api.ClaimLost, api.EventTypeWarning, "ClaimMisbound", "Two claims are bound to the same volume, this one is bound incorrectly") if _, err = ctrl.updateClaimPhaseWithEvent(claim, api.ClaimLost, api.EventTypeWarning, "ClaimMisbound", "Two claims are bound to the same volume, this one is bound incorrectly"); err != nil {
return err return err
}
return nil
}
}
} }
// syncVolume is the main controller method to decide what to do with a volume. // syncVolume is the main controller method to decide what to do with a volume.