-
Notifications
You must be signed in to change notification settings - Fork 134
/
with_connection.go
38 lines (32 loc) · 1.21 KB
/
with_connection.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
package client
import (
"google.golang.org/grpc"
"github.com/armadaproject/armada/internal/scheduler/schedulerobjects"
"github.com/armadaproject/armada/pkg/api"
)
func WithConnection(apiConnectionDetails *ApiConnectionDetails, action func(*grpc.ClientConn) error) error {
conn, err := CreateApiConnection(apiConnectionDetails)
if err != nil {
return err
}
defer conn.Close()
return action(conn)
}
func WithSubmitClient(apiConnectionDetails *ApiConnectionDetails, action func(api.SubmitClient) error) error {
return WithConnection(apiConnectionDetails, func(cc *grpc.ClientConn) error {
client := api.NewSubmitClient(cc)
return action(client)
})
}
func WithEventClient(apiConnectionDetails *ApiConnectionDetails, action func(api.EventClient) error) error {
return WithConnection(apiConnectionDetails, func(cc *grpc.ClientConn) error {
client := api.NewEventClient(cc)
return action(client)
})
}
func WithSchedulerReportingClient(apiConnectionDetails *ApiConnectionDetails, action func(schedulerobjects.SchedulerReportingClient) error) error {
return WithConnection(apiConnectionDetails, func(cc *grpc.ClientConn) error {
client := schedulerobjects.NewSchedulerReportingClient(cc)
return action(client)
})
}