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:
Satyam Zode
2018-06-05 21:23:58 +05:30
parent 24741bec2a
commit d9bd17af8a
4 changed files with 24 additions and 37 deletions

View File

@@ -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},
},
}
)

View File

@@ -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);

View File

@@ -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{

View File

@@ -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