def performLRCFileRegistration(self, fields, ub=None): """ actually register all files in the LRC """ from urllib import urlencode, urlopen ret = '1' ec = 0 if ub != "None" and ub != None and ub != "": # ub is 'None' outside the US # find out if checksum or adler32 should be added from SiteMover import SiteMover _checksum = fields[4].split("+")[0] # first one, assume same type for the rest if len(_checksum) > 0: csumtype = SiteMover.getChecksumType(_checksum) else: csumtype = CMD_CHECKSUM # use default (md5sum) if csumtype == "adler32": params = urlencode({'pfns': fields[0], 'lfns': fields[1], 'guids': fields[2], 'fsizes': fields[3],\ 'md5sums': '', 'adler32s': fields[4], 'archivals': fields[5]}) else: params = urlencode({'pfns': fields[0], 'lfns': fields[1], 'guids': fields[2], 'fsizes': fields[3],\ 'md5sums': fields[4], 'adler32s': '', 'archivals': fields[5]}) try: url = ub + '/lrc/files' if url.find('//lrc') > 0: url = url.replace('//lrc','/lrc') tolog("Will send params: %s" % str(params)) tolog("Trying urlopen with: %s" % (url)) f = urlopen(url, params) except Exception, e: tolog("!!WARNING!!4000!! Unexpected exception: %s" % str(e)) ec = error.ERR_DDMREG ret = str(e) else: ret = f.read() if ret != '1': ret = ret.replace('\n', ' ') tolog('!!WARNING!!4000!! LRC registration error: %s' % str(ret)) tolog('!!WARNING!!4000!! LRC URL requested: %s' % f.geturl()) if ret == 'LFNnonunique': ec = error.ERR_LRCREGDUP elif ret.find("guid-metadata entry already exists") >= 0: ec = error.ERR_GUIDSEXISTSINLRC else: ec = error.ERR_DDMREG