Software Challenge : Exportieren alter Clients und Logs

Es ist nun möglich, mit einem Raketask die Clients eines Wettbewerbes oder einer ganzen Saison aus dem System zu exportieren. Dabei wird im Zielverzeichnis ein tar-Archiv mit dem Namen "contest#{contest.subdomain}.tar.gz" bzw. "season#{season.id}.tar.gz" angelegt. Das Zielverzeichnis kann mit dem Argument "destination" (Pfad in Anführungszeichen!) angegeben werden. Standardmäßig wird das Verzeichnis Rails.root/public/system/ als Zielverzeichnis genutzt.

Das exportiere Archiv hat folgendem Inhalt:

  • Die Daten aller erstellten Computerspieler als YAML-Export, geordnet nach ID des Wettbewerbs, ID des Teams und ID des Computerspielers. Dazu gehören auch die zugehörigen Kommentare.
  • Die hochgeladenen Archive aller Computerspieler, auf dieselbe Weise sortiert, im Unterordner "archive"
  • Überordner "clientlogs"
  • Alle zum betreffenden Wettbewerb/Saison gehörenden Serverlogs im Überordner "serverlogs".

Der Export einer Saison verhält sich genauso wie der Export der einzelnen zur Saison gehörenden Wettkämpfe mit dem Unterschied, dass diese in einem Archiv zusammengefasst sind.

Durchgeführt wird der Export mit

rake socha:export_clients contest="subdomain" RAILS_ENV="production"

bzw

rake socha:export_clients season="seasonid" RAILS_ENV="production"

Sollen die betreffenden Clients und Logs auch sofort aus dem System gelöscht werden, ist statt

rake socha:export_clients

der Befehl

rake socha:export_and_destroy_clients

zu benutzen.

Theoretisch ist es dann sogar möglich, die Daten aus dem exportierten Archiv auch wieder in die WebApp zu importieren unter der Voraussetzung, dass die entsprechende Saison/Wettbewerbe und Teams noch existieren.