Mercurial > hg > MetaDataProvider
view MetaDataClient.py @ 10:68bc459c9f59
getmd handles empty url
author | casties |
---|---|
date | Fri, 29 Jul 2011 12:09:33 +0200 |
parents | 9f9d9be26e53 |
children |
line wrap: on
line source
import xmlrpclib import sys import base64 import bz2 import re import logging class MetaDataClient: def __init__(self,serverUrl): self.serverUrl=serverUrl try: self.server=xmlrpclib.ServerProxy(serverUrl) except: logging.error("MetaDataClient: writeMetaDataFile: (%s %s %s)"%sys.exc_info()) def writeMetaDataFile(self,path,newMetaXML,compressed=None): #path hast to be an url to metadatafile or the path on the storage starting with /permanent or /experimental # the url hast to contain the path to metadata file, the path has to start with /permanent or /experimental path = self.correctPath(path) if compressed: newMetaXML=self.compress(newMetaXML); ret=self.server.writeMetaDataFile(path,newMetaXML); logging.debug("MetaDataClient: writeMetaDataFile:"+repr(ret)) return ret def compress(self,txt): return base64.encodestring(bz2.compress(string)) def correctPath(self,path): #take only the path of the url which starts with /permanent or /experimental rs= re.search("/permanent/(.*)", path); if rs is not None: txt="permanent/"+rs.group(1) else: rs= re.search("/experimental/(.*)", path); if rs is not None: txt="experimental"+rs.group(1) else: return None return txt