/
storageclass.go
33 lines (28 loc) · 923 Bytes
/
storageclass.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package kubernetes
import (
"github.com/weaveworks/scope/report"
storagev1 "k8s.io/api/storage/v1"
)
// StorageClass represent kubernetes StorageClass interface
type StorageClass interface {
Meta
GetNode(probeID string) report.Node
}
// storageClass represents kubernetes storage classes
type storageClass struct {
*storagev1.StorageClass
Meta
}
// NewStorageClass returns new Storage Class type
func NewStorageClass(p *storagev1.StorageClass) StorageClass {
return &storageClass{StorageClass: p, Meta: meta{p.ObjectMeta}}
}
// GetNode returns StorageClass as Node
func (p *storageClass) GetNode(probeID string) report.Node {
return p.MetaNode(report.MakeStorageClassNodeID(p.UID())).WithLatests(map[string]string{
NodeType: "Storage Class",
Name: p.GetName(),
Provisioner: p.Provisioner,
report.ControlProbeID: probeID,
}).WithLatestActiveControls(Describe)
}