Code Duplication    Length = 48-49 lines in 4 locations

gvm/protocols/gmpv7/gmpv7.py 2 locations

@@ 739-787 (lines=49) @@
736
        cmd.add_element("copy", credential_id)
737
        return self._send_xml_command(cmd)
738
739
    def create_filter(
740
        self,
741
        name: str,
742
        *,
743
        make_unique: Optional[bool] = None,
744
        filter_type: Optional[FilterType] = None,
745
        comment: Optional[str] = None,
746
        term: Optional[str] = None,
747
    ) -> Any:
748
        """Create a new filter
749
750
        Arguments:
751
            name: Name of the new filter
752
            make_unique:
753
            filter_type: Filter for entity type
754
            comment: Comment for the filter
755
            term: Filter term e.g. 'name=foo'
756
757
        Returns:
758
            The response. See :py:meth:`send_command` for details.
759
        """
760
        if not name:
761
            raise RequiredArgument(
762
                function=self.create_filter.__name__, argument="name"
763
            )
764
765
        cmd = XmlCommand("create_filter")
766
        _xmlname = cmd.add_element("name", name)
767
768
        if comment:
769
            cmd.add_element("comment", comment)
770
771
        if term:
772
            cmd.add_element("term", term)
773
774
        if make_unique is not None:
775
            cmd.add_element("make_unique", _to_bool(make_unique))
776
777
        if filter_type:
778
            if not isinstance(filter_type, self.types.FilterType):
779
                raise InvalidArgumentType(
780
                    function=self.create_filter.__name__,
781
                    argument="filter_type",
782
                    arg_type=self.types.FilterType.__name__,
783
                )
784
785
            cmd.add_element("type", filter_type.value)
786
787
        return self._send_xml_command(cmd)
788
789
    def clone_filter(self, filter_id: str) -> Any:
790
        """Clone an existing filter
@@ 5013-5060 (lines=48) @@
5010
5011
        return self._send_xml_command(cmd)
5012
5013
    def modify_filter(
5014
        self,
5015
        filter_id: str,
5016
        *,
5017
        comment: Optional[str] = None,
5018
        name: Optional[str] = None,
5019
        term: Optional[str] = None,
5020
        filter_type: Optional[FilterType] = None,
5021
    ) -> Any:
5022
        """Modifies an existing filter.
5023
5024
        Arguments:
5025
            filter_id: UUID of the filter to be modified
5026
            comment: Comment on filter.
5027
            name: Name of filter.
5028
            term: Filter term.
5029
            filter_type: Filter type the filter applies to.
5030
5031
        Returns:
5032
            The response. See :py:meth:`send_command` for details.
5033
        """
5034
        if not filter_id:
5035
            raise RequiredArgument(
5036
                function=self.modify_filter.__name__, argument='filter_id'
5037
            )
5038
5039
        cmd = XmlCommand("modify_filter")
5040
        cmd.set_attribute("filter_id", filter_id)
5041
5042
        if comment:
5043
            cmd.add_element("comment", comment)
5044
5045
        if name:
5046
            cmd.add_element("name", name)
5047
5048
        if term:
5049
            cmd.add_element("term", term)
5050
5051
        if filter_type:
5052
            if not isinstance(filter_type, self.types.FilterType):
5053
                raise InvalidArgumentType(
5054
                    function=self.modify_filter.__name__,
5055
                    argument='filter_type',
5056
                    arg_type=self.types.FilterType.__name__,
5057
                )
5058
            cmd.add_element("type", filter_type.value)
5059
5060
        return self._send_xml_command(cmd)
5061
5062
    def modify_group(
5063
        self,

gvm/protocols/gmpv208/gmpv208.py 1 location

@@ 3097-3144 (lines=48) @@
3094
3095
        return self._send_xml_command(cmd)
3096
3097
    def modify_filter(
3098
        self,
3099
        filter_id: str,
3100
        *,
3101
        comment: Optional[str] = None,
3102
        name: Optional[str] = None,
3103
        term: Optional[str] = None,
3104
        filter_type: Optional[FilterType] = None,
3105
    ) -> Any:
3106
        """Modifies an existing filter.
3107
3108
        Arguments:
3109
            filter_id: UUID of the filter to be modified
3110
            comment: Comment on filter.
3111
            name: Name of filter.
3112
            term: Filter term.
3113
            filter_type: Resource type filter applies to.
3114
3115
        Returns:
3116
            The response. See :py:meth:`send_command` for details.
3117
        """
3118
        if not filter_id:
3119
            raise RequiredArgument(
3120
                function=self.modify_filter.__name__, argument='filter_id'
3121
            )
3122
3123
        cmd = XmlCommand("modify_filter")
3124
        cmd.set_attribute("filter_id", filter_id)
3125
3126
        if comment:
3127
            cmd.add_element("comment", comment)
3128
3129
        if name:
3130
            cmd.add_element("name", name)
3131
3132
        if term:
3133
            cmd.add_element("term", term)
3134
3135
        if filter_type:
3136
            if not isinstance(filter_type, self.types.FilterType):
3137
                raise InvalidArgumentType(
3138
                    function=self.modify_filter.__name__,
3139
                    argument='filter_type',
3140
                    arg_type=FilterType.__name__,
3141
                )
3142
            cmd.add_element("type", filter_type.value)
3143
3144
        return self._send_xml_command(cmd)
3145
3146
    def create_schedule(
3147
        self,

gvm/protocols/gmpv8/gmpv8.py 1 location

@@ 928-975 (lines=48) @@
925
926
        return self._send_xml_command(cmd)
927
928
    def modify_filter(
929
        self,
930
        filter_id: str,
931
        *,
932
        comment: Optional[str] = None,
933
        name: Optional[str] = None,
934
        term: Optional[str] = None,
935
        filter_type: Optional[FilterType] = None,
936
    ) -> Any:
937
        """Modifies an existing filter.
938
939
        Arguments:
940
            filter_id: UUID of the filter to be modified
941
            comment: Comment on filter.
942
            name: Name of filter.
943
            term: Filter term.
944
            filter_type: Resource type filter applies to.
945
946
        Returns:
947
            The response. See :py:meth:`send_command` for details.
948
        """
949
        if not filter_id:
950
            raise RequiredArgument(
951
                function=self.modify_filter.__name__, argument='filter_id'
952
            )
953
954
        cmd = XmlCommand("modify_filter")
955
        cmd.set_attribute("filter_id", filter_id)
956
957
        if comment:
958
            cmd.add_element("comment", comment)
959
960
        if name:
961
            cmd.add_element("name", name)
962
963
        if term:
964
            cmd.add_element("term", term)
965
966
        if filter_type:
967
            if not isinstance(filter_type, self.types.FilterType):
968
                raise InvalidArgumentType(
969
                    function=self.modify_filter.__name__,
970
                    argument='filter_type',
971
                    arg_type=FilterType.__name__,
972
                )
973
            cmd.add_element("type", filter_type.value)
974
975
        return self._send_xml_command(cmd)
976
977
    def create_schedule(
978
        self,