[
next
] [
prev
] [
prev-tail
] [
tail
] [
up
]
E.4.4
Ablaufumgebung
#!/usr/local/bin/python
# -------------------------------------------------------------
# Projekt : Digitale Bibliotheken Projekt
# Uni-Frankfurt/M, Professur Telematik und
# verteilte Systeme, Prof. O. Drobnik
# Diplomarbeit, Matzen,Hans, 1997
#
# Dateiname : py_abl.py
# Datum : 03.11.1997
# letzte Änderung :
# Autor : Hans Matzen, 1997, Frankfurt/M, Deutschland
# Sprache : Python v1.4
# Beschreibung :
#
# Anmerkungen :
#
# -------------------------------------------------------------
def
exec_mc(docid,methodtmpfile,params,datafname=
""
):
exectmpfile=class_funcs.getuniquename()
fd1=c_bsio.c_bsio(exectmpfile,
"a+"
)
fd1.open()
# schreibe skript header
fd1.write(DL_EXECPYTHON+
"\n"
)
fd1.write(
"# Dieses Skript wurde automatisch erstellt.\n"
)
fd1.write(
"# Digitale Bibliotheken Projekt, Uni-Frankfurt\n"
)
fd1.write(
"# Lehrstuhl Telematik, 1997\n\n"
)
fd1.write(
"from sc_globals import *\n\n"
)
# schreibe globale systemvariablen
# docid und datasource setzen
if
datafname!=
""
:
fd1.write(
"CURRENT_INFILE=\""
+datafname+
"\"\n"
)
fd1.write(
"DOCID="
+str(docid)+
"\n"
)
fd1.write(
"# --------------- auto header ende -------------\n"
)
# die Methode dranhaengen
fd2=c_bsio.c_bsio(methodtmpfile,
"r"
)
fd2.open()
buff=
" "
while
buff!=
""
:
buff=fd2.read(
512
)
fd1.write(buff)
fd2.close()
fd1.close()
# Methode ausfuehren, aufraeumen und Rueckmeldung schicken
posix.chmod(exectmpfile,
0755
)
if
os.system(exectmpfile+
" "
+params+
">"
+TMPPATH+
"output.dali"
)==
0
:
log.log(
"Methode ohne Fehler ausgefuehrt."
)
# hole Methoden Output
fdd=open(DL_TMPPATH+
"output.dali"
,
"r"
)
erg=
""
buff=
" "
while
buff!=
""
:
buff=fdd.readline()
erg=erg+buff
fdd.close()
ret=
"RESULT "
+str(docid)+
"\n"
+erg
del
erg,buff,fdd
else
:
log.log(
"Fehler beim Ausfuehren der Methode."
)
ret=
"ERROR "
+str(docid)+
"\n"
+erg
# temporaere Dateien loeschen
os.system(
"rm "
+
"-f "
+methtmpfile)
os.system(
"rm "
+
"-f "
+exectmpfile)
os.system(
"rm "
+
"-f "
+DL_TMPPATH+
"output.dali"
)
# und ergebnis zurueckgeben
return
ret
[
next
] [
prev
] [
prev-tail
] [
front
] [
up
]