Revision 6aadd6e1

b/Changelog
7 7
- Restore 2nd level command syntax in shell [#3736]
8 8
- Allow copy of deleted objects by refering to older version [#3737]
9 9
- Add image.add_member missing content-length header
10
- Do not unpublish by default in all pithos low level requests [#3780]
10 11

  
11 12
Changes:
12 13

  
b/kamaki/clients/pithos/rest_api.py
513 513
            content_disposition=None,
514 514
            manifest=None,
515 515
            permissions=None,
516
            public=False,
516
            public=None,
517 517
            metadata=None,
518 518
            *args, **kwargs):
519 519
        """ Full Pithos+ PUT at object level
......
564 564
            { 'read':[user1, group1, user2, ...],
565 565
            'write':['user3, group2, group3, ...] }
566 566

  
567
        :param public: (bool) If true, Object is publicly accessible,
568
            if false, not
567
        :param public: (bool) If true, Object is published, False, unpublished
569 568

  
570 569
        :param metadata: (dict) Optional user defined metadata in the form
571 570
            {'meta-key-1':'meta-value-1', 'meta-key-2':'meta-value-2', ...}
......
602 601
                        perms += ';' if perms else ''
603 602
                        perms += '%s=%s' % (perm_type, ','.join(perm_list))
604 603
            self.set_header('X-Object-Sharing', perms)
605
        self.set_header('X-Object-Public', public)
604
        self.set_header('X-Object-Public', public, public is not None)
606 605
        if metadata:
607 606
            for key, val in metadata.items():
608 607
                self.set_header('X-Object-Meta-' + key, val)
......
623 622
            content_disposition=None,
624 623
            source_version=None,
625 624
            permissions=None,
626
            public=False,
625
            public=None,
627 626
            metadata=None,
628 627
            *args, **kwargs):
629 628
        """ Full Pithos+ COPY at object level
......
660 659
            { 'read':[user1, group1, user2, ...],
661 660
            'write':['user3, group2, group3, ...] }
662 661

  
663
        :param public: (bool) If true, Object is publicly accessible
662
        :param public: (bool) If true, Object is published, False, unpublished
664 663

  
665 664
        :param metadata: (dict) Optional user defined metadata in the form
666 665
            {'meta-key-1':'meta-value-1', 'meta-key-2':'meta-value-2', ...}
......
692 691
                    perms += ';' if perms else ''
693 692
                    perms += '%s=%s' % (perm_type, ','.join(perm_list))
694 693
            self.set_header('X-Object-Sharing', perms)
695
        self.set_header('X-Object-Public', public)
694
        self.set_header('X-Object-Public', public, public is not None)
696 695
        if metadata:
697 696
            for key, val in metadata.items():
698 697
                self.set_header('X-Object-Meta-' + key, val)
......
713 712
            content_encoding=None,
714 713
            content_disposition=None,
715 714
            permissions={},
716
            public=False,
715
            public=None,
717 716
            metadata={},
718 717
            *args, **kwargs):
719 718
        """ Full Pithos+ COPY at object level
......
750 749
            { 'read':[user1, group1, user2, ...],
751 750
            'write':['user3, group2, group3, ...] }
752 751

  
753
        :param public: (bool) If true, Object is publicly accessible
752
        :param public: (bool) If true, Object is published, False, unpublished
754 753

  
755 754
        :param metadata: (dict) Optional user defined metadata in the form
756 755
            {'meta-key-1':'meta-value-1', 'meta-key-2':'meta-value-2', ...}
......
779 778
                    perms += ';' if perms else ''
780 779
                    perms += '%s=%s' % (perm_type, ','.join(perm_list))
781 780
            self.set_header('X-Object-Sharing', perms)
782
        self.set_header('X-Object-Public', public)
781
        self.set_header('X-Object-Public', public, public is not None)
783 782
        if metadata:
784 783
            for key, val in metadata.items():
785 784
                self.set_header('X-Object-Meta-' + key, val)
......
806 805
            object_bytes=None,
807 806
            manifest=None,
808 807
            permissions={},
809
            public=False,
808
            public=None,
810 809
            metadata={},
811 810
            *args, **kwargs):
812 811
        """ Full Pithos+ POST at object level
......
854 853
            { 'read':[user1, group1, user2, ...],
855 854
            'write':['user3, group2, group3, ...] }
856 855

  
857
        :param public: (bool) If true, Object is publicly accessible
856
        :param public: (bool) If true, Object is published, False, unpublished
858 857

  
859 858
        :param metadata: (dict) Optional user defined metadata in the form
860 859
            {'meta-key-1':'meta-value-1', 'meta-key-2':'meta-value-2', ...}
......
892 891
                    perms += ';' if perms else ''
893 892
                    perms += '%s=%s' % (perm_type, ','.join(perm_list))
894 893
            self.set_header('X-Object-Sharing', perms)
895
        self.set_header('X-Object-Public', public)
894
        self.set_header('X-Object-Public', public, public is not None)
896 895
        for key, val in metadata.items():
897 896
            self.set_header('X-Object-Meta-' + key, val)
898 897

  
b/kamaki/clients/pithos/test.py
1650 1650
        read_perms = ['u1', 'g1', 'u2', 'g2']
1651 1651
        write_perms = ['u1', 'g1']
1652 1652
        for kwargs in (
1653
                dict(read_permition=read_perms, write_permition=write_perms),
1654
                dict(read_permition=read_perms),
1655
                dict(write_permition=write_perms),
1653
                dict(read_permission=read_perms, write_permission=write_perms),
1654
                dict(read_permission=read_perms),
1655
                dict(write_permission=write_perms),
1656 1656
                dict()):
1657 1657
            self.client.set_object_sharing(obj, **kwargs)
1658
            kwargs['read'] = kwargs.pop('read_permition', '')
1659
            kwargs['write'] = kwargs.pop('write_permition', '')
1658
            kwargs['read'] = kwargs.pop('read_permission', '')
1659
            kwargs['write'] = kwargs.pop('write_permission', '')
1660 1660
            self.assertEqual(
1661 1661
                OP.mock_calls[-1],
1662 1662
                call(obj, update=True, permissions=kwargs))

Also available in: Unified diff