Code Duplication    Length = 74-74 lines in 2 locations

gvm/protocols/gmpv7/gmpv7.py 2 locations

@@ 890-963 (lines=74) @@
887
888
        return self._send_xml_command(cmd)
889
890
    def create_note(
891
        self,
892
        text: str,
893
        nvt_oid: str,
894
        *,
895
        seconds_active: Optional[int] = None,
896
        hosts: Optional[List[str]] = None,
897
        port: Optional[int] = None,
898
        result_id: Optional[str] = None,
899
        severity: Optional[Severity] = None,
900
        task_id: Optional[str] = None,
901
        threat: Optional[SeverityLevel] = None
902
    ) -> Any:
903
        """Create a new note
904
905
        Arguments:
906
            text: Text of the new note
907
            nvt_id: OID of the nvt to which note applies
908
            seconds_active: Seconds note will be active. -1 on
909
                always, 0 off
910
            hosts: A list of hosts addresses
911
            port: Port to which the note applies
912
            result_id: UUID of a result to which note applies
913
            severity: Severity to which note applies
914
            task_id: UUID of task to which note applies
915
            threat: Severity level to which note applies. Will be converted to
916
                severity.
917
918
        Returns:
919
            The response. See :py:meth:`send_command` for details.
920
        """
921
        if not text:
922
            raise RequiredArgument(
923
                function=self.create_note.__name__, argument='text'
924
            )
925
926
        if not nvt_oid:
927
            raise RequiredArgument(
928
                function=self.create_note.__name__, argument='nvt_oid'
929
            )
930
931
        cmd = XmlCommand("create_note")
932
        cmd.add_element("text", text)
933
        cmd.add_element("nvt", attrs={"oid": nvt_oid})
934
935
        if seconds_active is not None:
936
            cmd.add_element("active", str(seconds_active))
937
938
        if hosts:
939
            cmd.add_element("hosts", _to_comma_list(hosts))
940
941
        if port:
942
            cmd.add_element("port", str(port))
943
944
        if result_id:
945
            cmd.add_element("result", attrs={"id": result_id})
946
947
        if severity:
948
            cmd.add_element("severity", str(severity))
949
950
        if task_id:
951
            cmd.add_element("task", attrs={"id": task_id})
952
953
        if threat is not None:
954
            if not isinstance(threat, SeverityLevel):
955
                raise InvalidArgumentType(
956
                    function="create_note",
957
                    argument="threat",
958
                    arg_type=SeverityLevel.__name__,
959
                )
960
961
            cmd.add_element("threat", threat.value)
962
963
        return self._send_xml_command(cmd)
964
965
    def clone_note(self, note_id: str) -> Any:
966
        """Clone an existing note
@@ 5011-5084 (lines=74) @@
5008
5009
        return self._send_xml_command(cmd)
5010
5011
    def modify_note(
5012
        self,
5013
        note_id: str,
5014
        text: str,
5015
        *,
5016
        seconds_active: Optional[int] = None,
5017
        hosts: Optional[List[str]] = None,
5018
        port: Optional[int] = None,
5019
        result_id: Optional[str] = None,
5020
        severity: Optional[Severity] = None,
5021
        task_id: Optional[str] = None,
5022
        threat: Optional[SeverityLevel] = None
5023
    ) -> Any:
5024
        """Modifies an existing note.
5025
5026
        Arguments:
5027
            note_id: UUID of note to modify.
5028
            text: The text of the note.
5029
            seconds_active: Seconds note will be active. -1 on always, 0 off.
5030
            hosts: A list of hosts addresses
5031
            port: Port to which note applies.
5032
            result_id: Result to which note applies.
5033
            severity: Severity to which note applies.
5034
            task_id: Task to which note applies.
5035
            threat: Threat level to which note applies. Will be converted to
5036
                severity.
5037
5038
        Returns:
5039
            The response. See :py:meth:`send_command` for details.
5040
        """
5041
        if not note_id:
5042
            raise RequiredArgument(
5043
                function=self.modify_note.__name__, argument='note_id'
5044
            )
5045
5046
        if not text:
5047
            raise RequiredArgument(
5048
                function=self.modify_note.__name__, argument='text'
5049
            )
5050
5051
        cmd = XmlCommand("modify_note")
5052
        cmd.set_attribute("note_id", note_id)
5053
        cmd.add_element("text", text)
5054
5055
        if seconds_active is not None:
5056
            cmd.add_element("active", str(seconds_active))
5057
5058
        if hosts:
5059
            cmd.add_element("hosts", _to_comma_list(hosts))
5060
5061
        if port:
5062
            cmd.add_element("port", str(port))
5063
5064
        if result_id:
5065
            cmd.add_element("result", attrs={"id": result_id})
5066
5067
        if severity:
5068
            cmd.add_element("severity", str(severity))
5069
5070
        if task_id:
5071
            cmd.add_element("task", attrs={"id": task_id})
5072
5073
        if threat is not None:
5074
5075
            if not isinstance(threat, SeverityLevel):
5076
                raise InvalidArgumentType(
5077
                    function=self.modify_note.__name__,
5078
                    argument='threat',
5079
                    arg_type=SeverityLevel.__name__,
5080
                )
5081
5082
            cmd.add_element("threat", threat.value)
5083
5084
        return self._send_xml_command(cmd)
5085
5086
    def modify_override(
5087
        self,