Code Duplication    Length = 48-49 lines in 3 locations

gvm/protocols/gmpv7/__init__.py 2 locations

@@ 724-772 (lines=49) @@
721
        cmd.add_element("copy", credential_id)
722
        return self._send_xml_command(cmd)
723
724
    def create_filter(
725
        self,
726
        name: str,
727
        *,
728
        make_unique: Optional[bool] = None,
729
        filter_type: Optional[FilterType] = None,
730
        comment: Optional[str] = None,
731
        term: Optional[str] = None
732
    ) -> Any:
733
        """Create a new filter
734
735
        Arguments:
736
            name: Name of the new filter
737
            make_unique:
738
            filter_type: Filter for entity type
739
            comment: Comment for the filter
740
            term: Filter term e.g. 'name=foo'
741
742
        Returns:
743
            The response. See :py:meth:`send_command` for details.
744
        """
745
        if not name:
746
            raise RequiredArgument(
747
                function=self.create_filter.__name__, argument="name"
748
            )
749
750
        cmd = XmlCommand("create_filter")
751
        _xmlname = cmd.add_element("name", name)
752
753
        if comment:
754
            cmd.add_element("comment", comment)
755
756
        if term:
757
            cmd.add_element("term", term)
758
759
        if make_unique is not None:
760
            cmd.add_element("make_unique", _to_bool(make_unique))
761
762
        if filter_type:
763
            if not isinstance(filter_type, self.types.FilterType):
764
                raise InvalidArgumentType(
765
                    function=self.create_filter.__name__,
766
                    argument="filter_type",
767
                    arg_type=self.types.FilterType.__name__,
768
                )
769
770
            cmd.add_element("type", filter_type.value)
771
772
        return self._send_xml_command(cmd)
773
774
    def clone_filter(self, filter_id: str) -> Any:
775
        """Clone an existing filter
@@ 4806-4853 (lines=48) @@
4803
4804
        return self._send_xml_command(cmd)
4805
4806
    def modify_filter(
4807
        self,
4808
        filter_id: str,
4809
        *,
4810
        comment: Optional[str] = None,
4811
        name: Optional[str] = None,
4812
        term: Optional[str] = None,
4813
        filter_type: Optional[FilterType] = None
4814
    ) -> Any:
4815
        """Modifies an existing filter.
4816
4817
        Arguments:
4818
            filter_id: UUID of the filter to be modified
4819
            comment: Comment on filter.
4820
            name: Name of filter.
4821
            term: Filter term.
4822
            filter_type: Filter type the filter applies to.
4823
4824
        Returns:
4825
            The response. See :py:meth:`send_command` for details.
4826
        """
4827
        if not filter_id:
4828
            raise RequiredArgument(
4829
                function=self.modify_filter.__name__, argument='filter_id'
4830
            )
4831
4832
        cmd = XmlCommand("modify_filter")
4833
        cmd.set_attribute("filter_id", filter_id)
4834
4835
        if comment:
4836
            cmd.add_element("comment", comment)
4837
4838
        if name:
4839
            cmd.add_element("name", name)
4840
4841
        if term:
4842
            cmd.add_element("term", term)
4843
4844
        if filter_type:
4845
            if not isinstance(filter_type, self.types.FilterType):
4846
                raise InvalidArgumentType(
4847
                    function=self.modify_filter.__name__,
4848
                    argument='filter_type',
4849
                    arg_type=self.types.FilterType.__name__,
4850
                )
4851
            cmd.add_element("type", filter_type.value)
4852
4853
        return self._send_xml_command(cmd)
4854
4855
    def modify_group(
4856
        self,

gvm/protocols/gmpv8/__init__.py 1 location

@@ 902-949 (lines=48) @@
899
            name, filter_type=filter_type, comment=comment, term=term
900
        )
901
902
    def modify_filter(
903
        self,
904
        filter_id: str,
905
        *,
906
        comment: Optional[str] = None,
907
        name: Optional[str] = None,
908
        term: Optional[str] = None,
909
        filter_type: Optional[FilterType] = None
910
    ) -> Any:
911
        """Modifies an existing filter.
912
913
        Arguments:
914
            filter_id: UUID of the filter to be modified
915
            comment: Comment on filter.
916
            name: Name of filter.
917
            term: Filter term.
918
            filter_type: Resource type filter applies to.
919
920
        Returns:
921
            The response. See :py:meth:`send_command` for details.
922
        """
923
        if not filter_id:
924
            raise RequiredArgument(
925
                function=self.modify_filter.__name__, argument='filter_id'
926
            )
927
928
        cmd = XmlCommand("modify_filter")
929
        cmd.set_attribute("filter_id", filter_id)
930
931
        if comment:
932
            cmd.add_element("comment", comment)
933
934
        if name:
935
            cmd.add_element("name", name)
936
937
        if term:
938
            cmd.add_element("term", term)
939
940
        if filter_type:
941
            if not isinstance(filter_type, FilterType):
942
                raise InvalidArgumentType(
943
                    function=self.modify_filter.__name__,
944
                    argument='filter_type',
945
                    arg_type=FilterType.__name__,
946
                )
947
            cmd.add_element("type", filter_type.value)
948
949
        return self._send_xml_command(cmd)
950
951
    def create_schedule(
952
        self,