Annotation of OSA_system2/OSAS_server.py, revision 1.8

1.1       dwinter     1: import os
                      2: import os.path
                      3: import stat
1.6       dwinter     4: import OSAS_helpers
1.8     ! dwinter     5: import xmlrpclib
1.7       dwinter     6: import bz2
1.1       dwinter     7: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
                      8: from Globals import InitializeClass,package_home
                      9: from OFS.SimpleItem import SimpleItem
1.3       dwinter    10: 
1.4       dwinter    11: 
                     12: 
1.1       dwinter    13: 
                     14: class OSAS_storeOnlineServer(SimpleItem):
                     15:     """Server for store Online system"""
1.2       dwinter    16:     
1.4       dwinter    17:     
1.2       dwinter    18:     meta_type="OSAS_server"
                     19: 
                     20:   
1.1       dwinter    21:     def findIndexMeta(self,realPath=""):
                     22:         """finde Rueckwaerts im Baum von Pfad ausgehend, dass erste index.meta file
                     23:         @keyword path: default ist "", Pfad auf das Object
                     24:         @return: None falls kein index.meta existiert sonst Pfad auf das index.meta
                     25:         """
                     26:         
                     27:         #suche index.meta
                     28:         while (not os.path.exists(os.path.join(realPath,'index.meta'))) and (not ((realPath=="") or (realPath=="/"))):
                     29:             realPath=os.path.split(realPath)[0]
                     30:             
                     31:         if realPath=='' or realPath=='/':
                     32:             if os.path.exists(os.path.join(realPath,'index.meta')):
                     33:                 return (os.path.join(realPath,'index.meta'))
                     34:             else:
                     35:                 return None
                     36:         else:
                     37:             return os.path.join(realPath,'index.meta')
                     38: 
                     39:     def findIndexMetaWithStats(self,path=""):
                     40:         """finde Rueckwaerts im Baum von Pfad ausgehend, dass erste index.meta file
                     41:         @keyword path: default ist "", Pfad auf das Object
                     42:         @return: None falls kein index.meta existiert sonst Tupel (Pfad auf das index.meta,stats(indexMeta)
                     43:         """
                     44: 
                     45:         indexMeta=self.findIndexMeta(path)
                     46:         if indexMeta:
                     47:             return (indexMeta,self.getStat(indexMeta))
                     48:         else:
                     49:             return (None,[])
                     50: 
                     51: 
                     52:     def getStat(self,path=""):
                     53:         """Gibt stat von path aus
                     54:         @keyword path: default ist "", Pfad
                     55:         @return: stat[path]"""
                     56: 
                     57:         if not os.path.exists(path):
                     58:             #return None,"(ERROR) path %s does not exist."%path
                     59:             return None
                     60:         else:
                     61:             return [x for x in os.stat(path)]
                     62:             
                     63:             
                     64:             
                     65: 
                     66:     def listdir(self,path=""):
                     67:         """list dir"""
                     68:         return os.listdir(path)
                     69: 
1.5       dwinter    70:     def isdir(self,path=""):
                     71:         """list dir"""
                     72:         return os.path.isdir(path)
                     73: 
                     74:     def isfile(self,path=""):
                     75:         """list dir"""
1.6       dwinter    76:         return os.path.isfile(path)
1.5       dwinter    77: 
                     78: 
                     79: 
1.3       dwinter    80:     def getFile(self,path):
                     81:         """getFile"""
1.4       dwinter    82: 
                     83:         if not os.path.exists(path):
                     84:             return None
                     85: 
1.3       dwinter    86:         f=file(path,'r')
1.4       dwinter    87:         
1.3       dwinter    88:         ret=f.read()
1.4       dwinter    89: 
1.3       dwinter    90:         f.close()
1.4       dwinter    91:         
1.3       dwinter    92:         return ret
1.6       dwinter    93: 
                     94:     def getAllIndexMetasOfSubDirs(self,path):
                     95:         """get all index Metas"""
                     96:         ret={}
                     97:         if os.path.exists(path+"/index.meta"):
1.8     ! dwinter    98:             compressed=file(path+"/index.meta","r").read()
        !            99:             ret["."]=('OSAS_dir',compressed)
1.6       dwinter   100:         for dir in os.listdir(path):
                    101:             fileType=OSAS_helpers.checkOSASFileType(os.path.join(path,dir))
                    102:             if os.path.exists(os.path.join(path,dir,"index.meta")):
1.8     ! dwinter   103:                 compressed=file(os.path.join(path,dir,"index.meta"),"r").read()
        !           104:                 ret[dir]=('OSAS_dir',compressed)
1.6       dwinter   105:             else:
                    106:                 ret[dir]=(fileType,None)
1.8     ! dwinter   107:         return ret
1.6       dwinter   108: 
                    109:                               
                    110:         
1.1       dwinter   111: def manage_addOSAS_storeOnlineServerForm(self):
                    112:     """interface for adding the OSAS_storeOnline"""
                    113:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addStoreOnlineServer.zpt')).__of__(self)
                    114:     return pt()
                    115: 
                    116: def manage_addOSAS_storeOnlineServer(self,id,RESPONSE=None):
                    117:     """add the OSAS_storeOnline
                    118:     @param id: id
                    119:     """
                    120:     newObj=OSAS_storeOnlineServer(id)
                    121:     self._setObject(id,newObj)
                    122:     if RESPONSE is not None:
                    123:         RESPONSE.redirect('manage_main')
                    124: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>