Code Duplication    Length = 90-91 lines in 2 locations

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

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