-
Notifications
You must be signed in to change notification settings - Fork 7
/
loadbalancer.go
23 lines (20 loc) · 1.01 KB
/
loadbalancer.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package format
import (
"github.com/UpCloudLtd/upcloud-go-api/v8/upcloud"
"github.com/jedib0t/go-pretty/v6/text"
)
// loadBalancerOperationalStateColour maps load balancer states to colours
func loadBalancerOperationalStateColour(state upcloud.LoadBalancerOperationalState) text.Colors {
switch state {
case upcloud.LoadBalancerOperationalStateRunning:
return text.Colors{text.FgGreen}
case upcloud.LoadBalancerOperationalStateCheckup, upcloud.LoadBalancerOperationalStatePending, upcloud.LoadBalancerOperationalStateSetupAgent, upcloud.LoadBalancerOperationalStateSetupDNS, upcloud.LoadBalancerOperationalStateSetupLB, upcloud.LoadBalancerOperationalStateSetupNetwork, upcloud.LoadBalancerOperationalStateSetupServer:
return text.Colors{text.FgYellow}
default:
return text.Colors{text.FgHiBlack}
}
}
// LoadBalancerState implements Format function for load-balancer states
func LoadBalancerState(val interface{}) (text.Colors, string, error) {
return usingColorFunction(loadBalancerOperationalStateColour, val)
}