raise sys.exc_info()[0](err_str + str(e)) if not new_entry: old_metadata = NetInfMetaData() old_metadata.set_json_val(js) if not old_metadata.merge_latest_details(metadata): err_str = "put_cache: Mismatched information in metadata update: %s" % \ ni_url self.logerror(err_str) if content_added: os.remove(cfn) raise ValueError(err_str) err_str = "put_cache: problem storing metadata record %s: " % mfk try: new_metadata_str = json.dumps(old_metadata.json_val()) except Exception, e: self.logerror(err_str + str(e)) if content_added: os.remove(cfn) raise sys.exc_info()[0](err_str + str(e)) cfs = "yes" if content_exists else "no" # Write back into Redis val_dict = {} val_dict["metadata"] = new_metadata_str val_dict["content_file_exists"] = cfs # Start a transaction redis_pipe.multi() # Push the data update
old_metadata.set_json_val(js) if not old_metadata.merge_latest_details(metadata): err_str = "put_cache: Mismatched information in metadata update: %s" % \ ni_url self.logerror(err_str) if content_added: os.remove(cfn) raise ValueError(err_str) err_str = "put_cache: problem writing metadata file %s: " % mfn try: # Empty existing file (might be empty already but don't care) f.seek(0, os.SEEK_SET) f.truncate(0) json.dump(old_metadata.json_val(), f) fcntl.flock(mfd, fcntl.LOCK_UN) f.close() except Exception, e: self.logerror(err_str + str(e)) if content_added: os.remove(cfn) raise sys.exc_info()[0](err_str + str(e)) # End of with self.cache_write_lock return (old_metadata, cfn if content_exists else None, new_entry, ignore_duplicate) #--------------------------------------------------------------------------# def cache_get(self, ni_name): """