~david-goetz/swift/ratelimit_memcache_break

« back to all changes in this revision

Viewing changes to swift/proxy/server.py

  • Committer: Tarmac
  • Author(s): Clay Gerrard, John Dickinson, gholt
  • Date: 2010-11-05 15:57:20 UTC
  • mfrom: (108.3.5 copy_auth)
  • Revision ID: hudson@openstack.org-20101105155720-bx7i73nrt4r4umgg
fixed auth_copy bug, bytes_transferred copy logging bug, and early denial for proxy.server.ObjectController.COPY method; added tests

Show diffs side-by-side

added added

removed removed

Lines of Context:
629
629
                return HTTPPreconditionFailed(request=req,
630
630
                    body='X-Copy-From header must be of the form'
631
631
                    '<container name>/<object name>')
632
 
            source_req = Request.blank(source_header)
 
632
            source_req = req.copy_get()
 
633
            source_req.path_info = source_header
633
634
            orig_obj_name = self.object_name
634
635
            orig_container_name = self.container_name
635
636
            self.object_name = src_obj_name
774
775
            for k, v in req.headers.items():
775
776
                if k.lower().startswith('x-object-meta-'):
776
777
                    resp.headers[k] = v
 
778
            # reset the bytes, since the user didn't actually send anything
 
779
            req.bytes_transferred = 0
777
780
        resp.last_modified = float(req.headers['X-Timestamp'])
778
781
        return resp
779
782
 
820
823
                                  'Object DELETE')
821
824
 
822
825
    @public
 
826
    @delay_denial
823
827
    def COPY(self, req):
824
828
        """HTTP COPY request handler."""
825
829
        dest = req.headers.get('Destination')
845
849
        new_headers['Content-Length'] = 0
846
850
        del new_headers['Destination']
847
851
        new_path = '/' + self.account_name + dest
848
 
        new_req = Request.blank(new_path,
849
 
                        environ={'REQUEST_METHOD': 'PUT'}, headers=new_headers)
 
852
        new_req = Request.blank(new_path, environ=req.environ,
 
853
                                headers=new_headers)
850
854
        return self.PUT(new_req)
851
855
 
852
856