Code Duplication    Length = 90-91 lines in 2 locations

gvm/protocols/gmpv208/entities/overrides.py 2 locations

@@ 28-118 (lines=91) @@
25
26
27
class OverridesMixin:
28
    def create_override(
29
        self,
30
        text: str,
31
        nvt_oid: str,
32
        *,
33
        days_active: Optional[int] = None,
34
        hosts: Optional[List[str]] = None,
35
        port: Optional[int] = None,
36
        result_id: Optional[str] = None,
37
        severity: Optional[Severity] = None,
38
        new_severity: Optional[Severity] = None,
39
        task_id: Optional[str] = None,
40
        threat: Optional[SeverityLevel] = None,
41
        new_threat: Optional[SeverityLevel] = None,
42
    ) -> Any:
43
        """Create a new override
44
45
        Arguments:
46
            text: Text of the new override
47
            nvt_id: OID of the nvt to which override applies
48
            days_active: Days override will be active. -1 on always, 0 off
49
            hosts: A list of host addresses
50
            port: Port to which the override applies
51
            result_id: UUID of a result to which override applies
52
            severity: Severity to which override applies
53
            new_severity: New severity for result
54
            task_id: UUID of task to which override applies
55
            threat: Severity level to which override applies. Will be converted
56
                to severity.
57
            new_threat: New severity level for results. Will be converted to
58
                new_severity.
59
60
        Returns:
61
            The response. See :py:meth:`send_command` for details.
62
        """
63
        if not text:
64
            raise RequiredArgument(
65
                function=self.create_override.__name__, argument='text'
66
            )
67
68
        if not nvt_oid:
69
            raise RequiredArgument(
70
                function=self.create_override.__name__, argument='nvt_oid'
71
            )
72
73
        cmd = XmlCommand("create_override")
74
        cmd.add_element("text", text)
75
        cmd.add_element("nvt", attrs={"oid": nvt_oid})
76
77
        if days_active is not None:
78
            cmd.add_element("active", str(days_active))
79
80
        if hosts:
81
            cmd.add_element("hosts", to_comma_list(hosts))
82
83
        if port:
84
            cmd.add_element("port", str(port))
85
86
        if result_id:
87
            cmd.add_element("result", attrs={"id": result_id})
88
89
        if severity:
90
            cmd.add_element("severity", str(severity))
91
92
        if new_severity:
93
            cmd.add_element("new_severity", str(new_severity))
94
95
        if task_id:
96
            cmd.add_element("task", attrs={"id": task_id})
97
98
        if threat is not None:
99
            if not isinstance(threat, SeverityLevel):
100
                raise InvalidArgumentType(
101
                    function=self.create_override.__name__,
102
                    argument="threat",
103
                    arg_type=SeverityLevel.__name__,
104
                )
105
106
            cmd.add_element("threat", threat.value)
107
108
        if new_threat is not None:
109
            if not isinstance(new_threat, SeverityLevel):
110
                raise InvalidArgumentType(
111
                    function=self.create_override.__name__,
112
                    argument="new_threat",
113
                    arg_type=SeverityLevel.__name__,
114
                )
115
116
            cmd.add_element("new_threat", new_threat.value)
117
118
        return self._send_xml_command(cmd)
119
120
    def clone_override(self, override_id: str) -> Any:
121
        """Clone an existing override
@@ 211-300 (lines=90) @@
208
        cmd.set_attribute("details", "1")
209
        return self._send_xml_command(cmd)
210
211
    def modify_override(
212
        self,
213
        override_id: str,
214
        text: str,
215
        *,
216
        days_active: Optional[int] = None,
217
        hosts: Optional[List[str]] = None,
218
        port: Optional[int] = None,
219
        result_id: Optional[str] = None,
220
        severity: Optional[Severity] = None,
221
        new_severity: Optional[Severity] = None,
222
        task_id: Optional[str] = None,
223
        threat: Optional[SeverityLevel] = None,
224
        new_threat: Optional[SeverityLevel] = None,
225
    ) -> Any:
226
        """Modifies an existing override.
227
228
        Arguments:
229
            override_id: UUID of override to modify.
230
            text: The text of the override.
231
            days_active: Days override will be active. -1 on always,
232
                0 off.
233
            hosts: A list of host addresses
234
            port: Port to which override applies.
235
            result_id: Result to which override applies.
236
            severity: Severity to which override applies.
237
            new_severity: New severity score for result.
238
            task_id: Task to which override applies.
239
            threat: Threat level to which override applies.
240
                Will be converted to severity.
241
            new_threat: New threat level for results. Will be converted to
242
                new_severity.
243
244
        Returns:
245
            The response. See :py:meth:`send_command` for details.
246
        """
247
        if not override_id:
248
            raise RequiredArgument(
249
                function=self.modify_override.__name__, argument='override_id'
250
            )
251
        if not text:
252
            raise RequiredArgument(
253
                function=self.modify_override.__name__, argument='text'
254
            )
255
256
        cmd = XmlCommand("modify_override")
257
        cmd.set_attribute("override_id", override_id)
258
        cmd.add_element("text", text)
259
260
        if days_active is not None:
261
            cmd.add_element("active", str(days_active))
262
263
        if hosts:
264
            cmd.add_element("hosts", to_comma_list(hosts))
265
266
        if port:
267
            cmd.add_element("port", str(port))
268
269
        if result_id:
270
            cmd.add_element("result", attrs={"id": result_id})
271
272
        if severity:
273
            cmd.add_element("severity", str(severity))
274
275
        if new_severity:
276
            cmd.add_element("new_severity", str(new_severity))
277
278
        if task_id:
279
            cmd.add_element("task", attrs={"id": task_id})
280
281
        if threat is not None:
282
            if not isinstance(threat, SeverityLevel):
283
                raise InvalidArgumentType(
284
                    function=self.modify_override.__name__,
285
                    argument='threat',
286
                    arg_type=SeverityLevel.__name__,
287
                )
288
            cmd.add_element("threat", threat.value)
289
290
        if new_threat is not None:
291
            if not isinstance(new_threat, SeverityLevel):
292
                raise InvalidArgumentType(
293
                    function=self.modify_override.__name__,
294
                    argument='new_threat',
295
                    arg_type=SeverityLevel.__name__,
296
                )
297
298
            cmd.add_element("new_threat", new_threat.value)
299
300
        return self._send_xml_command(cmd)
301