Skip to content

Commit 4c77189

Browse files
committed
Add structured reporting diff to LoggingLogMetric
1 parent 140e11a commit 4c77189

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

pkg/controller/direct/logging/logmetric_controller.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import (
3333
"github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct"
3434
"github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct/directbase"
3535
"github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct/registry"
36+
"github.com/GoogleCloudPlatform/k8s-config-connector/pkg/structuredreporting"
3637
)
3738

3839
const ctrlName = "logmetric-controller"
@@ -249,18 +250,23 @@ func (a *logMetricAdapter) Update(ctx context.Context, updateOp *directbase.Upda
249250
latest := a.actual
250251

251252
if a.hasChanges(ctx, u) {
253+
report := &structuredreporting.Diff{Object: updateOp.GetUnstructured()}
254+
252255
update := new(api.LogMetric)
253256
*update = *a.actual
254257

255258
if direct.ValueOf(a.desired.Spec.Description) != a.actual.Description {
259+
report.AddField("description", a.actual.Description, direct.ValueOf(a.desired.Spec.Description))
256260
update.Description = direct.ValueOf(a.desired.Spec.Description)
257261
}
258262
if direct.ValueOf(a.desired.Spec.Disabled) != a.actual.Disabled {
263+
report.AddField("disabled", a.actual.Disabled, direct.ValueOf(a.desired.Spec.Disabled))
259264
update.Disabled = direct.ValueOf(a.desired.Spec.Disabled)
260265
}
261266
if a.desired.Spec.Filter != a.actual.Filter {
262267
// todo acpana: revisit UX, err out if filter of desired is empty
263268
if a.desired.Spec.Filter != "" {
269+
report.AddField("filter", a.actual.Filter, a.desired.Spec.Filter)
264270
update.Filter = a.desired.Spec.Filter
265271
} else {
266272
// filter is a REQUIRED field
@@ -270,24 +276,31 @@ func (a *logMetricAdapter) Update(ctx context.Context, updateOp *directbase.Upda
270276

271277
desired := convertKCCtoAPI(&a.desired.Spec)
272278
if !compareMetricDescriptors(desired.MetricDescriptor, a.actual.MetricDescriptor) {
279+
report.AddField("metric_descriptor", a.actual.MetricDescriptor, desired.MetricDescriptor)
273280
update.MetricDescriptor = desired.MetricDescriptor
274281
}
275282

276283
if !reflect.DeepEqual(a.desired.Spec.LabelExtractors, a.actual.LabelExtractors) {
284+
report.AddField("label_extractors", a.actual.LabelExtractors, a.desired.Spec.LabelExtractors)
277285
update.LabelExtractors = a.desired.Spec.LabelExtractors
278286
}
279287

280288
if !compareBucketOptions(a.desired.Spec.BucketOptions, a.actual.BucketOptions) {
289+
report.AddField("bucket_options", a.actual.BucketOptions, a.desired.Spec.BucketOptions)
281290
update.BucketOptions = convertKCCtoAPIForBucketOptions(a.desired.Spec.BucketOptions)
282291
}
283292

284293
if direct.ValueOf(a.desired.Spec.ValueExtractor) != a.actual.ValueExtractor {
294+
report.AddField("value_extractor", a.actual.ValueExtractor, direct.ValueOf(a.desired.Spec.ValueExtractor))
285295
update.ValueExtractor = direct.ValueOf(a.desired.Spec.ValueExtractor)
286296
}
287297
if a.desired.Spec.LoggingLogBucketRef != nil && a.desired.Spec.LoggingLogBucketRef.External != a.actual.BucketName {
298+
report.AddField("bucket_name", a.actual.BucketName, a.desired.Spec.LoggingLogBucketRef.External)
288299
update.BucketName = a.desired.Spec.LoggingLogBucketRef.External
289300
}
290301

302+
structuredreporting.ReportDiff(ctx, report)
303+
291304
diffs, err := ListFieldDiffs(a.actual, update)
292305
if err != nil {
293306
// Don't return an error as we're only logging

0 commit comments

Comments
 (0)