Annotation of ZSQLExtend/ZSQLUpdate.py, revision 1.2
1.1 dwinter 1: from OFS.Folder import Folder
2: from Globals import DTMLFile,package_home
1.2 ! dwinter 3: from tempfile import mkstemp
1.1 dwinter 4: from AccessControl import getSecurityManager
5: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
6: import urllib
7: import os.path
8: import zLOG
9:
10:
11:
12: """Webfrontend fuer das Update der Datenbanken ueber das Web mithilfe von
13: fm.jar
14: """
15:
16: class ZSQLUpdate(Folder):
17: """Klasse zum update, in den Folder werden die verschiedenen Update XML files hineingelegt"""
18: meta_type="ZSQLUpdate"
19:
20: def update(self,xmlurl=None,xmlobject=None):
21: """update by calling fm.jar and using the xmlfile at xmlurl
22: @param xmlurl: url auf ein xml file fuer fm.jar
23: """
24:
25:
26:
1.2 ! dwinter 27: tmphandler,path =mkstemp()
! 28: tmpFile=os.fdopen(tmphandler,"w+b")
! 29:
1.1 dwinter 30: if xmlurl:
31: xmlf=urllib.urlopen(xmlurl).read()
32: if xmlobject:
33: try:
34: xmlf=getattr(self,xmlobject)()
35: except:
36: xmlf=getattr(self,xmlobject).data
1.2 ! dwinter 37:
1.1 dwinter 38:
39: tmpFile.write(xmlf)
1.2 ! dwinter 40: tmpFile.close()
1.1 dwinter 41:
1.2 ! dwinter 42: #path=tmpFile.name
! 43:
1.1 dwinter 44: fmJarPath=os.path.join(package_home(globals()), 'fm.jar')
1.2 ! dwinter 45:
! 46:
! 47:
1.1 dwinter 48: zLOG.LOG("MPIWG Web",zLOG.INFO,"java -classpath %s -Djava.awt.headless=true Convert %s"%(fmJarPath,path))
49: ret=os.popen("java -classpath %s -Djava.awt.headless=true Convert %s"%(fmJarPath,path),"r").read()
50: zLOG.LOG("MPIWG Web",zLOG.INFO,"result convert: %s"%ret)
51:
1.2 ! dwinter 52: os.unlink(path)
1.1 dwinter 53: return "<html><body><h1>SQL update</h1><p>(notice, everything worked fine if only <q>java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver</q> comes out as result)</p><p>Result:<br>%s</p></html></body>"%ret
54:
55: def findUpdater(self):
56: """find Update, giebt alle Update files als Tupel (id,objekte) zuruck"""
57: return self.ZopeFind(self,obj_metatypes=['File','Page Template'])
58: def index_html(self):
59: """standard ansicht"""
60: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/viewUpdates.zpt')).__of__(self)
61: return pt()
62:
63: manage_addZSQLUpdateForm=DTMLFile('ZSQLUpdateAdd', globals())
64:
65: def manage_addZSQLUpdate(self, id, title='', label='', description='',
66: createPublic=0,
67: createUserF=0,
68: connection_id=None,
69: REQUEST=None):
70: """Add a new Folder object with id *id*.
71:
72: If the 'createPublic' and 'createUserF' parameters are set to any true
73: value, an 'index_html' and a 'UserFolder' objects are created respectively
74: in the new folder.
75: """
76:
77:
78: ob=ZSQLUpdate()
79: ob.id=str(id)
80: ob.title=title
81: self._setObject(id, ob)
82: ob=self._getOb(id)
83: setattr(ob,'label',label)
84:
85:
86: checkPermission=getSecurityManager().checkPermission
87:
88:
89: if REQUEST is not None:
90: return self.manage_main(self, REQUEST, update_menu=1)
91:
92:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>