@@ -3,13 +3,69 @@ package nodes
3
3
import (
4
4
"github.com/gonum/graph"
5
5
6
+ kapisext "k8s.io/kubernetes/pkg/apis/extensions"
7
+
6
8
osgraph "github.com/openshift/origin/pkg/api/graph"
7
9
kubegraph "github.com/openshift/origin/pkg/api/kubegraph/nodes"
8
- depoyapi "github.com/openshift/origin/pkg/apps/apis/apps"
10
+ deployapi "github.com/openshift/origin/pkg/apps/apis/apps"
9
11
)
10
12
13
+ // EnsureDaemonSetNode adds the provided daemon set to the graph if it does not exist
14
+ func EnsureDaemonSetNode (g osgraph.MutableUniqueGraph , ds * kapisext.DaemonSet ) * DaemonSetNode {
15
+ dsName := DaemonSetNodeName (ds )
16
+ dsNode := osgraph .EnsureUnique (
17
+ g ,
18
+ dsName ,
19
+ func (node osgraph.Node ) graph.Node {
20
+ return & DaemonSetNode {Node : node , DaemonSet : ds , IsFound : true }
21
+ },
22
+ ).(* DaemonSetNode )
23
+
24
+ podTemplateSpecNode := kubegraph .EnsurePodTemplateSpecNode (g , & ds .Spec .Template , ds .Namespace , dsName )
25
+ g .AddEdge (dsNode , podTemplateSpecNode , osgraph .ContainsEdgeKind )
26
+
27
+ return dsNode
28
+ }
29
+
30
+ func FindOrCreateSyntheticDaemonSetNode (g osgraph.MutableUniqueGraph , ds * kapisext.DaemonSet ) * DaemonSetNode {
31
+ return osgraph .EnsureUnique (
32
+ g ,
33
+ DaemonSetNodeName (ds ),
34
+ func (node osgraph.Node ) graph.Node {
35
+ return & DaemonSetNode {Node : node , DaemonSet : ds , IsFound : false }
36
+ },
37
+ ).(* DaemonSetNode )
38
+ }
39
+
40
+ // EnsureDeploymentNode adds the provided upstream deployment to the graph if it does not exist
41
+ func EnsureDeploymentNode (g osgraph.MutableUniqueGraph , deployment * kapisext.Deployment ) * DeploymentNode {
42
+ deploymentName := DeploymentNodeName (deployment )
43
+ deploymentNode := osgraph .EnsureUnique (
44
+ g ,
45
+ deploymentName ,
46
+ func (node osgraph.Node ) graph.Node {
47
+ return & DeploymentNode {Node : node , Deployment : deployment , IsFound : true }
48
+ },
49
+ ).(* DeploymentNode )
50
+
51
+ podTemplateSpecNode := kubegraph .EnsurePodTemplateSpecNode (g , & deployment .Spec .Template , deployment .Namespace , deploymentName )
52
+ g .AddEdge (deploymentNode , podTemplateSpecNode , osgraph .ContainsEdgeKind )
53
+
54
+ return deploymentNode
55
+ }
56
+
57
+ func FindOrCreateSyntheticDeploymentNode (g osgraph.MutableUniqueGraph , deployment * kapisext.Deployment ) * DeploymentNode {
58
+ return osgraph .EnsureUnique (
59
+ g ,
60
+ DeploymentNodeName (deployment ),
61
+ func (node osgraph.Node ) graph.Node {
62
+ return & DeploymentNode {Node : node , Deployment : deployment , IsFound : false }
63
+ },
64
+ ).(* DeploymentNode )
65
+ }
66
+
11
67
// EnsureDeploymentConfigNode adds the provided deployment config to the graph if it does not exist
12
- func EnsureDeploymentConfigNode (g osgraph.MutableUniqueGraph , dc * depoyapi .DeploymentConfig ) * DeploymentConfigNode {
68
+ func EnsureDeploymentConfigNode (g osgraph.MutableUniqueGraph , dc * deployapi .DeploymentConfig ) * DeploymentConfigNode {
13
69
dcName := DeploymentConfigNodeName (dc )
14
70
dcNode := osgraph .EnsureUnique (
15
71
g ,
@@ -27,7 +83,7 @@ func EnsureDeploymentConfigNode(g osgraph.MutableUniqueGraph, dc *depoyapi.Deplo
27
83
return dcNode
28
84
}
29
85
30
- func FindOrCreateSyntheticDeploymentConfigNode (g osgraph.MutableUniqueGraph , dc * depoyapi .DeploymentConfig ) * DeploymentConfigNode {
86
+ func FindOrCreateSyntheticDeploymentConfigNode (g osgraph.MutableUniqueGraph , dc * deployapi .DeploymentConfig ) * DeploymentConfigNode {
31
87
return osgraph .EnsureUnique (
32
88
g ,
33
89
DeploymentConfigNodeName (dc ),
@@ -36,3 +92,30 @@ func FindOrCreateSyntheticDeploymentConfigNode(g osgraph.MutableUniqueGraph, dc
36
92
},
37
93
).(* DeploymentConfigNode )
38
94
}
95
+
96
+ // EnsureReplicaSetNode adds the provided replica set to the graph if it does not exist
97
+ func EnsureReplicaSetNode (g osgraph.MutableUniqueGraph , rs * kapisext.ReplicaSet ) * ReplicaSetNode {
98
+ rsName := ReplicaSetNodeName (rs )
99
+ rsNode := osgraph .EnsureUnique (
100
+ g ,
101
+ rsName ,
102
+ func (node osgraph.Node ) graph.Node {
103
+ return & ReplicaSetNode {Node : node , ReplicaSet : rs , IsFound : true }
104
+ },
105
+ ).(* ReplicaSetNode )
106
+
107
+ podTemplateSpecNode := kubegraph .EnsurePodTemplateSpecNode (g , & rs .Spec .Template , rs .Namespace , rsName )
108
+ g .AddEdge (rsNode , podTemplateSpecNode , osgraph .ContainsEdgeKind )
109
+
110
+ return rsNode
111
+ }
112
+
113
+ func FindOrCreateSyntheticReplicaSetNode (g osgraph.MutableUniqueGraph , rs * kapisext.ReplicaSet ) * ReplicaSetNode {
114
+ return osgraph .EnsureUnique (
115
+ g ,
116
+ ReplicaSetNodeName (rs ),
117
+ func (node osgraph.Node ) graph.Node {
118
+ return & ReplicaSetNode {Node : node , ReplicaSet : rs , IsFound : false }
119
+ },
120
+ ).(* ReplicaSetNode )
121
+ }
0 commit comments