Code Duplication    Length = 60-60 lines in 2 locations

gvm/protocols/gmpv8/gmpv8.py 1 location

@@ 822-881 (lines=60) @@
819
        cmd.set_attribute("vuln_id", vulnerability_id)
820
        return self._send_xml_command(cmd)
821
822
    def modify_ticket(
823
        self,
824
        ticket_id: str,
825
        *,
826
        status: Optional[TicketStatus] = None,
827
        note: Optional[str] = None,
828
        assigned_to_user_id: Optional[str] = None,
829
        comment: Optional[str] = None,
830
    ) -> Any:
831
        """Modify a single ticket
832
833
        Arguments:
834
            ticket_id: UUID of an existing ticket
835
            status: New status for the ticket
836
            note: Note for the status change. Required if status is set.
837
            assigned_to_user_id: UUID of the user the ticket should be assigned
838
                to
839
            comment: Comment for the ticket
840
841
        Returns:
842
            The response. See :py:meth:`send_command` for details.
843
        """
844
        if not ticket_id:
845
            raise RequiredArgument(
846
                function=self.modify_ticket.__name__, argument='ticket_id'
847
            )
848
849
        if status and not note:
850
            raise RequiredArgument(
851
                function=self.modify_ticket.__name__, argument='note'
852
            )
853
854
        if note and not status:
855
            raise RequiredArgument(
856
                function=self.modify_ticket.__name__, argument='status'
857
            )
858
859
        cmd = XmlCommand("modify_ticket")
860
        cmd.set_attribute("ticket_id", ticket_id)
861
862
        if assigned_to_user_id:
863
            _assigned = cmd.add_element("assigned_to")
864
            _user = _assigned.add_element("user")
865
            _user.set_attribute("id", assigned_to_user_id)
866
867
        if status:
868
            if not isinstance(status, self.types.TicketStatus):
869
                raise InvalidArgumentType(
870
                    function=self.modify_ticket.__name__,
871
                    argument='status',
872
                    arg_type=TicketStatus.__name__,
873
                )
874
875
            cmd.add_element('status', status.value)
876
            cmd.add_element('{}_note'.format(status.name.lower()), note)
877
878
        if comment:
879
            cmd.add_element("comment", comment)
880
881
        return self._send_xml_command(cmd)
882
883
    def create_filter(
884
        self,

gvm/protocols/gmpv208/gmpv208.py 1 location

@@ 3023-3082 (lines=60) @@
3020
        cmd.set_attribute("vuln_id", vulnerability_id)
3021
        return self._send_xml_command(cmd)
3022
3023
    def modify_ticket(
3024
        self,
3025
        ticket_id: str,
3026
        *,
3027
        status: Optional[TicketStatus] = None,
3028
        note: Optional[str] = None,
3029
        assigned_to_user_id: Optional[str] = None,
3030
        comment: Optional[str] = None,
3031
    ) -> Any:
3032
        """Modify a single ticket
3033
3034
        Arguments:
3035
            ticket_id: UUID of an existing ticket
3036
            status: New status for the ticket
3037
            note: Note for the status change. Required if status is set.
3038
            assigned_to_user_id: UUID of the user the ticket should be assigned
3039
                to
3040
            comment: Comment for the ticket
3041
3042
        Returns:
3043
            The response. See :py:meth:`send_command` for details.
3044
        """
3045
        if not ticket_id:
3046
            raise RequiredArgument(
3047
                function=self.modify_ticket.__name__, argument='ticket_id'
3048
            )
3049
3050
        if status and not note:
3051
            raise RequiredArgument(
3052
                function=self.modify_ticket.__name__, argument='note'
3053
            )
3054
3055
        if note and not status:
3056
            raise RequiredArgument(
3057
                function=self.modify_ticket.__name__, argument='status'
3058
            )
3059
3060
        cmd = XmlCommand("modify_ticket")
3061
        cmd.set_attribute("ticket_id", ticket_id)
3062
3063
        if assigned_to_user_id:
3064
            _assigned = cmd.add_element("assigned_to")
3065
            _user = _assigned.add_element("user")
3066
            _user.set_attribute("id", assigned_to_user_id)
3067
3068
        if status:
3069
            if not isinstance(status, self.types.TicketStatus):
3070
                raise InvalidArgumentType(
3071
                    function=self.modify_ticket.__name__,
3072
                    argument='status',
3073
                    arg_type=TicketStatus.__name__,
3074
                )
3075
3076
            cmd.add_element('status', status.value)
3077
            cmd.add_element('{}_note'.format(status.name.lower()), note)
3078
3079
        if comment:
3080
            cmd.add_element("comment", comment)
3081
3082
        return self._send_xml_command(cmd)
3083
3084
    def create_filter(
3085
        self,