Code Duplication    Length = 43-46 lines in 2 locations

gvm/protocols/gmpv7.py 2 locations

@@ 3619-3661 (lines=43) @@
3616
3617
        return self._send_xml_command(cmd)
3618
3619
    def modify_permission(self, permission_id, comment=None, name=None,
3620
                          resource_id=None, resource_type=None,
3621
                          subject_id=None, subject_type=None):
3622
        """Modifies an existing permission.
3623
3624
        Arguments:
3625
            permission_id (str): UUID of permission to be modified.
3626
            comment (str, optional): The comment on the permission.
3627
            name (str, optional): Permission name, currently the name of
3628
                a command.
3629
            subject_id (str, optional): UUID of subject to whom the permission
3630
                is granted
3631
            subject_type (str, optional): Type of the subject user, group or
3632
                role
3633
            resource_id (str, optional): UUID of entity to which the permission
3634
                applies
3635
            resource_type (str, optional): Type of the resource. For Super
3636
                permissions user, group or role
3637
3638
        Returns:
3639
            The response. See :py:meth:`send_command` for details.
3640
        """
3641
        if not permission_id:
3642
            raise RequiredArgument('modify_permission requires '
3643
                                   'a permission_id element')
3644
3645
        cmd = XmlCommand('modify_permission')
3646
        cmd.set_attribute('permission_id', permission_id)
3647
3648
        if comment:
3649
            cmd.add_element('comment', comment)
3650
3651
        if name:
3652
            cmd.add_element('name', name)
3653
3654
        if resource_id and resource_type:
3655
            _xmlresource = cmd.add_element('resource',
3656
                                           attrs={'id': resource_id})
3657
            _xmlresource.add_element('type', resource_type)
3658
3659
        if subject_id and subject_type:
3660
            _xmlsubject = cmd.add_element('subject',
3661
                                          attrs={'id': subject_id})
3662
            _xmlsubject.add_element('type', subject_type)
3663
3664
        return self._send_xml_command(cmd)
@@ 743-788 (lines=46) @@
740
        cmd.add_element('copy', override_id)
741
        return self._send_xml_command(cmd)
742
743
    def create_permission(self, name, subject_id, subject_type,
744
                          resource_id=None, resource_type=None,
745
                          comment=None):
746
        """Create a new permission
747
748
        Arguments:
749
            name (str): Name of the new permission
750
            subject_id (str): UUID of subject to whom the permission is granted
751
            subject_type (str): Type of the subject user, group or role
752
            comment (str, optional): Comment for the permission
753
            resource_id (str, optional): UUID of entity to which the permission
754
                applies
755
            resource_type (str, optional): Type of the resource. For Super
756
                permissions user, group or role
757
758
        Returns:
759
            The response. See :py:meth:`send_command` for details.
760
        """
761
        if not name:
762
            raise RequiredArgument('create_permission requires a name argument')
763
764
        if not subject_id:
765
            raise RequiredArgument(
766
                'create_permission requires a subject_id argument')
767
768
        if subject_type not in ('user', 'group', 'role'):
769
            raise InvalidArgument(
770
                'create_permission requires subject_type to be either user, '
771
                'group or role')
772
773
        cmd = XmlCommand('create_permission')
774
        cmd.add_element('name', name)
775
776
        _xmlsubject = cmd.add_element('subject', attrs={'id': subject_id})
777
        _xmlsubject.add_element('type', type)
778
779
        if comment:
780
            cmd.add_element('comment', comment)
781
782
        if resource_id and resource_type:
783
            _xmlresource = cmd.add_element('resource',
784
                                           attrs={'id': resource_id})
785
            _xmlresource.add_element('type', resource_type)
786
787
788
        return self._send_xml_command(cmd)
789
790
    def clone_permission(self, permission_id):
791
        """Clone an existing permission