@@ -2,6 +2,7 @@ package domain
2
2
3
3
import (
4
4
"fmt"
5
+ "log/slog"
5
6
6
7
"github.com/kloudlite/api/apps/console/internal/entities"
7
8
fc "github.com/kloudlite/api/apps/console/internal/entities/field-constants"
@@ -16,6 +17,7 @@ import (
16
17
17
18
// CreateServiceIntercept implements Domain.
18
19
func (d * domain ) CreateServiceIntercept (ctx ConsoleContext , envName string , serviceName string , interceptTo string , portMappings []* crdsv1.SvcInterceptPortMappings ) (* entities.ServiceBinding , error ) {
20
+ slog .Info ("[STARTED] createServiceIntercept()" , "envName" , envName , "serviceName" , serviceName , "interceptTo" , interceptTo )
19
21
filters := ctx .DBFilters ()
20
22
21
23
env , err := d .environmentRepo .FindOne (ctx , ctx .DBFilters ().Add (fc .MetadataName , envName ))
@@ -27,11 +29,15 @@ func (d *domain) CreateServiceIntercept(ctx ConsoleContext, envName string, serv
27
29
return nil , fmt .Errorf ("environment not found" )
28
30
}
29
31
30
- sb , err := d .serviceBindingRepo .FindOne (ctx , filters .Add (fc .ServiceBindingSpecServiceRefName , serviceName ).Add (fc .ClusterName , env .ClusterName ))
32
+ sbFilter := filters .Add (fc .ServiceBindingSpecServiceRefName , serviceName ).Add (fc .ServiceBindingSpecServiceRefNamespace , env .Spec .TargetNamespace ).Add (fc .ClusterName , env .ClusterName )
33
+
34
+ sb , err := d .serviceBindingRepo .FindOne (ctx , sbFilter )
31
35
if err != nil {
32
36
return nil , err
33
37
}
34
38
39
+ slog .Info ("[STEP] createServiceIntercept()" , "filter" , filters , "env.targetNamespace" , env .Spec .TargetNamespace )
40
+
35
41
if sb == nil {
36
42
return nil , fmt .Errorf ("no service binding found" )
37
43
}
@@ -71,11 +77,13 @@ func (d *domain) CreateServiceIntercept(ctx ConsoleContext, envName string, serv
71
77
return nil , err
72
78
}
73
79
80
+ slog .Info ("[COMPLETED] createServiceIntercept()" , "envName" , envName , "serviceName" , serviceName , "interceptTo" , interceptTo , "intercept-status" , * usb .InterceptStatus )
74
81
return usb , nil
75
82
}
76
83
77
84
// DeleteServiceIntercept implements Domain.
78
85
func (d * domain ) DeleteServiceIntercept (ctx ConsoleContext , envName string , serviceName string ) error {
86
+ slog .Info ("[STARTED] DeleteServiceIntercept()" , "envName" , envName , "serviceName" , serviceName )
79
87
filters := ctx .DBFilters ()
80
88
81
89
env , err := d .environmentRepo .FindOne (ctx , ctx .DBFilters ().Add (fc .MetadataName , envName ))
@@ -87,11 +95,15 @@ func (d *domain) DeleteServiceIntercept(ctx ConsoleContext, envName string, serv
87
95
return fmt .Errorf ("environment not found" )
88
96
}
89
97
90
- sb , err := d .serviceBindingRepo .FindOne (ctx , filters .Add (fc .ServiceBindingSpecServiceRefName , serviceName ).Add (fc .ClusterName , env .ClusterName ))
98
+ sb , err := d .serviceBindingRepo .FindOne (ctx , filters .Add (fc .ServiceBindingSpecServiceRefName , serviceName ).Add (fc .ServiceBindingSpecServiceRefNamespace , env . Spec . TargetNamespace ). Add ( fc . ClusterName , env .ClusterName ))
91
99
if err != nil {
92
100
return err
93
101
}
94
102
103
+ if sb == nil {
104
+ return fmt .Errorf ("service binding not found" )
105
+ }
106
+
95
107
serviceIntercept := & crdsv1.ServiceIntercept {
96
108
ObjectMeta : metav1.ObjectMeta {
97
109
Name : serviceName ,
@@ -115,6 +127,7 @@ func (d *domain) DeleteServiceIntercept(ctx ConsoleContext, envName string, serv
115
127
return err
116
128
}
117
129
130
+ slog .Info ("[COMPLETED] DeleteServiceIntercept()" , "envName" , envName , "serviceName" , serviceName )
118
131
return nil
119
132
}
120
133
@@ -153,6 +166,7 @@ func (d *domain) OnServiceBindingDeleteMessage(ctx ConsoleContext, svcb *network
153
166
154
167
// OnServiceBindingUpdateMessage implements Domain.
155
168
func (d * domain ) OnServiceBindingUpdateMessage (ctx ConsoleContext , svcb * networkingv1.ServiceBinding , status types.ResourceStatus , opts UpdateAndDeleteOpts ) error {
169
+ slog .Info ("[STARTED] OnServiceBindingUpdateMessage" )
156
170
if svcb == nil {
157
171
return errors .Newf ("no service binding found" )
158
172
}
@@ -184,15 +198,30 @@ func (d *domain) OnServiceBindingUpdateMessage(ctx ConsoleContext, svcb *network
184
198
environmentName = env .Name
185
199
}
186
200
187
- if _ , err := d .serviceBindingRepo .Upsert (ctx , filter , & entities.ServiceBinding {
188
- ServiceBinding : * svcb ,
189
- AccountName : ctx .AccountName ,
190
- ClusterName : opts .ClusterName ,
191
- EnvironmentName : environmentName ,
192
- }); err != nil {
193
- return errors .NewE (err )
201
+ sb , err := d .serviceBindingRepo .FindOne (ctx , filter )
202
+ if err != nil {
203
+ return err
194
204
}
195
205
196
- // d.resourceEventPublisher.PublishResourceEvent(ctx, urouter.GetResourceType(), urouter.GetName(), PublishUpdate)
197
- return nil
206
+ if sb == nil {
207
+ sb2 , err := d .serviceBindingRepo .Create (ctx , & entities.ServiceBinding {
208
+ ServiceBinding : * svcb ,
209
+ AccountName : ctx .AccountName ,
210
+ ClusterName : opts .ClusterName ,
211
+ EnvironmentName : environmentName ,
212
+ InterceptStatus : nil ,
213
+ })
214
+ slog .Info ("[COMPLETED] OnServiceBindingUpdateMessage" , "op" , "created new service binding" , "service-binding.id" , sb2 .Id )
215
+ return err
216
+ }
217
+
218
+ _ , err = d .serviceBindingRepo .PatchById (ctx , sb .Id , repos.Document {
219
+ fc .ServiceBindingSpec : svcb .Spec ,
220
+ fc .AccountName : ctx .AccountName ,
221
+ fc .ClusterName : opts .ClusterName ,
222
+ fc .EnvironmentName : environmentName ,
223
+ })
224
+
225
+ slog .Info ("[COMPLETED] OnServiceBindingUpdateMessage" , "op" , "patched service binding" , "service-binding.id" , sb .Id )
226
+ return err
198
227
}
0 commit comments