Changeset c8a3dbf in trunk


Ignore:
Timestamp:
2019-03-08T12:46:14Z (6 years ago)
Author:
GitHub <noreply@…>
Branches:
master
Children:
e424270
Parents:
2e96c62 (diff), bcfd2e8e (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
git-author:
Jean-Paul Calderone <exarkun@…> (2019-03-08 12:46:14)
git-committer:
GitHub <noreply@…> (2019-03-08 12:46:14)
Message:

Merge pull request #562 from tahoe-lafs/2986.dirnode.add_file.logging

Add Eliot logging to DirectoryNode.add_file

Fixes: ticket:2986

Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified src/allmydata/dirnode.py

    r2e96c62 rc8a3dbf  
    2626from allmydata.util.dictutil import AuxValueDict
    2727
     28from eliot import (
     29    ActionType,
     30    Field,
     31)
     32from eliot.twisted import (
     33    DeferredContext,
     34)
     35
     36NAME = Field.for_types(
     37    u"name",
     38    [unicode],
     39    u"The name linking the parent to this node.",
     40)
     41
     42METADATA = Field.for_types(
     43    u"metadata",
     44    [dict],
     45    u"Data about a node.",
     46)
     47
     48OVERWRITE = Field.for_types(
     49    u"overwrite",
     50    [bool],
     51    u"True to replace an existing file of the same name, "
     52    u"false to fail with a collision error.",
     53)
     54
     55ADD_FILE = ActionType(
     56    u"dirnode:add-file",
     57    [NAME, METADATA, OVERWRITE],
     58    [],
     59    u"Add a new file as a child of a directory.",
     60)
    2861
    2962def update_metadata(metadata, new_metadata, now):
     
    597630        Deferred that fires (with the IFileNode of the uploaded file) when
    598631        the operation completes."""
    599         name = normalize(namex)
    600         if self.is_readonly():
    601             return defer.fail(NotWriteableError())
    602         # XXX should pass reactor arg
    603         d = self._uploader.upload(uploadable, progress=progress)
    604         d.addCallback(lambda results:
    605                       self._create_and_validate_node(results.get_uri(), None,
    606                                                      name))
    607         d.addCallback(lambda node:
    608                       self.set_node(name, node, metadata, overwrite))
    609         return d
     632        with ADD_FILE(name=namex, metadata=metadata, overwrite=overwrite).context():
     633            name = normalize(namex)
     634            if self.is_readonly():
     635                d = DeferredContext(defer.fail(NotWriteableError()))
     636            else:
     637                # XXX should pass reactor arg
     638                d = DeferredContext(self._uploader.upload(uploadable, progress=progress))
     639                d.addCallback(lambda results:
     640                              self._create_and_validate_node(results.get_uri(), None,
     641                                                             name))
     642                d.addCallback(lambda node:
     643                              self.set_node(name, node, metadata, overwrite))
     644
     645        return d.addActionFinish()
    610646
    611647    def delete(self, namex, must_exist=True, must_be_directory=False, must_be_file=False):
Note: See TracChangeset for help on using the changeset viewer.