本文整理汇总了Golang中github.com/openshift/origin/pkg/api/graph.Graph.OutboundEdges方法的典型用法代码示例。如果您正苦于以下问题:Golang Graph.OutboundEdges方法的具体用法?Golang Graph.OutboundEdges怎么用?Golang Graph.OutboundEdges使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/openshift/origin/pkg/api/graph.Graph
的用法示例。
在下文中一共展示了Graph.OutboundEdges方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: getImageStreamSize
func getImageStreamSize(g graph.Graph, node *imagegraph.ImageStreamNode) (int64, int, int) {
imageEdges := g.OutboundEdges(node, ImageStreamImageEdgeKind)
storage := int64(0)
images := len(imageEdges)
layers := 0
blobSet := sets.NewString()
for _, e := range imageEdges {
imageNode, ok := e.To().(*imagegraph.ImageNode)
if !ok {
continue
}
image := imageNode.Image
layers += len(image.DockerImageLayers)
// we're counting only unique layers per the entire stream
for _, layer := range image.DockerImageLayers {
if blobSet.Has(layer.Name) {
continue
}
blobSet.Insert(layer.Name)
storage += layer.LayerSize
}
if len(image.DockerImageConfig) > 0 && !blobSet.Has(image.DockerImageMetadata.ID) {
blobSet.Insert(image.DockerImageMetadata.ID)
storage += int64(len(image.DockerImageConfig))
}
}
return storage, images, layers
}
示例2: markParentsInGraph
func markParentsInGraph(g graph.Graph) {
imageNodes := getImageNodes(g.Nodes())
for _, in := range imageNodes {
// find image's top layer, should be just one
for _, e := range g.OutboundEdges(in, ImageTopLayerEdgeKind) {
layerNode, _ := e.To().(*imagegraph.ImageLayerNode)
// find image's containing this layer but not being their top layer
for _, ed := range g.InboundEdges(layerNode, ImageLayerEdgeKind) {
childNode, _ := ed.From().(*imagegraph.ImageNode)
if in.ID() == childNode.ID() {
// don't add self edge, otherwise gonum/graph will panic
continue
}
g.AddEdge(in, childNode, ParentImageEdgeKind)
}
// TODO: Find image's containing THIS layer being their top layer,
// this happens when image contents is not being changed.
// TODO: If two layers have exactly the same contents the current
// mechanism might trip over that as well. We should check for
// a series of layers when checking for parents.
}
}
}
示例3: hasControllerRefEdge
// hasControllerRefEdge returns true if a given node contains one or more "ManagedByController" outbound edges
func hasControllerRefEdge(g osgraph.Graph, node graph.Node) bool {
managedEdges := g.OutboundEdges(node, kubeedges.ManagedByControllerEdgeKind)
return len(managedEdges) > 0
}