- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Projekt per Kommandozeile importieren?
Hallo,
ein Kollege spielt grad etwas mit "Docker" rum und kann damit eine komplette FS-Serverumgebung kapseln. Jetzt war die Frage, ob man auf Basis der Kommandozeile ein beliebigen Projektexport importieren kann?! Das kรถnnte man z.B. nutzen, um schnell einen Showcase fรผr bestimmte Projekte aufzusetzen oder auch fรผr die schnelle Erstellung von Testumgebungen (Migrationstests etc.).
Ich gehe davon aus, dass man alles, was man manuell im ServerManager auswรคhlen kann auch irgendwie scripten kann, schรคtze aber, dass es mehr als ein Dreizeiler wird. Kann man es mรถglicherweise direkt รผber die (Linux-)Shell machen, z.B. รผber einen Installer oder sowas? Oder muss man sich auf jeden Fall mit dem Server verbinden und dann รผber die API gehen? Gibt es da Erfahrungen, wie man am besten vorgeht oder gar Hilfsmittel, die den automatisierten Import vereinfachen? Jeder Tipp wird gerne genommen. Danke!
Grรผรe
Matthias
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Matthias,
Du wirst nicht drumrum kommen, ein kleines Tool zu schreiben, welches sich mit dem Server verbindet und den Projektimport dann รผber die API vornimmt. Wird zwar kein Dreizeiler, aber auch nicht viel mehr. ๐ In unseren Abteilungen gehen wir in den automatisierten Tests denselben Weg.
Viele Grรผรe
Donato
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Matthias,
Du wirst nicht drumrum kommen, ein kleines Tool zu schreiben, welches sich mit dem Server verbindet und den Projektimport dann รผber die API vornimmt. Wird zwar kein Dreizeiler, aber auch nicht viel mehr. ๐ In unseren Abteilungen gehen wir in den automatisierten Tests denselben Weg.
Viele Grรผรe
Donato
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Matthias,
benรถtigst du noch weitere Hilfe oder hat dir Donatos Antwort bereits geholfen? In diesem Fall wรคre es toll, wenn du seine "richtige Antwort" entsprechend markierst.
Solltest du zwischenzeitlich eine eigene Lรถsung gefunden haben, wรคre es super, wenn du diese hier bereitstellst.
Viele Grรผรe
Michaela
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo zusammen,
bin bei der Suche nach 'Docker' auf diesen Thread gestoรen und hoffe, dass ich den reaktivieren darf. Habe auch zig FirstSpirit-Instanzen in Docker-Containern laufen und will nun noch den Projektimport, die Installation von Modulen, das Einspielen von templates usw. automatisieren. Der Projektimport (des Mithras 2.0 Projekts) in FS 5.2.311 (andere Versionen habe ich nicht probiert) scheitert mit einer NPE, wenn ich das รผber die API durchfรผhre:
12.02.2016 10:54:45.910 Converting schedule entry 'generate partly' (old id = 21364, new id = 11384)
12.02.2016 10:54:45.910 Converting schedule entry 'Full Deployment' (old id = 21365, new id = 11385)
12.02.2016 10:54:45.911 Converting schedule entry 'generate full' (old id = 21366, new id = 11386)
12.02.2016 10:54:45.911 Converting schedule entry 'Delta Deployment' (old id = 21360, new id = 11387)
12.02.2016 10:54:45.911 Converting schedule entry 'Repair references' (old id = 21361, new id = 11388)
12.02.2016 10:54:45.911 Converting schedule entry 'Teildeployment' (old id = 21362, new id = 11389)
12.02.2016 10:54:45.911 Converting schedule entry 'Rebuild search index' (old id = 21363, new id = 11390)
12.02.2016 10:54:45.914 Importing schedule storage
12.02.2016 10:54:45.921 Importing schedule storage
12.02.2016 10:54:45.922 Importing schedule storage
12.02.2016 10:54:45.922 Importing schedule statistics
12.02.2016 10:54:45.923 Importing schedule task templates
12.02.2016 10:54:45.924 Error importing project CMO Mithras 2.0 - java.lang.NullPointerException
12.02.2016 10:54:45.924 FSVersion=5.2.311.72449#4587;JDK=1.8.0_72 64bit Oracle Corporation;OS=Linux 3.16.7-29-desktop amd64;Date=12.02.2016 10:54:45
java.lang.NullPointerException
at de.espirit.firstspirit.server.export.importhandler.ScheduleImportHandler$Helper.importScheduleTaskTemplates(ScheduleImportHandler.java:101)
at de.espirit.firstspirit.server.export.importhandler.ScheduleImportHandler.transfer(ScheduleImportHandler.java:63)
at de.espirit.firstspirit.server.export.ProjectImporter.call(ProjectImporter.java:396)
at de.espirit.firstspirit.server.export.ProjectImporter.call(ProjectImporter.java:66)
at de.espirit.firstspirit.server.action.ServerActionManagerImpl$ServerActionCallableWrapper.call(ServerActionManagerImpl.java:415)
at de.espirit.firstspirit.server.action.ServerActionManagerImpl$ServerActionCallableWrapper.call(ServerActionManagerImpl.java:396)
at de.espirit.firstspirit.server.ExecutionManagerImpl$ExtendedCallable.call(ExecutionManagerImpl.java:600)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at de.espirit.common.util.BoundedExecutorService$RunnableWrapper.run(BoundedExecutorService.java:436)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
at de.espirit.common.util.SuspendableThread.run(SuspendableThread.java:55)
Der Code:
...
upload = projectStorage.uploadExportFile(exportFile.getName(), fis);
if (upload != null) {
ProjectInfo projectInfo = projectStorage.getProjectInfo(upload);
Map<String, String> layerMapping = new HashMap<String, String>();
String layerName = "";
for (final Properties property : projectInfo.getUsedLayers()) {
layerName = property.getProperty("name");
layerMapping.put(layerName, null);
}
ImportParameters importParams = new ImportParameters(upload, projectInfo, projectName, projectDescription, layerMapping, new HashMap<Long, Long>());
importParams.setActivateDeployments(true);
importParams.setActivateProject(true);
ServerActionHandle<ImportProgress, Boolean> importHandle = projectStorage.startImport(importParams);
Ich hoffe, mir kann jemand eine Idee vermitteln, ob in unserem Code was fehlt oder was sonst die Ursache der NPE sein kรถnnte.
Danke. Heiko
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Heiko,
kannst du bitte ein neues Posting erรถffnen und lediglich auf diesen Thread verweisen?
Dieser Thread taucht in unserer Ansicht unbeantworteter Postings nicht mehr auf und wird daher unter Umstรคnden untergehen.
Ein neu erstelltes Posting erscheint jedoch immer in der Ansicht.
Danke im Voraus und viele Grรผรe
Michaela
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Michaela,
danke fรผr den Hinweis. Ich konnte das Problem mit der NPE durch "Nachdenken" umschiffen, indem ich Mappings fรผr die im Export enthaltenen ScheduleTaskTemplates setze:
...
List<ScheduleTaskTemplateDTO> scheduleTaskTemplates = projectInfo.getServerScheduleTaskTemplates();
Map<Long, Long> scheduleTaskTemplateMapping = new HashMap<Long, Long>();
for (ScheduleTaskTemplateDTO scheduleTaskTemplate : scheduleTaskTemplates) {
scheduleTaskTemplateMapping.put(Long.valueOf(scheduleTaskTemplate.getId()), -1L);
}
ImportParameters importParams = new ImportParameters(upload, projectInfo, projectName, projectDescription, layerMapping,
scheduleTaskTemplateMapping);
Vielleicht guckt sich das jemand an und sagt mir, ob es nicht nur funktioniert, sondern auch richtig so ist.
Die NPE wรผrde ich ja gern als Bug sehen, aber ohne hรคtte ich wahrscheinlich gar nicht mitbekommen, dass da was nicht importiert wird. Eine entsprechende Fehlermeldung/Exception wรคre natรผrlich trotzdem gut.
Einen extra Thread mach' ich jetzt nicht auf, wollte meine Lรถsung nur noch hier dokumentieren.
Beste Grรผรe,
Heiko

