Skip to content

Commit 35d4e8c

Browse files
committed
Remove unions logic, keep schema components
This removes the generally unused union code from the library in a non-backward incompatible way since the API was not used anyways. The schema isn't changed since we don't want to break existing schema (the unions fields will continue to be just ignored).
1 parent 9c99f49 commit 35d4e8c

File tree

6 files changed

+0
-938
lines changed

6 files changed

+0
-938
lines changed

Diff for: internal/fixture/state.go

-14
Original file line numberDiff line numberDiff line change
@@ -535,8 +535,6 @@ type TestCase struct {
535535
// Managed, if not nil, is the ManagedFields as expected
536536
// after all operations are run.
537537
Managed fieldpath.ManagedFields
538-
// Set to true if the test case needs the union behavior enabled.
539-
RequiresUnions bool
540538
// ReportInputOnNoop if we don't want to compare the output and
541539
// always return it.
542540
ReturnInputOnNoop bool
@@ -576,7 +574,6 @@ func (tc TestCase) BenchWithConverter(parser Parser, converter merge.Converter)
576574
Converter: converter,
577575
IgnoredFields: tc.IgnoredFields,
578576
ReturnInputOnNoop: tc.ReturnInputOnNoop,
579-
EnableUnions: tc.RequiresUnions,
580577
}
581578
state := State{
582579
Updater: updaterBuilder.BuildUpdater(),
@@ -599,7 +596,6 @@ func (tc TestCase) TestWithConverter(parser Parser, converter merge.Converter) e
599596
Converter: converter,
600597
IgnoredFields: tc.IgnoredFields,
601598
ReturnInputOnNoop: tc.ReturnInputOnNoop,
602-
EnableUnions: tc.RequiresUnions,
603599
}
604600
state := State{
605601
Updater: updaterBuilder.BuildUpdater(),
@@ -636,15 +632,5 @@ func (tc TestCase) TestWithConverter(parser Parser, converter merge.Converter) e
636632
}
637633
}
638634

639-
if !tc.RequiresUnions {
640-
// Re-run the test with unions on.
641-
tc2 := tc
642-
tc2.RequiresUnions = true
643-
err := tc2.TestWithConverter(parser, converter)
644-
if err != nil {
645-
return fmt.Errorf("fails if unions are on: %v", err)
646-
}
647-
}
648-
649635
return nil
650636
}

Diff for: merge/union_test.go

-234
This file was deleted.

Diff for: merge/update.go

-31
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@ type UpdaterBuilder struct {
3434
Converter Converter
3535
IgnoredFields map[fieldpath.APIVersion]*fieldpath.Set
3636

37-
EnableUnions bool
38-
3937
// Stop comparing the new object with old object after applying.
4038
// This was initially used to avoid spurious etcd update, but
4139
// since that's vastly inefficient, we've come-up with a better
@@ -49,7 +47,6 @@ func (u *UpdaterBuilder) BuildUpdater() *Updater {
4947
return &Updater{
5048
Converter: u.Converter,
5149
IgnoredFields: u.IgnoredFields,
52-
enableUnions: u.EnableUnions,
5350
returnInputOnNoop: u.ReturnInputOnNoop,
5451
}
5552
}
@@ -63,19 +60,9 @@ type Updater struct {
6360
// Deprecated: This will eventually become private.
6461
IgnoredFields map[fieldpath.APIVersion]*fieldpath.Set
6562

66-
enableUnions bool
67-
6863
returnInputOnNoop bool
6964
}
7065

71-
// EnableUnionFeature turns on union handling. It is disabled by default until the
72-
// feature is complete.
73-
//
74-
// Deprecated: Use the builder instead.
75-
func (s *Updater) EnableUnionFeature() {
76-
s.enableUnions = true
77-
}
78-
7966
func (s *Updater) update(oldObject, newObject *typed.TypedValue, version fieldpath.APIVersion, managers fieldpath.ManagedFields, workflow string, force bool) (fieldpath.ManagedFields, *typed.Comparison, error) {
8067
conflicts := fieldpath.ManagedFields{}
8168
removed := fieldpath.ManagedFields{}
@@ -160,12 +147,6 @@ func (s *Updater) Update(liveObject, newObject *typed.TypedValue, version fieldp
160147
if err != nil {
161148
return nil, fieldpath.ManagedFields{}, err
162149
}
163-
if s.enableUnions {
164-
newObject, err = liveObject.NormalizeUnions(newObject)
165-
if err != nil {
166-
return nil, fieldpath.ManagedFields{}, err
167-
}
168-
}
169150
managers, compare, err := s.update(liveObject, newObject, version, managers, manager, true)
170151
if err != nil {
171152
return nil, fieldpath.ManagedFields{}, err
@@ -198,22 +179,10 @@ func (s *Updater) Apply(liveObject, configObject *typed.TypedValue, version fiel
198179
if err != nil {
199180
return nil, fieldpath.ManagedFields{}, err
200181
}
201-
if s.enableUnions {
202-
configObject, err = configObject.NormalizeUnionsApply(configObject)
203-
if err != nil {
204-
return nil, fieldpath.ManagedFields{}, err
205-
}
206-
}
207182
newObject, err := liveObject.Merge(configObject)
208183
if err != nil {
209184
return nil, fieldpath.ManagedFields{}, fmt.Errorf("failed to merge config: %v", err)
210185
}
211-
if s.enableUnions {
212-
newObject, err = configObject.NormalizeUnionsApply(newObject)
213-
if err != nil {
214-
return nil, fieldpath.ManagedFields{}, err
215-
}
216-
}
217186
lastSet := managers[manager]
218187
set, err := configObject.ToFieldSet()
219188
if err != nil {

0 commit comments

Comments
 (0)