Code Duplication    Length = 43-49 lines in 2 locations

gvm/protocols/gmpv8.py 2 locations

@@ 1027-1075 (lines=49) @@
1024
1025
        return self._send_xml_command(cmd)
1026
1027
    def modify_filter(
1028
        self,
1029
        filter_id: str,
1030
        *,
1031
        comment: Optional[str] = None,
1032
        name: Optional[str] = None,
1033
        term: Optional[str] = None,
1034
        filter_type: Optional[FilterType] = None
1035
    ) -> Any:
1036
        """Modifies an existing filter.
1037
1038
        Arguments:
1039
            filter_id: UUID of the filter to be modified
1040
            comment: Comment on filter.
1041
            name: Name of filter.
1042
            term: Filter term.
1043
            filter_type: Resource type filter applies to.
1044
1045
        Returns:
1046
            The response. See :py:meth:`send_command` for details.
1047
        """
1048
        if not filter_id:
1049
            raise RequiredArgument(
1050
                function="modify_filter", argument="filter_id"
1051
            )
1052
1053
        cmd = XmlCommand("modify_filter")
1054
        cmd.set_attribute("filter_id", filter_id)
1055
1056
        if comment:
1057
            cmd.add_element("comment", comment)
1058
1059
        if name:
1060
            cmd.add_element("name", name)
1061
1062
        if term:
1063
            cmd.add_element("term", term)
1064
1065
        if filter_type:
1066
            if not isinstance(filter_type, FilterType):
1067
                raise InvalidArgument(
1068
                    "modify_filter requires type to be a FilterType instance. "
1069
                    "was {}".format(filter_type),
1070
                    function="modify_filter",
1071
                    argument="filter_type",
1072
                )
1073
            cmd.add_element("type", filter_type.value)
1074
1075
        return self._send_xml_command(cmd)
1076
1077
    def create_target(
1078
        self,
@@ 983-1025 (lines=43) @@
980
981
        return self._send_xml_command(cmd)
982
983
    def create_filter(
984
        self,
985
        name: str,
986
        *,
987
        filter_type: Optional[FilterType] = None,
988
        comment: Optional[str] = None,
989
        term: Optional[str] = None
990
    ) -> Any:
991
        """Create a new filter
992
993
        Arguments:
994
            name: Name of the new filter
995
            filter_type: Entity type for the new filter
996
            comment: Comment for the filter
997
            term: Filter term e.g. 'name=foo'
998
999
        Returns:
1000
            The response. See :py:meth:`send_command` for details.
1001
        """
1002
        if not name:
1003
            raise RequiredArgument(function="create_filter", argument="name")
1004
1005
        cmd = XmlCommand("create_filter")
1006
        _xmlname = cmd.add_element("name", name)
1007
1008
        if comment:
1009
            cmd.add_element("comment", comment)
1010
1011
        if term:
1012
            cmd.add_element("term", term)
1013
1014
        if filter_type:
1015
            if not isinstance(filter_type, FilterType):
1016
                raise InvalidArgument(
1017
                    "create_filter requires type to be a FilterType instance. "
1018
                    "was {}".format(filter_type),
1019
                    function="create_filter",
1020
                    argument="filter_type",
1021
                )
1022
1023
            cmd.add_element("type", filter_type.value)
1024
1025
        return self._send_xml_command(cmd)
1026
1027
    def modify_filter(
1028
        self,