forked from kyma-project/kyma
/
eventactivation.go
41 lines (37 loc) · 1.61 KB
/
eventactivation.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
39
40
41
package controllers
import (
"log"
subApis "github.com/kyma-project/kyma/components/event-bus/api/push/eventing.kyma-project.io/v1alpha1"
"github.com/kyma-project/kyma/components/event-bus/internal/common"
"github.com/kyma-project/kyma/components/event-bus/internal/push/actors"
)
func getUpdateFnWithEventActivationCheck(supervisor actors.SubscriptionsSupervisorInterface) func(oldObj, newObj interface{}) {
return func(oldObj, newObj interface{}) {
if oldObj == newObj {
return
}
if oldSub, newSub, ok := checkSubscriptions(oldObj, newObj); ok {
if newSub.HasCondition(subApis.SubscriptionCondition{Type: subApis.EventsActivated, Status: subApis.ConditionFalse}) {
log.Printf("Stop NATS Subscription %+v", newSub)
supervisor.StopSubscriptionReq(newSub)
} else {
log.Printf("Stop old NATS Subscription %+v", oldSub)
supervisor.StopSubscriptionReq(oldSub)
}
if newSub.HasCondition(subApis.SubscriptionCondition{Type: subApis.EventsActivated, Status: subApis.ConditionTrue}) {
log.Printf("Start NATS Subscription %+v", newSub)
supervisor.StartSubscriptionReq(newSub, common.DefaultRequestProvider)
}
}
}
}
func getAddFnWithEventActivationCheck(supervisor actors.SubscriptionsSupervisorInterface) func(obj interface{}) {
return func(obj interface{}) {
if subscription, ok := checkSubscription(obj); ok {
if subscription.HasCondition(subApis.SubscriptionCondition{Type: subApis.EventsActivated, Status: subApis.ConditionTrue}) {
log.Printf("Subscription custom resource created %v", obj)
supervisor.StartSubscriptionReq(subscription, common.DefaultRequestProvider)
}
}
}
}