-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathloadbalancer.go
More file actions
76 lines (64 loc) · 2.94 KB
/
loadbalancer.go
File metadata and controls
76 lines (64 loc) · 2.94 KB
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package stackit
import (
"context"
"github.com/google/uuid"
"github.com/stackitcloud/stackit-sdk-go/services/loadbalancer"
)
func (cl lbClient) GetLoadBalancer(ctx context.Context, projectID, name string) (*loadbalancer.LoadBalancer, error) {
lb, err := cl.client.GetLoadBalancerExecute(ctx, projectID, cl.region, name)
if isOpenAPINotFound(err) {
return lb, ErrorNotFound
}
return lb, err
}
// DeleteLoadBalancer returns no error if the load balancer doesn't exist.
func (cl lbClient) DeleteLoadBalancer(ctx context.Context, projectID, name string) error {
_, err := cl.client.DeleteLoadBalancerExecute(ctx, projectID, cl.region, name)
return err
}
// CreateLoadBalancer returns ErrorNotFound if the project is not enabled.
func (cl lbClient) CreateLoadBalancer(ctx context.Context, projectID string, create *loadbalancer.CreateLoadBalancerPayload) (*loadbalancer.LoadBalancer, error) {
lb, err := cl.client.CreateLoadBalancer(ctx, projectID, cl.region).
CreateLoadBalancerPayload(*create).
XRequestID(uuid.NewString()).
Execute()
if isOpenAPINotFound(err) {
return lb, ErrorNotFound
}
return lb, err
}
func (cl lbClient) UpdateLoadBalancer(ctx context.Context, projectID, name string, update *loadbalancer.UpdateLoadBalancerPayload) (
*loadbalancer.LoadBalancer, error,
) {
return cl.client.UpdateLoadBalancer(ctx, projectID, cl.region, name).
UpdateLoadBalancerPayload(*update).
Execute()
}
func (cl lbClient) UpdateTargetPool(ctx context.Context, projectID, name, targetPoolName string, payload loadbalancer.UpdateTargetPoolPayload) error {
_, err := cl.client.UpdateTargetPool(ctx, projectID, cl.region, name, targetPoolName).
UpdateTargetPoolPayload(payload).
Execute()
return err
}
func (cl lbClient) ListCredentials(ctx context.Context, projectID string) (*loadbalancer.ListCredentialsResponse, error) {
return cl.client.ListCredentialsExecute(ctx, projectID, cl.region)
}
func (cl lbClient) GetCredentials(ctx context.Context, projectID, credentialsRef string) (*loadbalancer.GetCredentialsResponse, error) {
return cl.client.GetCredentialsExecute(ctx, projectID, cl.region, credentialsRef)
}
func (cl lbClient) CreateCredentials(ctx context.Context, projectID string, payload loadbalancer.CreateCredentialsPayload) (*loadbalancer.CreateCredentialsResponse, error) { //nolint:lll // looks weird when shortened
return cl.client.CreateCredentials(ctx, projectID, cl.region).
CreateCredentialsPayload(payload).
XRequestID(uuid.NewString()).
Execute()
}
func (cl lbClient) UpdateCredentials(ctx context.Context, projectID, credentialsRef string, payload loadbalancer.UpdateCredentialsPayload) error {
_, err := cl.client.UpdateCredentials(ctx, projectID, cl.region, credentialsRef).
UpdateCredentialsPayload(payload).
Execute()
return err
}
func (cl lbClient) DeleteCredentials(ctx context.Context, projectID, credentialsRef string) error {
_, err := cl.client.DeleteCredentials(ctx, projectID, cl.region, credentialsRef).Execute()
return err
}