Skip to content

Commit dfeb204

Browse files
committed
Create support for async request unit tests
1 parent 95d4a61 commit dfeb204

File tree

12 files changed

+646
-166
lines changed

12 files changed

+646
-166
lines changed

operator/src/main/java/oracle/kubernetes/operator/calls/AsyncRequestStep.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,14 @@
33

44
package oracle.kubernetes.operator.calls;
55

6+
import java.lang.reflect.InvocationTargetException;
7+
import java.lang.reflect.Method;
8+
import java.util.List;
9+
import java.util.Map;
10+
import java.util.Random;
11+
import java.util.concurrent.TimeUnit;
12+
import java.util.concurrent.atomic.AtomicBoolean;
13+
614
import io.kubernetes.client.ApiCallback;
715
import io.kubernetes.client.ApiClient;
816
import io.kubernetes.client.ApiException;
@@ -18,14 +26,6 @@
1826
import oracle.kubernetes.operator.work.Packet;
1927
import oracle.kubernetes.operator.work.Step;
2028

21-
import java.lang.reflect.InvocationTargetException;
22-
import java.lang.reflect.Method;
23-
import java.util.List;
24-
import java.util.Map;
25-
import java.util.Random;
26-
import java.util.concurrent.TimeUnit;
27-
import java.util.concurrent.atomic.AtomicBoolean;
28-
2929
/**
3030
* A Step driven by an asynchronous call to the Kubernetes API, which results in a series of callbacks until canceled.
3131
*/
@@ -120,7 +120,7 @@ public void onSuccess(T result, int statusCode, Map<String, List<String>> respon
120120
};
121121

122122
try {
123-
CancelableCall c = factory.generate(requestParams, client, _continue, callback);
123+
CancellableCall c = factory.generate(requestParams, client, _continue, callback);
124124

125125
// timeout handling
126126
fiber.owner.getExecutor().schedule(() -> {

operator/src/main/java/oracle/kubernetes/operator/calls/CallFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@
99

1010
@FunctionalInterface
1111
public interface CallFactory<T> {
12-
CancelableCall generate(RequestParams requestParams, ApiClient client, String cont, ApiCallback<T> callback) throws ApiException;
12+
CancellableCall generate(RequestParams requestParams, ApiClient client, String cont, ApiCallback<T> callback) throws ApiException;
1313
}

operator/src/main/java/oracle/kubernetes/operator/calls/CallResponse.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,18 @@
33

44
package oracle.kubernetes.operator.calls;
55

6-
import io.kubernetes.client.ApiException;
7-
86
import java.util.List;
97
import java.util.Map;
108

9+
import io.kubernetes.client.ApiException;
10+
1111
public final class CallResponse<T> {
1212
public final T result;
1313
public final ApiException e;
1414
public final int statusCode;
1515
public final Map<String, List<String>> responseHeaders;
1616

17-
CallResponse(T result, ApiException e, int statusCode, Map<String, List<String>> responseHeaders) {
17+
public CallResponse(T result, ApiException e, int statusCode, Map<String, List<String>> responseHeaders) {
1818
this.result = result;
1919
this.e = e;
2020
this.statusCode = statusCode;

operator/src/main/java/oracle/kubernetes/operator/calls/CallWrapper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
/**
99
* A wrapper for an OKHttp call to isolate its own callers.
1010
*/
11-
public class CallWrapper implements CancelableCall {
11+
public class CallWrapper implements CancellableCall {
1212

1313
private Call underlyingCall;
1414

operator/src/main/java/oracle/kubernetes/operator/calls/CancelableCall.java renamed to operator/src/main/java/oracle/kubernetes/operator/calls/CancellableCall.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/**
77
* An interface for an asynchronous API invocation that can be canceled
88
*/
9-
public interface CancelableCall {
9+
public interface CancellableCall {
1010

1111
/**
1212
* Cancels the active call.

operator/src/main/java/oracle/kubernetes/operator/helpers/CallBuilder.java

Lines changed: 7 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33

44
package oracle.kubernetes.operator.helpers;
55

6+
import java.util.function.Consumer;
7+
8+
import com.squareup.okhttp.Call;
9+
610
import io.kubernetes.client.ApiCallback;
711
import io.kubernetes.client.ApiClient;
812
import io.kubernetes.client.ApiException;
@@ -13,42 +17,18 @@
1317
import io.kubernetes.client.apis.CoreV1Api;
1418
import io.kubernetes.client.apis.ExtensionsV1beta1Api;
1519
import io.kubernetes.client.apis.VersionApi;
16-
import io.kubernetes.client.models.V1ConfigMap;
17-
import io.kubernetes.client.models.V1DeleteOptions;
18-
import io.kubernetes.client.models.V1EventList;
19-
import io.kubernetes.client.models.V1Job;
20-
import io.kubernetes.client.models.V1Namespace;
21-
import io.kubernetes.client.models.V1PersistentVolumeClaimList;
22-
import io.kubernetes.client.models.V1PersistentVolumeList;
23-
import io.kubernetes.client.models.V1Pod;
24-
import io.kubernetes.client.models.V1PodList;
25-
import io.kubernetes.client.models.V1Secret;
26-
import io.kubernetes.client.models.V1SelfSubjectAccessReview;
27-
import io.kubernetes.client.models.V1SelfSubjectRulesReview;
28-
import io.kubernetes.client.models.V1Service;
29-
import io.kubernetes.client.models.V1ServiceList;
30-
import io.kubernetes.client.models.V1Status;
31-
import io.kubernetes.client.models.V1SubjectAccessReview;
32-
import io.kubernetes.client.models.V1TokenReview;
33-
import io.kubernetes.client.models.V1beta1CustomResourceDefinition;
34-
import io.kubernetes.client.models.V1beta1Ingress;
35-
import io.kubernetes.client.models.V1beta1IngressList;
36-
import io.kubernetes.client.models.VersionInfo;
20+
import io.kubernetes.client.models.*;
3721
import oracle.kubernetes.operator.TuningParameters.CallBuilderTuning;
3822
import oracle.kubernetes.operator.calls.AsyncRequestStep;
3923
import oracle.kubernetes.operator.calls.CallFactory;
4024
import oracle.kubernetes.operator.calls.CallWrapper;
41-
import oracle.kubernetes.operator.calls.CancelableCall;
25+
import oracle.kubernetes.operator.calls.CancellableCall;
4226
import oracle.kubernetes.operator.calls.RequestParams;
4327
import oracle.kubernetes.operator.work.Step;
4428
import oracle.kubernetes.weblogic.domain.v1.Domain;
4529
import oracle.kubernetes.weblogic.domain.v1.DomainList;
4630
import oracle.kubernetes.weblogic.domain.v1.api.WeblogicApi;
4731

48-
import com.squareup.okhttp.Call;
49-
50-
import java.util.function.Consumer;
51-
5232
/**
5333
* Simplifies synchronous and asynchronous call patterns to the Kubernetes API Server.
5434
*
@@ -207,7 +187,7 @@ private com.squareup.okhttp.Call listDomainAsync(ApiClient client, String namesp
207187
private final CallFactory<DomainList> LIST_DOMAIN = (requestParams, usage, cont, callback)
208188
-> wrap(listDomainAsync(usage, requestParams.namespace, cont, callback));
209189

210-
private CancelableCall wrap(Call call) {
190+
private CancellableCall wrap(Call call) {
211191
return new CallWrapper(call);
212192
}
213193

operator/src/main/java/oracle/kubernetes/operator/steps/DeleteIngressListStep.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import oracle.kubernetes.operator.logging.LoggingFacade;
2020
import oracle.kubernetes.operator.logging.LoggingFactory;
2121
import oracle.kubernetes.operator.logging.MessageKeys;
22-
import oracle.kubernetes.operator.work.ContainerResolver;
2322
import oracle.kubernetes.operator.work.NextAction;
2423
import oracle.kubernetes.operator.work.Packet;
2524
import oracle.kubernetes.operator.work.Step;
@@ -36,7 +35,7 @@ public DeleteIngressListStep(Collection<V1beta1Ingress> c, Step next) {
3635

3736
@Override
3837
public NextAction apply(Packet packet) {
39-
CallBuilderFactory factory = ContainerResolver.getInstance().getContainer().getSPI(CallBuilderFactory.class);
38+
CallBuilderFactory factory = new CallBuilderFactory();
4039

4140
if (it.hasNext()) {
4241
V1beta1Ingress v1beta1Ingress = it.next();

0 commit comments

Comments
 (0)