Skip to content

Commit 42e6bc1

Browse files
kimpenhausbuehler
andauthored
fix: fixed Finalizer-Registration (#874)
@buehler I'm terribly sorry, but I made a mistake during the implementation of the finalizer registration. The metadata referenced a wrong not existing interface, and I had forgotten a code fragment in the unit tests that caused them to pass even though they were actually incorrect. I've fixed this with this PR. sorry for the inconvenience and the additional effort this will make to you - hope you will find some timeto bring out this hotfix soon. --------- Co-authored-by: Christoph Bühler <[email protected]>
1 parent 4630af2 commit 42e6bc1

File tree

2 files changed

+6
-13
lines changed

2 files changed

+6
-13
lines changed

src/KubeOps.Generator/SyntaxReceiver/EntityFinalizerSyntaxReceiver.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ namespace KubeOps.Generator.SyntaxReceiver;
55

66
internal sealed class EntityFinalizerSyntaxReceiver : ISyntaxContextReceiver
77
{
8-
private const string IEntityFinalizerMetadataName = "KubeOps.Abstractions.Controller.IEntityFinalizer`1";
8+
private const string IEntityFinalizerMetadataName = "KubeOps.Abstractions.Finalizer.IEntityFinalizer`1";
99

1010
public List<(ClassDeclarationSyntax Finalizer, string EntityName)> Finalizer { get; } = [];
1111

test/KubeOps.Generator.Test/FinalizerRegistrationGenerator.Test.cs

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public sealed class V1TestEntity : IKubernetesObject<V1ObjectMeta>
6969
{
7070
}
7171
72-
public sealed class EntityFinalizerBase<TEntity> : IEntityFinalizer<TEntity>
72+
public abstract class EntityFinalizerBase<TEntity> : IEntityFinalizer<TEntity>
7373
where TEntity : IKubernetesObject<V1ObjectMeta>
7474
{
7575
}
@@ -142,7 +142,7 @@ public sealed class V1TestEntity : IKubernetesObject<V1ObjectMeta>
142142
{
143143
}
144144
145-
public sealed class EntityFinalizerBase<TEntity> : IEntityFinalizer<TEntity>
145+
public abstract class EntityFinalizerBase<TEntity> : IEntityFinalizer<TEntity>
146146
where TEntity : IKubernetesObject<V1ObjectMeta>
147147
{
148148
}
@@ -165,25 +165,18 @@ public sealed class V1TestEntityFinalizer2 : IEntityFinalizer<V1TestEntity>
165165
public static class FinalizerRegistrations
166166
{
167167
public const string V1TestEntityFinalizerIdentifier = "testing.dev/v1testentityfinalizer";
168-
public const string V1TestEntityFinalizer2 = "testing.dev/v1testentityfinalizer2";
168+
public const string V1TestEntityFinalizer2Identifier = "testing.dev/v1testentityfinalizer2finalizer";
169169
public static IOperatorBuilder RegisterFinalizers(this IOperatorBuilder builder)
170170
{
171-
builder.AddFinalizer<global::V1TestEntityFinalizer, global::V1TestEntity>(V1TestEntityFinalizer);
172-
builder.AddFinalizer<global::V1TestEntityFinalizer2, global::V1TestEntity>(V1TestEntityFinalizer2);
171+
builder.AddFinalizer<global::V1TestEntityFinalizer, global::V1TestEntity>(V1TestEntityFinalizerIdentifier);
172+
builder.AddFinalizer<global::V1TestEntityFinalizer2, global::V1TestEntity>(V1TestEntityFinalizer2Identifier);
173173
return builder;
174174
}
175175
}
176176
""")]
177177
public void Should_Generate_Correct_Code(string input, string expectedResult)
178178
{
179179
var inputCompilation = input.CreateCompilation();
180-
181-
var diagnostics = inputCompilation.GetDiagnostics();
182-
if (diagnostics.Any(d => d.Severity == DiagnosticSeverity.Error))
183-
{
184-
return;
185-
}
186-
187180
expectedResult = expectedResult.ReplaceLineEndings();
188181

189182
var driver = CSharpGeneratorDriver.Create(new FinalizerRegistrationGenerator());

0 commit comments

Comments
 (0)