Skip to content

Commit 60d92e4

Browse files
committed
Clean code and change routes
1 parent 86ef175 commit 60d92e4

File tree

5 files changed

+69
-32
lines changed

5 files changed

+69
-32
lines changed

common/src/main/java/fr/epsilon/common/Epsilon.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,15 @@
33
import com.google.gson.Gson;
44
import fr.epsilon.common.crd.EpsilonInstanceCRD;
55
import fr.epsilon.common.crd.EpsilonInstanceCRDList;
6+
import fr.epsilon.common.informer.InstanceInformer;
67
import fr.epsilon.common.instance.EInstance;
78
import fr.epsilon.common.instance.EInstanceModule;
89
import fr.epsilon.common.queue.EQueueModule;
910
import fr.epsilon.common.template.ETemplate;
10-
import io.kubernetes.client.informer.ResourceEventHandler;
11-
import io.kubernetes.client.informer.SharedIndexInformer;
12-
import io.kubernetes.client.informer.SharedInformer;
1311
import io.kubernetes.client.informer.SharedInformerFactory;
14-
import io.kubernetes.client.informer.cache.Lister;
1512
import io.kubernetes.client.openapi.ApiClient;
16-
import io.kubernetes.client.openapi.ApiException;
17-
import io.kubernetes.client.openapi.models.V1ObjectMeta;
1813
import io.kubernetes.client.util.Config;
1914
import io.kubernetes.client.util.generic.GenericKubernetesApi;
20-
import io.kubernetes.client.util.generic.KubernetesApiResponse;
2115
import okhttp3.*;
2216

2317
import java.io.FileReader;
@@ -26,7 +20,6 @@
2620
import java.nio.file.Path;
2721
import java.nio.file.Paths;
2822
import java.util.concurrent.CompletableFuture;
29-
import java.util.concurrent.TimeUnit;
3023
import java.util.logging.Logger;
3124
import java.util.stream.Collectors;
3225
import java.util.stream.Stream;
@@ -58,7 +51,7 @@ public Epsilon() {
5851
try {
5952
ApiClient kubeClient = Config.defaultClient();
6053
GenericKubernetesApi<EpsilonInstanceCRD, EpsilonInstanceCRDList> epsilonInstanceClient =
61-
new GenericKubernetesApi<>(EpsilonInstanceCRD.class, EpsilonInstanceCRDList.class, "controller.epsilon" + ".fr", "v1", "epsiloninstances", kubeClient);
54+
new GenericKubernetesApi<>(EpsilonInstanceCRD.class, EpsilonInstanceCRDList.class, "controller.epsilon.fr", "v1", "epsiloninstances", kubeClient);
6255

6356
this.informerFactory = new SharedInformerFactory(kubeClient);
6457
this.instanceInformer = new InstanceInformer(namespace, informerFactory, epsilonInstanceClient);

common/src/main/java/fr/epsilon/common/InstanceInformer.java renamed to common/src/main/java/fr/epsilon/common/informer/InstanceInformer.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
1-
package fr.epsilon.common;
1+
package fr.epsilon.common.informer;
22

33
import fr.epsilon.common.crd.EpsilonInstanceCRD;
44
import fr.epsilon.common.crd.EpsilonInstanceCRDList;
55
import fr.epsilon.common.instance.EInstance;
6+
import fr.epsilon.common.instance.EType;
67
import io.kubernetes.client.informer.ResourceEventHandler;
78
import io.kubernetes.client.informer.SharedIndexInformer;
89
import io.kubernetes.client.informer.SharedInformerFactory;
910
import io.kubernetes.client.informer.cache.Lister;
1011
import io.kubernetes.client.util.generic.GenericKubernetesApi;
1112

1213
import java.util.ArrayList;
14+
import java.util.Arrays;
1315
import java.util.List;
1416
import java.util.concurrent.TimeUnit;
1517
import java.util.stream.Collectors;
@@ -55,10 +57,22 @@ public EInstance getInstance(String name) {
5557
return instanceStore.get(name).getInstance();
5658
}
5759

58-
public List<EInstance> getInstances() {
60+
public EInstance[] getInstances() {
5961
return instanceStore.list().stream()
6062
.map(EpsilonInstanceCRD::getInstance)
61-
.collect(Collectors.toList());
63+
.toArray(EInstance[]::new);
64+
}
65+
66+
public EInstance[] getInstances(String template) {
67+
return Arrays.stream(getInstances())
68+
.filter(instance -> instance.getTemplate().equals(template))
69+
.toArray(EInstance[]::new);
70+
}
71+
72+
public EInstance[] getInstances(EType type) {
73+
return Arrays.stream(getInstances())
74+
.filter(instance -> instance.getType() == type)
75+
.toArray(EInstance[]::new);
6276
}
6377

6478
public void registerListener(InstanceInformerListener listener) {

common/src/main/java/fr/epsilon/common/InstanceInformerListener.java renamed to common/src/main/java/fr/epsilon/common/informer/InstanceInformerListener.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
package fr.epsilon.common;
1+
package fr.epsilon.common.informer;
22

3-
import fr.epsilon.common.crd.EpsilonInstanceCRD;
43
import fr.epsilon.common.instance.EInstance;
54

65
public interface InstanceInformerListener {

common/src/main/java/fr/epsilon/common/instance/EInstanceModule.java

Lines changed: 47 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import org.jetbrains.annotations.NotNull;
77

88
import java.io.IOException;
9+
import java.util.Arrays;
910
import java.util.concurrent.CompletableFuture;
1011

1112
public class EInstanceModule {
@@ -21,7 +22,7 @@ public CompletableFuture<EInstance> getInstance(String instance) {
2122
CompletableFuture<EInstance> future = new CompletableFuture<>();
2223

2324
Request request = new Request.Builder()
24-
.url(EpsilonEnvironments.getEpsilonURL("/instance/get_from_name/" + instance))
25+
.url(EpsilonEnvironments.getEpsilonURL("/instance/get/" + instance))
2526
.build();
2627

2728
okHttp.newCall(request).enqueue(new Callback() {
@@ -46,30 +47,39 @@ public void onResponse(@NotNull Call call, @NotNull Response response) throws IO
4647
return future;
4748
}
4849

50+
public CompletableFuture<EInstance[]> getInstances() {
51+
CompletableFuture<EInstance[]> future = new CompletableFuture<>();
52+
53+
Request request = new Request.Builder()
54+
.url(EpsilonEnvironments.getEpsilonURL("/instance/get_all"))
55+
.build();
56+
57+
getInstances(future, request);
58+
59+
return future;
60+
}
61+
4962
public CompletableFuture<EInstance[]> getInstances(String template) {
5063
CompletableFuture<EInstance[]> future = new CompletableFuture<>();
5164

5265
Request request = new Request.Builder()
53-
.url(EpsilonEnvironments.getEpsilonURL("/instance" + (template != null ? "/get/" + template : "/get_all")))
66+
.url(EpsilonEnvironments.getEpsilonURL("/instance/get_from_template/" + template))
5467
.build();
5568

56-
okHttp.newCall(request).enqueue(new Callback() {
57-
@Override
58-
public void onFailure(@NotNull Call call, @NotNull IOException e) {
59-
e.printStackTrace();
60-
}
69+
getInstances(future, request);
6170

62-
@Override
63-
public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
64-
try (ResponseBody body = response.body()) {
65-
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
71+
return future;
72+
}
6673

67-
assert body != null;
68-
EInstanceList instances = gson.fromJson(body.string(), EInstanceList.class);
74+
public CompletableFuture<EInstance[]> getInstances(EType type) {
75+
CompletableFuture<EInstance[]> future = new CompletableFuture<>();
6976

70-
future.complete(instances.getInstances());
71-
}
72-
}
77+
getInstances().whenCompleteAsync((instances, error) -> {
78+
EInstance[] array = Arrays.stream(instances)
79+
.filter(instance -> instance.getType() == type)
80+
.toArray(EInstance[]::new);
81+
82+
future.complete(array);
7383
});
7484

7585
return future;
@@ -134,4 +144,25 @@ public boolean inGameInstance(String name) {
134144

135145
return false;
136146
}
147+
148+
private void getInstances(CompletableFuture<EInstance[]> future, Request request) {
149+
okHttp.newCall(request).enqueue(new Callback() {
150+
@Override
151+
public void onFailure(@NotNull Call call, @NotNull IOException e) {
152+
e.printStackTrace();
153+
}
154+
155+
@Override
156+
public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
157+
try (ResponseBody body = response.body()) {
158+
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
159+
160+
assert body != null;
161+
EInstanceList instances = gson.fromJson(body.string(), EInstanceList.class);
162+
163+
future.complete(instances.getInstances());
164+
}
165+
}
166+
});
167+
}
137168
}

proxy/src/main/java/fr/epsilon/exporter/listener/EpsilonRegister.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package fr.epsilon.exporter.listener;
22

33
import fr.epsilon.common.Epsilon;
4-
import fr.epsilon.common.InstanceInformer;
5-
import fr.epsilon.common.InstanceInformerListener;
4+
import fr.epsilon.common.informer.InstanceInformer;
5+
import fr.epsilon.common.informer.InstanceInformerListener;
66
import fr.epsilon.common.instance.EInstance;
77
import fr.epsilon.common.instance.EState;
88
import fr.epsilon.common.instance.EType;

0 commit comments

Comments
 (0)