FS5.2R15: Merkmal ob System Prod oder Staging ist
Author: aVogt
Publication Date: 1/29/2018 14:40
Hallo,
ich möchte (muss) einen Serverauftrag erstellen. Der Auftrag stellt über alle Projekte die vergebenen Rechte (wer hat in in den unterschiedlichen Projekten und unterschiedlichen Stores auf welchem "Ordner" welche Rechte und welche Rechte sind über "CMS_INPUT_PERMISSION" an bestimmten Elementen vergeben) zusammen und schreibt diese in eine Datei in ein Verzeichnis auf einem anderen Server.
Das ist alles so gut wie fertig und funktioniert auch.
Der einzige Unterschied zwischen Test- und Produktivsystem ist das Zielverzeichnis und der Dateiname.
Damit ich dem Script nicht übergeben muss um welchen System es sich handelt (Test- oder Prod) suche ich nach einer Möglichkeit automatisch herauszubekommen um welches System es sich handelt.
Zwei Wege fallen mir ein, aber ich habe keine Ahnung wie ich daran komme.
- Wert SYMBOLIC_HOSTNAME aus der fs-server.conf - da habe ich einen Namen vergeben, aus dem ersichtlich ist, um welches System es sich handelt
- Wenn ich die Startseite des Systems aufrufe, wird im Testsystem "der Staging-Ahänger" angezeigt. im Produktivsystem der "Production".
Hat jemand eine Idee, wie ich an die Werte herankomme? Oder hat jamand einen anderen Tipp zur Systemunterscheidung?
Da das automatisch oder manuell als (server)Auftragsscript ausgeführt wird, habe ich die Serverconnection und den ScheduleContext.
Danke.
Andreas
-
Author: mikula - 2/8/2018 14:16
cat fs-license.conf | grep license.TYPE
suchst du sowas?0 -
Author: aVogt - 2/8/2018 15:24
So was wäre schon gut, allerdings wäre es wünschenswert über die API. Sonst muss ich den kompletten Pfad auf die fs-licens.conf angeben, was ich nicht so schön fände (wir überlegen eventuell die Serverplattform zu wechseln - das ist aber nicht sicher)
0 -
Author: felix_reinhold - 2/9/2018 14:32
Wäre spannend zu wissen, ob es hierfür eine Lösung über die freigegebene API gibt.
Ich hatte mal für einen Delivery-Anwendungsfall in meinem DEV-System folgendes genutzt (Beispiel mit Remote-Zugriff):
import de.espirit.firstspirit.access.Connection;
import de.espirit.firstspirit.access.ConnectionManager;
import de.espirit.firstspirit.manager.LicenseManager;
import de.espirit.firstspirit.manager.LicenseManager.LicenseType;
import de.espirit.firstspirit.manager.LicenseManagerProxy;
import de.espirit.firstspirit.server.io.AbstractServerConnection;
Connection connection = ConnectionManager.getConnection(host, port, mode, user, password);
ConnectionManager.setUseHttps(false);
try {
connection.connect();
AbstractServerConnection enhancedConnection = (AbstractServerConnection) connection;
LicenseManagerProxy manager = (LicenseManagerProxy) enhancedConnection.getManager(LicenseManager.class);
LicenseType type = manager.getLicenseType();
System.out.println("License-Type: " + type.name());
} catch (Exception e) {
e.printStackTrace();
} finally {
if (connection != null && connection.isConnected()) {
try {
connection.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Die Klassen befinden sich zwar alle in der fs-access.jar, sind aber zum Großteil nicht Teil der fs-api.jar -
Nutzung also nur für Tests und Dev-Systeme empfehlenswert ;-)
LicenseType gibt dann entsprechend Staging, Development etc. zurück.
Gruß
Felix
0 -
Author: aVogt - 2/12/2018 10:48
Hallo Felix,
Danke dafür.
Wie auch immer bin ich gerade durch Dein Codebeispiel auf die ServerConfiguration gestoßen. Darüber bekommt man die Systemurl und somit eigentlich auch das System heraus.
ServerConfiguration serverConfig = connection.getServerConfiguration();
String systemUrl = serverConfig.getUrl());
Und man bewegt sich in der öffentlichen API.
Vielleicht versteckt sich ja die Lizenz ja auch noch irgendwo in der öffentlichen API.
Grüße
Andreas
0 -
Author: witt - 2/15/2018 13:05
Hallo Andreas,
reicht Dir eventuell schon der ServerInformationAgent aus?
de.espirit.firstspirit.agency.ServerInformationAgent
Viele Grüße,
Daniel
0 -
Author: felix_reinhold - 2/15/2018 13:21
Wenn die Server auf unterschiedlichen Versionen laufen ja... :smileylaugh:
0 -
Author: aVogt - 2/16/2018 10:23
Hallo Daniel,
das ist auch ein Weg. Allerdings bin ich da auch wieder abhängig was als Servername vergeben wurde.
Ich gehe jetzt über die URL um die Systemart zu ermitteln.
Grüße
Andreas
0
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.
Kommentare
7 Kommentare