pkg/controllers/eventhandlers/vpc_association_policy.go (29 lines of code) (raw):
package eventhandlers
import (
"context"
"github.com/aws/aws-application-networking-k8s/pkg/apis/applicationnetworking/v1alpha1"
"github.com/aws/aws-application-networking-k8s/pkg/k8s"
"github.com/aws/aws-application-networking-k8s/pkg/utils/gwlog"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/handler"
"sigs.k8s.io/controller-runtime/pkg/reconcile"
)
type vpcAssociationPolicyEventHandler struct {
log gwlog.Logger
client client.Client
mapper *resourceMapper
}
func NewVpcAssociationPolicyEventHandler(log gwlog.Logger, client client.Client) *vpcAssociationPolicyEventHandler {
return &vpcAssociationPolicyEventHandler{log: log, client: client,
mapper: &resourceMapper{log: log, client: client}}
}
func (h *vpcAssociationPolicyEventHandler) MapToGateway() handler.EventHandler {
return handler.EnqueueRequestsFromMapFunc(func(ctx context.Context, obj client.Object) []reconcile.Request {
if vap, ok := obj.(*v1alpha1.VpcAssociationPolicy); ok {
if gw := h.mapper.VpcAssociationPolicyToGateway(ctx, vap); gw != nil {
return []reconcile.Request{{NamespacedName: k8s.NamespacedName(gw)}}
}
}
return nil
})
}