Revision b773795c kamaki/clients/pithos/rest_api.py

b/kamaki/clients/pithos/rest_api.py
157 157

  
158 158
        self._assert_account()
159 159

  
160
        self.set_param('update', iff=update)
160
        self.set_param('update', '', iff=update)
161 161

  
162 162
        if groups:
163 163
            for group, usernames in groups.items():
......
354 354
        """
355 355
        self._assert_container()
356 356

  
357
        self.set_param('update', iff=update)
357
        self.set_param('update', '', iff=update)
358 358
        self.set_param('format', format, iff=format)
359 359

  
360 360
        self.set_header('X-Container-Policy-Quota', quota)
......
769 769
        self.set_header('Content-Type', content_type)
770 770
        self.set_header('Content-Encoding', content_encoding)
771 771
        self.set_header('Content-Disposition', content_disposition)
772
        if permissions:
773
            perms = ''
774
            for perm_type, perm_list in permissions.items():
775
                if not perms:
776
                    perms = ''  # Remove permissions
777
                if perm_list:
778
                    perms += ';' if perms else ''
779
                    perms += '%s=%s' % (perm_type, ','.join(perm_list))
780
            self.set_header('X-Object-Sharing', perms)
772
        perms = ';'.join(
773
            ['%s=%s' % (k, ','.join(v)) for k, v in permissions.items() if (
774
                v)]) if (permissions) else ''
775
        self.set_header('X-Object-Sharing', perms, iff=permissions)
781 776
        self.set_header('X-Object-Public', public, public is not None)
782 777
        if metadata:
783 778
            for key, val in metadata.items():
......
864 859
        self._assert_container()
865 860

  
866 861
        self.set_param('format', format, iff=format)
867
        self.set_param('update', iff=update)
862
        self.set_param('update', '', iff=update)
868 863

  
869 864
        self.set_header('If-Match', if_etag_match)
870 865
        self.set_header('If-None-Match', if_etag_not_match)
871 866
        self.set_header(
872
            'Content-Length',
873
            content_length,
874
            iff=not transfer_encoding)
867
            'Content-Length', content_length, iff=not transfer_encoding)
875 868
        self.set_header('Content-Type', content_type)
876 869
        self.set_header('Content-Range', content_range)
877 870
        self.set_header('Transfer-Encoding', transfer_encoding)
......
882 875
        self.set_header('X-Source-Version', source_version)
883 876
        self.set_header('X-Object-Bytes', object_bytes)
884 877
        self.set_header('X-Object-Manifest', manifest)
885
        if permissions:
886
            perms = ''
887
            for perm_type, perm_list in permissions.items():
888
                if not perms:
889
                    perms = ''  # Remove permissions
890
                if perm_list:
891
                    perms += ';' if perms else ''
892
                    perms += '%s=%s' % (perm_type, ','.join(perm_list))
893
            self.set_header('X-Object-Sharing', perms)
878
        perms = ';'.join(
879
            ['%s=%s' % (k, ','.join(v)) for k, v in permissions.items() if (
880
                v)]) if (permissions) else ''
881
        self.set_header('X-Object-Sharing', perms, iff=permissions)
894 882
        self.set_header('X-Object-Public', public, public is not None)
895 883
        for key, val in metadata.items():
896 884
            self.set_header('X-Object-Meta-' + key, val)

Also available in: Unified diff