diff --git a/app/api_topologies.go b/app/api_topologies.go index 5d442f6a5..69b5d5f4d 100644 --- a/app/api_topologies.go +++ b/app/api_topologies.go @@ -51,8 +51,8 @@ var ( ID: "storage", Default: "hide", Options: []APITopologyOption{ - {Value: "show", Label: "Show Storage", filter: render.IsVolumesComponent, filterPseudo: false}, - {Value: "hide", Label: "Hide Storage", filter: render.IsPodComponent, filterPseudo: false}, + {Value: "show", Label: "Show storage", filter: nil, filterPseudo: false}, + {Value: "hide", Label: "Hide storage", filter: render.IsPodComponent, filterPseudo: false}, }, } ) diff --git a/client/app/scripts/charts/edge.js b/client/app/scripts/charts/edge.js index 29b812f4b..c4f9d6b98 100644 --- a/client/app/scripts/charts/edge.js +++ b/client/app/scripts/charts/edge.js @@ -5,20 +5,28 @@ import classNames from 'classnames'; import { enterEdge, leaveEdge } from '../actions/app-actions'; import { encodeIdAttribute, decodeIdAttribute } from '../utils/dom-utils'; +function isStorageComponent(id) { + if (id === '' || id === '' || id === '') { + return true; + } + return false; +} +// getAdjacencyClass takes id which contains information about edge as a topology +// of parent and child node. +// For example: id is of form "nodeA;---nodeB;" function getAdjacencyClass(id) { const topologyId = id.split('---'); - const from = topologyId[0].split(';'); - const to = topologyId[1].split(';'); - if (from[1] !== undefined && to[1] !== undefined) { - from[1] = from[1].slice(1, -1); - to[1] = to[1].slice(1, -1); - if ((from[1] === 'persistent_volume' || from[1] === 'storage_class' || from[1] === 'persistent_volume_claim') || (to[1] === 'persistent_volume' || to[1] === 'storage_class' || to[1] === 'persistent_volume_claim')) { + const fromNode = topologyId[0].split(';'); + const toNode = topologyId[1].split(';'); + if (fromNode[1] !== undefined && toNode[1] !== undefined) { + if (isStorageComponent(fromNode[1]) || isStorageComponent(toNode[1])) { return 'link-storage'; } } return 'link-none'; } + class Edge extends React.Component { constructor(props, context) { super(props, context); diff --git a/probe/kubernetes/reporter.go b/probe/kubernetes/reporter.go index 8e8f9e6f9..8dfe1785c 100644 --- a/probe/kubernetes/reporter.go +++ b/probe/kubernetes/reporter.go @@ -108,20 +108,18 @@ var ( PersistentVolumeMetadataTemplates = report.MetadataTemplates{ NodeType: {ID: NodeType, Label: "Type", From: report.FromLatest, Priority: 1}, - VolumeClaim: {ID: VolumeClaim, Label: "Volume Claim", From: report.FromLatest, Priority: 2}, - StorageClassName: {ID: StorageClassName, Label: "Storage Class", From: report.FromLatest, Priority: 3}, - ReclaimPolicy: {ID: ReclaimPolicy, Label: "Reclaim Policy", From: report.FromLatest, Priority: 4}, - AccessModes: {ID: AccessModes, Label: "Access Modes", From: report.FromLatest, Priority: 5}, + VolumeClaim: {ID: VolumeClaim, Label: "Volume claim", From: report.FromLatest, Priority: 2}, + StorageClassName: {ID: StorageClassName, Label: "Storage class", From: report.FromLatest, Priority: 3}, + AccessModes: {ID: AccessModes, Label: "Access modes", From: report.FromLatest, Priority: 5}, Status: {ID: Status, Label: "Status", From: report.FromLatest, Priority: 6}, - Message: {ID: Message, Label: "Message", From: report.FromLatest, Priority: 7}, } PersistentVolumeClaimMetadataTemplates = report.MetadataTemplates{ - NodeType: {ID: NodeType, Label: "Type", From: report.FromLatest, Priority: 1}, - Namespace: {ID: Namespace, Label: "Namespace", From: report.FromLatest, Priority: 2}, - Status: {ID: Status, Label: "Status", From: report.FromLatest, Priority: 3}, - VolumeName: {ID: VolumeName, Label: "Volume", From: report.FromLatest, Priority: 4}, - AccessModes: {ID: AccessModes, Label: "Access Modes", From: report.FromLatest, Priority: 5}, + NodeType: {ID: NodeType, Label: "Type", From: report.FromLatest, Priority: 1}, + Namespace: {ID: Namespace, Label: "Namespace", From: report.FromLatest, Priority: 2}, + Status: {ID: Status, Label: "Status", From: report.FromLatest, Priority: 3}, + VolumeName: {ID: VolumeName, Label: "Volume", From: report.FromLatest, Priority: 4}, + StorageClassName: {ID: StorageClassName, Label: "Storage class", From: report.FromLatest, Priority: 5}, } StorageClassMetadataTemplates = report.MetadataTemplates{ diff --git a/render/filters.go b/render/filters.go index 385f8f21c..eb682ee1e 100644 --- a/render/filters.go +++ b/render/filters.go @@ -128,25 +128,6 @@ func IsConnected(node report.Node) bool { return ok } -// IsVolumesComponent check whether given node is PV, PVC, SC or not -func IsVolumesComponent(node report.Node) bool { - var storageComponent bool - if node.Topology == "persistent_volume" || node.Topology == "persistent_volume_claim" || node.Topology == "storage_class" { - storageComponent = true - } - if node.Topology == "pod" { - volumeClaim, ok := node.Latest.Lookup(kubernetes.VolumeClaim) - if !ok { - storageComponent = false - } else if volumeClaim == "" { - storageComponent = false - } else { - storageComponent = true - } - } - return storageComponent -} - // IsPodComponent check whether given node is everything but PV, PVC, SC func IsPodComponent(node report.Node) bool { var ok bool