Ich erforsche die (undocumented?) events()
API in Fabric8's Kubernetes client project.In einem Watcher im fabric8 Kubernetes Client Ereignisse() API, welche Ressourcen kann ich sehen?
Insbesondere sehe ich, dass ich so etwas wie folgendes tun:
client.events().inAnyNamespace().watch(new Watcher<Something>() {
@Override
public final void eventReceived(final Action action, final Something something) {
}
@Override
public final void onClose(final KubernetesClientException kubernetesClientException) {
if (kubernetesClientException != null) {
// log? throw?
}
}
});
Was sind die zulässigen Werte von something
und Something
für etwas Nützliches zu geschehen? Ich nehme an, sie sind angeblich Dinge wie Pods, Services, etc. zu sein, aber ich bin mir nicht sicher.
Watcher
's sole type parameter is declared as <T>
, so würde es scheinen, ich könnte eine neue Watcher<Integer>
erstellen, aber ich bin bereit, Geld zu wetten, das nie aufgerufen werden wird. Dies deutet darauf hin, dass es tatsächlich eine Grenze in der Praxis auf <T>
gibt, aber ich weiß nicht, was es ist, oder warum es weggelassen worden wäre, wenn es so wäre.
Wenn ich raten müsste, würde ich aus dem Parameternamen erraten, resource
, dass es so etwas wie T extends
Resource
<?, ?>
aber auch hier wäre, das ist nur eine Vermutung.
Vielen Dank für Hinweise, insbesondere auf andere Dokumentation, die ich sicher verpasst habe.
Update # 1: Von hämmern um im Quellcode, kann ich sehen, dass der einzige Ort, der ein Watcher.Action
‚s eventReceived()
Methode forces the payload to be considered to be a HasMetadata
object genannt wird. Vielleicht ist das meine Antwort?
Vielen Dank für Ihre Antwort. Sind das die einzigen erlaubten Typen? Oder kann ich einen Subtyp "Ressource" beobachten? Wenn ja, warum wird nicht "T" deklariert, stattdessen "T extends Resource , ?>"? –
Ich glaube, dass Sie alle Jobs oder sogar alle Ereignisse beobachten können –
Vielen Dank für Ihren Kommentar. Ich sehe 'Pod.java' nicht an irgendeinem offensichtlichen Ort (besonders hier: https://github.com/fabric8io/kubernetes-model/tree/master/kubernetes-model/src/main/java/io/fabric8/ kubernetes/api/Modell). Ist es ... erzeugt? in einem anderen Projekt? –