Merge pull request #46486 from NickrenREN/pv-provisioner-check

Automatic merge from submit-queue

Optimize provisioner plugin result check logic

If err is not returned by findProvisionablePlugin(...), storageClass is certainly not nil


**Release note**:

```release-note
NONE
```
This commit is contained in:
Kubernetes Submit Queue 2017-05-29 05:31:38 -07:00 committed by GitHub
commit c77b74e328

View File

@ -1259,28 +1259,22 @@ func (ctrl *PersistentVolumeController) provisionClaimOperation(claimObj interfa
return return
} }
if storageClass != nil { // Add provisioner annotation so external provisioners know when to start
// Add provisioner annotation so external provisioners know when to start newClaim, err := ctrl.setClaimProvisioner(claim, storageClass)
newClaim, err := ctrl.setClaimProvisioner(claim, storageClass) if err != nil {
if err != nil { // Save failed, the controller will retry in the next sync
// Save failed, the controller will retry in the next sync glog.V(2).Infof("error saving claim %s: %v", claimToClaimKey(claim), err)
glog.V(2).Infof("error saving claim %s: %v", claimToClaimKey(claim), err) return
return
}
claim = newClaim
} }
claim = newClaim
if plugin == nil { if plugin == nil {
// findProvisionablePlugin returned no error nor plugin. // findProvisionablePlugin returned no error nor plugin.
// This means that an unknown provisioner is requested. Report an event // This means that an unknown provisioner is requested. Report an event
// and wait for the external provisioner // and wait for the external provisioner
if storageClass != nil { msg := fmt.Sprintf("waiting for a volume to be created, either by external provisioner %q or manually created by system administrator", storageClass.Provisioner)
msg := fmt.Sprintf("waiting for a volume to be created, either by external provisioner %q or manually created by system administrator", storageClass.Provisioner) ctrl.eventRecorder.Event(claim, v1.EventTypeNormal, "ExternalProvisioning", msg)
ctrl.eventRecorder.Event(claim, v1.EventTypeNormal, "ExternalProvisioning", msg) glog.V(3).Infof("provisioning claim %q: %s", claimToClaimKey(claim), msg)
glog.V(3).Infof("provisioning claim %q: %s", claimToClaimKey(claim), msg)
} else {
glog.V(3).Infof("cannot find storage class for claim %q", claimToClaimKey(claim))
}
return return
} }