mirror of
https://github.com/weaveworks/scope.git
synced 2026-07-21 22:36:39 +00:00
Refactor edge frontend code and reporter
- Refactor dotted edge logic. - Change Storage view to show storage components as well as all the pods. - Sentence case storage related variables. Signed-off-by: Satyam Zode <satyam.zode@openebs.io>
This commit is contained in:
@@ -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},
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
@@ -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 === '<persistent_volume>' || id === '<storage_class>' || id === '<persistent_volume_claim>') {
|
||||
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;<storage_class>---nodeB;<persistent_volume_claim>"
|
||||
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);
|
||||
|
||||
@@ -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{
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user