Create PredicateFailureReason, modify scheduler predicate interface.
This commit is contained in:
@@ -693,7 +693,7 @@ func (dsc *DaemonSetsController) nodeShouldRunDaemonPod(node *api.Node, ds *exte
|
||||
if pod.Status.Phase == api.PodSucceeded || pod.Status.Phase == api.PodFailed {
|
||||
continue
|
||||
}
|
||||
// ignore pods that belong to the daemonset when taking into account wheter
|
||||
// ignore pods that belong to the daemonset when taking into account whether
|
||||
// a daemonset should bind to a node.
|
||||
if pds := dsc.getPodDaemonSet(pod); pds != nil && ds.Name == pds.Name {
|
||||
continue
|
||||
@@ -703,18 +703,12 @@ func (dsc *DaemonSetsController) nodeShouldRunDaemonPod(node *api.Node, ds *exte
|
||||
|
||||
nodeInfo := schedulercache.NewNodeInfo(pods...)
|
||||
nodeInfo.SetNode(node)
|
||||
fit, err := predicates.GeneralPredicates(newPod, nil, nodeInfo)
|
||||
fit, reasons, err := predicates.GeneralPredicates(newPod, nil, nodeInfo)
|
||||
if err != nil {
|
||||
if re, ok := err.(*predicates.PredicateFailureError); ok {
|
||||
message := re.Error()
|
||||
glog.V(2).Infof("Predicate failed on Pod: %s, for reason: %v", newPod.Name, message)
|
||||
}
|
||||
if re, ok := err.(*predicates.InsufficientResourceError); ok {
|
||||
message := re.Error()
|
||||
glog.V(2).Infof("Predicate failed on Pod: %s, for reason: %v", newPod.Name, message)
|
||||
}
|
||||
message := fmt.Sprintf("GeneralPredicates failed due to %v.", err)
|
||||
glog.Warningf("Predicate failed on Pod %s - %s", newPod.Name, message)
|
||||
glog.Warningf("GeneralPredicates failed on pod %s due to unexpected error: %v", newPod.Name, err)
|
||||
}
|
||||
for _, r := range reasons {
|
||||
glog.V(2).Infof("GeneralPredicates failed on pod %s for reason: %v", newPod.Name, r.GetReason())
|
||||
}
|
||||
return fit
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user