Skip to content

Commit 3647e2b

Browse files
Merge pull request #17983 from mfojtik/oc-status-dc
Automatic merge from submit-queue. cli: fix nil pointer panic in dc status Fixes: #17977 This change is weird as you should not be able to create a DC without template, but I haven't looked deeply on how the graph is constructed and whether this case can happen. We protect from nil template in other function.
2 parents b25521a + 6c6e5ff commit 3647e2b

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

pkg/apps/graph/edges.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package graph
22

33
import (
4+
"github.com/golang/glog"
45
"github.com/gonum/graph"
56

67
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -92,7 +93,12 @@ func AddAllDeploymentEdges(g osgraph.MutableUniqueGraph) {
9293
}
9394

9495
func AddVolumeClaimEdges(g osgraph.Graph, dcNode *appsgraph.DeploymentConfigNode) {
95-
for _, volume := range dcNode.DeploymentConfig.Spec.Template.Spec.Volumes {
96+
podTemplate := dcNode.DeploymentConfig.Spec.Template
97+
if podTemplate == nil {
98+
glog.Warningf("DeploymentConfig %s/%s template should not be empty", dcNode.DeploymentConfig.Namespace, dcNode.DeploymentConfig.Name)
99+
return
100+
}
101+
for _, volume := range podTemplate.Spec.Volumes {
96102
source := volume.VolumeSource
97103
if source.PersistentVolumeClaim == nil {
98104
continue
@@ -113,7 +119,7 @@ func AddVolumeClaimEdges(g osgraph.Graph, dcNode *appsgraph.DeploymentConfigNode
113119

114120
func AddAllVolumeClaimEdges(g osgraph.Graph) {
115121
for _, node := range g.Nodes() {
116-
if dcNode, ok := node.(*appsgraph.DeploymentConfigNode); ok {
122+
if dcNode, ok := node.(*appsgraph.DeploymentConfigNode); ok && dcNode.IsFound {
117123
AddVolumeClaimEdges(g, dcNode)
118124
}
119125
}

0 commit comments

Comments
 (0)