Skip to content

Commit 1f546f5

Browse files
committed
refactor: pull out allowedAdmissionResponse method
Signed-off-by: David Sondermann <[email protected]>
1 parent e277997 commit 1f546f5

File tree

4 files changed

+18
-31
lines changed

4 files changed

+18
-31
lines changed

core/src/main/java/io/javaoperatorsdk/webhook/admission/AdmissionUtils.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@ public class AdmissionUtils {
1717
private AdmissionUtils() {
1818
}
1919

20+
public static AdmissionResponse allowedAdmissionResponse() {
21+
var admissionResponse = new AdmissionResponse();
22+
admissionResponse.setAllowed(true);
23+
return admissionResponse;
24+
}
25+
2026
public static AdmissionResponse notAllowedExceptionToAdmissionResponse(
2127
NotAllowedException notAllowedException) {
2228
var admissionResponse = new AdmissionResponse();

core/src/main/java/io/javaoperatorsdk/webhook/admission/mutation/DefaultAdmissionRequestMutator.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44
import io.fabric8.kubernetes.api.model.admission.v1.AdmissionRequest;
55
import io.fabric8.kubernetes.api.model.admission.v1.AdmissionResponse;
66
import io.javaoperatorsdk.webhook.admission.AdmissionRequestHandler;
7-
import io.javaoperatorsdk.webhook.admission.AdmissionUtils;
87
import io.javaoperatorsdk.webhook.admission.NotAllowedException;
98
import io.javaoperatorsdk.webhook.admission.Operation;
109
import io.javaoperatorsdk.webhook.clone.Cloner;
1110
import io.javaoperatorsdk.webhook.clone.ObjectMapperCloner;
1211

1312
import static io.javaoperatorsdk.webhook.admission.AdmissionUtils.admissionResponseFromMutation;
1413
import static io.javaoperatorsdk.webhook.admission.AdmissionUtils.getTargetResource;
14+
import static io.javaoperatorsdk.webhook.admission.AdmissionUtils.notAllowedExceptionToAdmissionResponse;
1515

1616
public class DefaultAdmissionRequestMutator<T extends KubernetesResource>
1717
implements AdmissionRequestHandler {
@@ -34,14 +34,11 @@ public AdmissionResponse handle(AdmissionRequest admissionRequest) {
3434
var operation = Operation.valueOf(admissionRequest.getOperation());
3535
var originalResource = (T) getTargetResource(admissionRequest, operation);
3636
var clonedResource = cloner.clone(originalResource);
37-
AdmissionResponse admissionResponse;
3837
try {
3938
var mutatedResource = mutator.mutate(clonedResource, operation);
40-
admissionResponse = admissionResponseFromMutation(originalResource, mutatedResource);
39+
return admissionResponseFromMutation(originalResource, mutatedResource);
4140
} catch (NotAllowedException e) {
42-
admissionResponse = AdmissionUtils.notAllowedExceptionToAdmissionResponse(e);
41+
return notAllowedExceptionToAdmissionResponse(e);
4342
}
44-
return admissionResponse;
4543
}
46-
4744
}

core/src/main/java/io/javaoperatorsdk/webhook/admission/validation/AsyncDefaultAdmissionRequestValidator.java

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@
77
import io.fabric8.kubernetes.api.model.KubernetesResource;
88
import io.fabric8.kubernetes.api.model.admission.v1.AdmissionRequest;
99
import io.fabric8.kubernetes.api.model.admission.v1.AdmissionResponse;
10-
import io.javaoperatorsdk.webhook.admission.AdmissionUtils;
1110
import io.javaoperatorsdk.webhook.admission.AsyncAdmissionRequestHandler;
1211
import io.javaoperatorsdk.webhook.admission.NotAllowedException;
1312
import io.javaoperatorsdk.webhook.admission.Operation;
1413

14+
import static io.javaoperatorsdk.webhook.admission.AdmissionUtils.allowedAdmissionResponse;
1515
import static io.javaoperatorsdk.webhook.admission.AdmissionUtils.getTargetResource;
16+
import static io.javaoperatorsdk.webhook.admission.AdmissionUtils.notAllowedExceptionToAdmissionResponse;
1617

1718
public class AsyncDefaultAdmissionRequestValidator<T extends KubernetesResource>
1819
implements AsyncAdmissionRequestHandler {
@@ -28,28 +29,18 @@ public AsyncDefaultAdmissionRequestValidator(Validator<T> validator) {
2829
public CompletionStage<AdmissionResponse> handle(AdmissionRequest admissionRequest) {
2930
var operation = Operation.valueOf(admissionRequest.getOperation());
3031
var originalResource = (T) getTargetResource(admissionRequest, operation);
31-
3232
var asyncValidate =
3333
CompletableFuture.runAsync(() -> validator.validate(originalResource, operation));
3434
return asyncValidate
3535
.thenApply(v -> allowedAdmissionResponse())
3636
.exceptionally(e -> {
3737
if (e instanceof CompletionException) {
3838
if (e.getCause() instanceof NotAllowedException) {
39-
return AdmissionUtils.notAllowedExceptionToAdmissionResponse(
40-
(NotAllowedException) e.getCause());
41-
} else {
42-
throw new IllegalStateException(e.getCause());
39+
return notAllowedExceptionToAdmissionResponse((NotAllowedException) e.getCause());
4340
}
44-
} else {
45-
throw new IllegalStateException(e);
41+
throw new IllegalStateException(e.getCause());
4642
}
43+
throw new IllegalStateException(e);
4744
});
4845
}
49-
50-
private AdmissionResponse allowedAdmissionResponse() {
51-
AdmissionResponse admissionResponse = new AdmissionResponse();
52-
admissionResponse.setAllowed(true);
53-
return admissionResponse;
54-
}
5546
}

core/src/main/java/io/javaoperatorsdk/webhook/admission/validation/DefaultAdmissionRequestValidator.java

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@
44
import io.fabric8.kubernetes.api.model.admission.v1.AdmissionRequest;
55
import io.fabric8.kubernetes.api.model.admission.v1.AdmissionResponse;
66
import io.javaoperatorsdk.webhook.admission.AdmissionRequestHandler;
7-
import io.javaoperatorsdk.webhook.admission.AdmissionUtils;
87
import io.javaoperatorsdk.webhook.admission.NotAllowedException;
98
import io.javaoperatorsdk.webhook.admission.Operation;
109

10+
import static io.javaoperatorsdk.webhook.admission.AdmissionUtils.allowedAdmissionResponse;
1111
import static io.javaoperatorsdk.webhook.admission.AdmissionUtils.getTargetResource;
12+
import static io.javaoperatorsdk.webhook.admission.AdmissionUtils.notAllowedExceptionToAdmissionResponse;
1213

1314
public class DefaultAdmissionRequestValidator<T extends KubernetesResource>
1415
implements AdmissionRequestHandler {
@@ -24,19 +25,11 @@ public DefaultAdmissionRequestValidator(Validator<T> validator) {
2425
public AdmissionResponse handle(AdmissionRequest admissionRequest) {
2526
var operation = Operation.valueOf(admissionRequest.getOperation());
2627
var originalResource = (T) getTargetResource(admissionRequest, operation);
27-
AdmissionResponse admissionResponse;
2828
try {
2929
validator.validate(originalResource, operation);
30-
admissionResponse = allowedAdmissionResponse();
30+
return allowedAdmissionResponse();
3131
} catch (NotAllowedException e) {
32-
admissionResponse = AdmissionUtils.notAllowedExceptionToAdmissionResponse(e);
32+
return notAllowedExceptionToAdmissionResponse(e);
3333
}
34-
return admissionResponse;
35-
}
36-
37-
private AdmissionResponse allowedAdmissionResponse() {
38-
AdmissionResponse admissionResponse = new AdmissionResponse();
39-
admissionResponse.setAllowed(true);
40-
return admissionResponse;
4134
}
4235
}

0 commit comments

Comments
 (0)