示例#1
0
                                new_entry = True
                                # Don't need a real copy - reference will do
                                old_metadata = metadata
                            else:
                                new_entry = False
                                js = json.loads(metadata_str)
                        except Exception, e:
                            self.logerror(err_str + str(e))
                            if content_added:
                                os.remove(cfn)
                            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))