Es ist 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
Das folgende Shell-Skript erledigt den Import automatisch:
#!/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" "$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