Wunsch: Vorlagen fuer opsi-newprod

Antworten
Benutzeravatar
embl-structures
Beiträge: 327
Registriert: 13 Jan 2010, 18:41
Wohnort: Heidelberg
Kontaktdaten:

Wunsch: Vorlagen fuer opsi-newprod

Beitrag von embl-structures »

Hallo,

IMHO ein sehr nuetzliches Feature fuer `opsi-newprod` waere, wenn sich - z.B. als Kommandozeilenoption - ein Vorlagenverzeichnis angeben liesse, dessen Inhalt beim Erstellen eines neuen Paketes in das Verzeichnis CLIENT_DATA kopiert wuerde. Da vermutlich jeder, der selber einige Pakete gebaut hat, nach kurzer Zeit ein Set von eigenen Vorlagen und Verzeichnisstrukturen hat, wuerde dies das manuelle Kopieren der Daten ueberfluessig machen.

Gruss
frank
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

Re: Wunsch: Vorlagen fuer opsi-newprod

Beitrag von n.wenselowski »

Hallo frank,

wenn ich das richtig sehe, erstellt opsi-newprod die entsprechenden Ordner / Dateien während der Ausführung und die Vorlagen sind im Script hinterlegt.
Von daher ist das kein ganz so kleiner Umbau, da hier erst die Funktionalität geschaffen werden muss von einem Template-Verzeichnis aus die Dateien zu kopieren.

Ich habe dafür ein internes Ticket aufgemacht.
Wie immer kann durch einen Support-Vertrag die Umsetzung erheblich beschleunigt werden ;)

Mit freundlichen Grüßen

N. Wenselowski

Code: Alles auswählen

import OPSI
Benutzeravatar
embl-structures
Beiträge: 327
Registriert: 13 Jan 2010, 18:41
Wohnort: Heidelberg
Kontaktdaten:

Re: Wunsch: Vorlagen fuer opsi-newprod

Beitrag von embl-structures »

n.wenselowski hat geschrieben:[...]
wenn ich das richtig sehe, erstellt opsi-newprod die entsprechenden Ordner / Dateien während der Ausführung und die Vorlagen sind im Script hinterlegt.
Von daher ist das kein ganz so kleiner Umbau, da hier erst die Funktionalität geschaffen werden muss von einem Template-Verzeichnis aus die Dateien zu kopieren.
Eigentlich ist es - wie gerade durch etwas Herumprobieren herausgefunden habe - sogar sehr einfach ;) (ich hatte urspruenglich gemeint, opsi-newprod sei ein kompiliertes Binary):
  • Zusaetzliche Kommandozeilenoption mit Argument fuer opsi-newprod definieren
  • Am Ende des Skriptes - falls dieses Argument existiert - den Inhalt des Vorlagenverzeichnisses rekursiv kopieren
Anbei ein Patch fuer opsi-newprod, welches auf sehr krude Weise die Verwendung eines Templateverzeichnisses implementiert. Aufruf mit opsi-newprod [-t <template_directory>]. "Dank" meiner Python-Unkenntnisse ohne jegliche Fehlerbehandlung und ohne jegliche Tests. Das Feintuning ueberlasse ich gerne euch, sofern ihr eine solche Funktion ueberhaupt einbauen wollt.

Code: Alles auswählen

diff -c `which opsi-newprod` opsi-newprod 
*** /usr/bin/opsi-newprod	2012-10-22 13:49:43.000000000 +0200
--- opsi-newprod	2013-12-10 13:49:00.000000000 +0100
***************
*** 49,54 ****
--- 49,55 ----
  
  # Globals
  ui = None
+ usetemplate = 0
  
  try:
  	t = gettext.translation('opsi-utils', '/usr/share/locale')
***************
*** 70,76 ****
  	destDir = os.getcwd()
  	
  	try:
! 		(opts, args) = getopt.getopt(argv, "h")
  	
  	except getopt.GetoptError:
  		usage()
--- 71,77 ----
  	destDir = os.getcwd()
  	
  	try:
! 		(opts, args) = getopt.getopt(argv, "ht:")
  	
  	except getopt.GetoptError:
  		usage()
***************
*** 80,85 ****
--- 81,89 ----
  		if   (opt == "-h"):
  			usage()
  			return
+ 		if   (opt == "-t"):
+ 			templatedir = arg
+ 			usetemplate = 1
  	
  	if (len(args) > 1):
  		logger.error(u"Too many arguments")
***************
*** 589,594 ****
--- 593,601 ----
  	print >> postinst, u'#'
  	postinst.close()
  	os.chmod(os.path.join(productSourceDir, 'OPSI', 'postinst'), 0700)
+ 
+ 	if usetemplate:
+ 		os.system("cp -rf " + templatedir + "/* " + os.path.join(productSourceDir, 'CLIENT_DATA'))
  	
  	ui.showMessage(title=_('Done'), text = _("Package source directory '%s' created") % productSourceDir, width = 70, height = 3)
  	
pcpatch@sauron:/home/opsiproducts$ 
Liebe Gruesse
frank
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

Re: Wunsch: Vorlagen fuer opsi-newprod

Beitrag von n.wenselowski »

Hallo Frank,

vermutlich war meine Schätzung zu hoch, weil ich am liebsten alles auf ein Template-basierendes System umstellen wollte ;)

Danke für deinen Patch!
Vermutlich wird das Feature sich in ähnlicher Weise in 4.0.4.3 wiederfinden (ohne Garantie ;)).


Viele Grüße

Niko

Code: Alles auswählen

import OPSI
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

Re: Wunsch: Vorlagen fuer opsi-newprod

Beitrag von n.wenselowski »

n.wenselowski hat geschrieben:Vermutlich wird das Feature sich in ähnlicher Weise in 4.0.4.3 wiederfinden (ohne Garantie ;)).
Feature ist eingebaut und sollte mit 4.0.4.3 den Weg an die Öffentlichkeit finden.


Gruß

Niko

Code: Alles auswählen

import OPSI
Antworten