from OFS.Folder import Folder from Globals import DTMLFile,package_home from tempfile import NamedTemporaryFile from AccessControl import getSecurityManager from Products.PageTemplates.PageTemplateFile import PageTemplateFile import urllib import os.path import zLOG """Webfrontend fuer das Update der Datenbanken ueber das Web mithilfe von fm.jar """ class ZSQLUpdate(Folder): """Klasse zum update, in den Folder werden die verschiedenen Update XML files hineingelegt""" meta_type="ZSQLUpdate" def update(self,xmlurl=None,xmlobject=None): """update by calling fm.jar and using the xmlfile at xmlurl @param xmlurl: url auf ein xml file fuer fm.jar """ tmpFile=NamedTemporaryFile() if xmlurl: xmlf=urllib.urlopen(xmlurl).read() if xmlobject: try: xmlf=getattr(self,xmlobject)() except: xmlf=getattr(self,xmlobject).data tmpFile.write(xmlf) path=tmpFile.name fmJarPath=os.path.join(package_home(globals()), 'fm.jar') zLOG.LOG("MPIWG Web",zLOG.INFO,"java -classpath %s -Djava.awt.headless=true Convert %s"%(fmJarPath,path)) ret=os.popen("java -classpath %s -Djava.awt.headless=true Convert %s"%(fmJarPath,path),"r").read() zLOG.LOG("MPIWG Web",zLOG.INFO,"result convert: %s"%ret) tmpFile.close() return "

SQL update

(notice, everything worked fine if only java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver comes out as result)

Result:
%s

"%ret def findUpdater(self): """find Update, giebt alle Update files als Tupel (id,objekte) zuruck""" return self.ZopeFind(self,obj_metatypes=['File','Page Template']) def index_html(self): """standard ansicht""" pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/viewUpdates.zpt')).__of__(self) return pt() manage_addZSQLUpdateForm=DTMLFile('ZSQLUpdateAdd', globals()) def manage_addZSQLUpdate(self, id, title='', label='', description='', createPublic=0, createUserF=0, connection_id=None, REQUEST=None): """Add a new Folder object with id *id*. If the 'createPublic' and 'createUserF' parameters are set to any true value, an 'index_html' and a 'UserFolder' objects are created respectively in the new folder. """ ob=ZSQLUpdate() ob.id=str(id) ob.title=title self._setObject(id, ob) ob=self._getOb(id) setattr(ob,'label',label) checkPermission=getSecurityManager().checkPermission if REQUEST is not None: return self.manage_main(self, REQUEST, update_menu=1)