TODO - Liste Satellite - Deamon.
Befehlszeilenoptionen:
[x] * Wird der sat-daemon ohne Optionen gestartet, soll er versuchen, eine
existierende Identität zu laden. Sofern die Organization nicht gesetzt ist,
oder das laden des Keys durch den AsymKeyHolder fehlschlägt, beendet sich der
Daemon sofort wieder.
[x] * Option --checkconfig
Überprüft, ob die Identity richtig konfiguriert ist, d.h. eine Organization
gesetzt, gültiger ladbarer Private+Public key. Wenn ja, System.exit(0), sonst
System.exit(>0)
[x] * Option --genid <ORGANIZATIONNAME>
Generiert eine neue Identity mit dem übergebenen Organization-Name, und
generiert ein neues Schlüsselpaar. Alles in die identity.properties speichern
und bei Erfolg System.exit(0), sonst >0.
[x] * Option --import <ORGANAME> <MODULUS> <PRIV_EXP> <PUB_EXP>
Die Übergebene Identity in identity.properties speichern. Dabei sollte auch
überprüft werden, ob es sich um ein gültiges Schlüsselpaar handelt. Wenn alles
klappt. wieder exit(0), sonst >0.
[x] * Option --submitkey <IPADDRESS>
Lädt die Identity, prüft Keypair auf Gültigkeit, und ruft anschließend per
Thrift die Methode registerSatellite auf. Die übergeben IP Adresse wird einfach
ungeprüft übermittelt. Für den Aufruf dieser Methode ist keine gültige Session
nötig (da der Master ja die Identität dieses Satelliten noch gar nicht kennt).
Tritt irgendwo ein Fehler auf, System.exit(>0), wenn der Aufruf klappt und die
Methode true zurück gibt, .exit(0)
[x] * Option --updateaddress <IPADDRESS>
Ruft mittels Thrift die Methode updateSatelliteAddress auf. Im Gegensatz zu
submitkey braucht man hier eine gültige Session mit dem Master, wie bei z.B.
getUploadInfos... Ebenfalls nur System.exit(0) aufrufen, wenn alle Schritte
klappen und der Methodenaufruf true zurückgibt, sonst >0.
Kannst dir noch überlegen, ob du für wiederkehrende Aufgaben Hilfsfunktionen
baust. Für die einzelnen Optionen dürften weitere statische Methoden in der
App.java ausreichen, damit es nicht eine fette main() gibt.