Skip to content

Commit ad4a3fe

Browse files
committed
Remove HUB command / Update informer / Update API
1 parent 6e4579e commit ad4a3fe

File tree

5 files changed

+37
-50
lines changed

5 files changed

+37
-50
lines changed

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

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ public class Epsilon extends EpsilonAPI {
4141
private Template template;
4242

4343
public Epsilon() {
44+
this(true);
45+
}
46+
47+
public Epsilon(boolean internal) {
4448
Path namespacePath = Paths.get("/var/run/secrets/kubernetes.io/serviceaccount/namespace");
4549

4650
try (Stream<String> lines = Files.lines(namespacePath)) {
@@ -63,10 +67,12 @@ public Epsilon() {
6367
OkHttpClient okHttp = new OkHttpClient();
6468
Gson gson = new Gson();
6569

66-
try (FileReader reader = new FileReader("./details.epsilon")) {
67-
this.template = gson.fromJson(reader, Template.class);
68-
} catch (IOException e) {
69-
Logger.getAnonymousLogger().info("Read details.epsilon failed.");
70+
if (internal) {
71+
try (FileReader reader = new FileReader("./details.epsilon")) {
72+
this.template = gson.fromJson(reader, Template.class);
73+
} catch (IOException e) {
74+
Logger.getAnonymousLogger().info("Read details.epsilon failed.");
75+
}
7076
}
7177

7278
this.name = System.getenv("HOSTNAME");

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

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import io.kubernetes.client.informer.SharedIndexInformer;
1111
import io.kubernetes.client.informer.SharedInformerFactory;
1212
import io.kubernetes.client.informer.cache.Lister;
13+
import io.kubernetes.client.openapi.ApiException;
1314
import io.kubernetes.client.util.generic.GenericKubernetesApi;
1415

1516
import java.util.ArrayList;
@@ -24,31 +25,41 @@ public class InstanceInformer extends EInstanceInformer {
2425

2526
private List<EInstanceInformerListener> listeners;
2627

28+
private String namespace;
29+
private GenericKubernetesApi<EpsilonInstanceCRD, EpsilonInstanceCRDList> epsilonInstanceClient;
30+
2731
public InstanceInformer(String namespace, SharedInformerFactory informerFactory, GenericKubernetesApi<EpsilonInstanceCRD, EpsilonInstanceCRDList> epsilonInstanceClient) {
2832
this.instanceInformer = informerFactory.sharedIndexInformerFor(epsilonInstanceClient,
29-
EpsilonInstanceCRD.class, TimeUnit.SECONDS.toMillis(1), namespace);
33+
EpsilonInstanceCRD.class, TimeUnit.MINUTES.toMillis(5), namespace);
3034

3135
this.instanceStore = new Lister<>(instanceInformer.getIndexer());
3236

3337
this.listeners = new ArrayList<>();
3438

39+
this.namespace = namespace;
40+
this.epsilonInstanceClient = epsilonInstanceClient;
41+
3542
instanceInformer.addEventHandlerWithResyncPeriod(new ResourceEventHandler<EpsilonInstanceCRD>() {
3643
@Override
3744
public void onAdd(EpsilonInstanceCRD instance) {}
3845

3946
@Override
4047
public void onUpdate(EpsilonInstanceCRD oldInstance, EpsilonInstanceCRD newInstance) {
41-
if (newInstance.getStatus() != null)
42-
for (EInstanceInformerListener listener : listeners)
43-
listener.onInstanceUpdate(newInstance.getInstance());
48+
update(newInstance);
4449
}
4550

4651
@Override
4752
public void onDelete(EpsilonInstanceCRD instance, boolean deletedFinalStateUnknown) {
4853
for (EInstanceInformerListener listener : listeners)
4954
listener.onInstanceRemove(instance.getInstance());
5055
}
51-
}, TimeUnit.SECONDS.toMillis(1));
56+
}, TimeUnit.MINUTES.toMillis(10));
57+
}
58+
59+
private void update(EpsilonInstanceCRD instance) {
60+
if (instance.getStatus() != null)
61+
for (EInstanceInformerListener listener : listeners)
62+
listener.onInstanceUpdate(instance.getInstance());
5263
}
5364

5465
@Override
@@ -80,5 +91,12 @@ public Instance[] getInstances(EType type) {
8091
@Override
8192
public void registerListener(EInstanceInformerListener listener) {
8293
listeners.add(listener);
94+
95+
try {
96+
for (EpsilonInstanceCRD instance : epsilonInstanceClient.list(namespace).throwsApiException().getObject().getItems())
97+
update(instance);
98+
} catch (ApiException e) {
99+
throw new RuntimeException(e);
100+
}
83101
}
84102
}

proxy/src/main/java/fr/epsilon/exporter/EpsilonExporter.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package fr.epsilon.exporter;
22

33
import fr.epsilon.common.Epsilon;
4-
import fr.epsilon.exporter.commands.HubCommand;
54
import fr.epsilon.exporter.listener.EpsilonConnection;
65
import fr.epsilon.exporter.listener.EpsilonRegister;
76
import net.md_5.bungee.api.plugin.Plugin;
@@ -33,8 +32,6 @@ public void onEnable() {
3332

3433
EpsilonEventStream.init(this);
3534

36-
getProxy().getPluginManager().registerCommand(this, new HubCommand(this));
37-
3835
try {
3936
Path path = Paths.get("epsilon_start");
4037
Files.createFile(path);

proxy/src/main/java/fr/epsilon/exporter/commands/HubCommand.java

Lines changed: 0 additions & 34 deletions
This file was deleted.

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,10 @@ public EpsilonConnection(EpsilonExporter main) {
4141

4242
@EventHandler
4343
public void onPing(ProxyPingEvent event) {
44-
ServerPing ping = event.getResponse();
45-
String visibleSlots = template.getLabels().getOrDefault("visible-slots", "1000");
46-
47-
ping.getPlayers().setMax(Integer.parseInt(visibleSlots));
44+
// ServerPing ping = event.getResponse();
45+
// String visibleSlots = template.getLabels().getOrDefault("visible-slots", "1000");
46+
//
47+
// ping.getPlayers().setMax(Integer.parseInt(visibleSlots));
4848
}
4949

5050
@EventHandler

0 commit comments

Comments
 (0)