-
Notifications
You must be signed in to change notification settings - Fork 71
/
Copy pathadmission_adapter.go
38 lines (30 loc) · 1.02 KB
/
admission_adapter.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 backend
import (
"context"
"github.com/grafana/grafana-plugin-sdk-go/genproto/pluginv2"
)
// admissionSDKAdapter adapter between low level plugin protocol and SDK interfaces.
type admissionSDKAdapter struct {
handler AdmissionHandler
}
func newAdmissionSDKAdapter(handler AdmissionHandler) *admissionSDKAdapter {
return &admissionSDKAdapter{
handler: handler,
}
}
func (a *admissionSDKAdapter) ValidateAdmission(ctx context.Context, req *pluginv2.AdmissionRequest) (*pluginv2.ValidationResponse, error) {
parsedReq := FromProto().AdmissionRequest(req)
resp, err := a.handler.ValidateAdmission(ctx, parsedReq)
if err != nil {
return nil, err
}
return ToProto().ValidationResponse(resp), nil
}
func (a *admissionSDKAdapter) MutateAdmission(ctx context.Context, req *pluginv2.AdmissionRequest) (*pluginv2.MutationResponse, error) {
parsedReq := FromProto().AdmissionRequest(req)
resp, err := a.handler.MutateAdmission(ctx, parsedReq)
if err != nil {
return nil, err
}
return ToProto().MutationResponse(resp), nil
}