-
Notifications
You must be signed in to change notification settings - Fork 1
/
providerinteregator.go
46 lines (36 loc) · 1.18 KB
/
providerinteregator.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
34
35
36
37
38
39
40
41
42
43
44
45
46
package providerinterregationreport
import (
"fmt"
"github.com/NorskHelsenett/ror/pkg/kubernetes/interregators/clusterinterregator"
"github.com/NorskHelsenett/ror/pkg/models/providers"
v1 "k8s.io/api/core/v1"
)
type InterregationReport struct {
Nodes []v1.Node
Provider providers.ProviderType
ClusterName string
Workspace string
Datacenter string
}
func (c *InterregationReport) GetProvider() providers.ProviderType {
return c.Provider
}
// InterregateCluster interregates the cluster and returns a report
// containing the provider, cluster name, workspace and datacenter
// of the cluster
//
// Parameters:
// - nodes []v1.Node: the nodes in the cluster v1.Node from k8s.io/api/core/v1
func NewInterregationReport(nodes []v1.Node) (*InterregationReport, error) {
report := InterregationReport{}
if len(nodes) == 0 {
return nil, fmt.Errorf("no nodes found")
}
report.Nodes = nodes
interregator := clusterinterregator.NewClusterInterregator(nodes)
report.Provider = interregator.GetProvider()
report.ClusterName = interregator.GetClusterName()
report.Workspace = interregator.GetWorkspace()
report.Datacenter = interregator.GetDatacenter()
return &report, nil
}