Seitenhistorie
Inhalt | ||
---|---|---|
|
Ab Nuclos v4.8.0 ist es möglich, über die REST-Schnittstelle einen Nuclet-Import durchzuführen.
Hierzu ist eine Session als Superuser nötig, mit der das gezipte Nuclet an den Maintenance-Service geschickt wird.
Für den Nuclet-Import selbst können bisher keine Einstellungen vorgenommen werden, daher gilt für Nuclet-Parameter:
- Neue Parameter werden importiert
- Geänderte Parameter bleiben unverändert
- Gelöschte Parameter werden entfernt
Shell-Skript
Das folgende Shell-Skript erledigt den Import automatisch:
Codeblock | ||
---|---|---|
| ||
#!/bin/bash export NUCLOS_URL=${1:-'http://localhost:80/nuclos'} export NUCLOS_USER='nuclos' export NUCLOS_PASSWORD='' # directory where this script is stored export DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) # import all nuclets inside 'testnuclets' NUCLETDIR="$DIR/nuclet" echo "\n\nImporting nuclet ${NUCLETDIR}" # Login curl --fail --cookie-jar $DIR/cookies.txt $NUCLOS_URL/rest -X POST -H "Accept:application/json" -H "Content-Type: application/json" -d '{"username":"'$NUCLOS_USER'", "password":"'$NUCLOS_PASSWORD'"}' # exit if curl was not successful if [ $? -ne 0 ]; then echo "[ERROR] Login failed" exit 1 fi # zip nuclet rm -f "nucletimport.nuclet" cd ${NUCLETDIR} zip -r ../nucletimport.nuclet . cd .. # send zipped nuclet to server curl --fail --cookie $DIR/cookies.txt -F "file=@nucletimport.nuclet" -F "filename=nucletimport.nuclet" "$NUCLOS_URL/rest/maintenance/nucletimport" # test if curl was successful if [ $? == "0" ] then echo "Import successful" else echo "[ERROR] Import failed" fi # Logout curl -s --cookie cookies.txt -X DELETE $NUCLOS_URL/rest |
Das Skript geht von folgenden Default-Werten aus:
Nuclos URL = http://localhost:80/nuclos
User = nuclos
Passwort =
Nuclet = Verzeichnis "nuclet" im gleichen Verzeichnis wie das Skript, das das ungepackte Nuclet enthält (Nuclet-Export als "SVN-Verzeichnis")
Die Nuclos URL kann als erster Kommandozeilen-Parameter übergeben werden, z.B.: ./nucletimport.sh http://localhost:8082/nuclos-war
Beispiel Code für Windows:
Codeblock |
---|
curl --fail --cookie-jar cookies.txt -X POST -H "Content-Type: application/json" -d "{ \"username\": \"nuclos\", \"password\": \"\" }" http://localhost:8082/meinprojekt/rest curl --fail --cookie cookies.txt -F "file=@nucletimport.nuclet" -F "filename=nucletimport.nuclet" http://localhost:8082/meinprojekt/rest/maintenance/nucletimport |