Code Duplication    Length = 89-89 lines in 2 locations

gvm/protocols/gmpv208/gmpv208.py 1 location

@@ 1176-1264 (lines=89) @@
1173
            preferences=preferences,
1174
        )
1175
1176
    def modify_permission(
1177
        self,
1178
        permission_id: str,
1179
        *,
1180
        comment: Optional[str] = None,
1181
        name: Optional[str] = None,
1182
        resource_id: Optional[str] = None,
1183
        resource_type: Optional[EntityType] = None,
1184
        subject_id: Optional[str] = None,
1185
        subject_type: Optional[PermissionSubjectType] = None,
1186
    ) -> Any:
1187
        """Modifies an existing permission.
1188
1189
        Arguments:
1190
            permission_id: UUID of permission to be modified.
1191
            comment: The comment on the permission.
1192
            name: Permission name, currently the name of a command.
1193
            subject_id: UUID of subject to whom the permission is granted
1194
            subject_type: Type of the subject user, group or role
1195
            resource_id: UUID of entity to which the permission applies
1196
            resource_type: Type of the resource. For Super permissions user,
1197
                group or role
1198
1199
        Returns:
1200
            The response. See :py:meth:`send_command` for details.
1201
        """
1202
        if not permission_id:
1203
            raise RequiredArgument(
1204
                function=self.modify_permission.__name__,
1205
                argument='permission_id',
1206
            )
1207
1208
        cmd = XmlCommand("modify_permission")
1209
        cmd.set_attribute("permission_id", permission_id)
1210
1211
        if comment:
1212
            cmd.add_element("comment", comment)
1213
1214
        if name:
1215
            cmd.add_element("name", name)
1216
1217
        if resource_id or resource_type:
1218
            if not resource_id:
1219
                raise RequiredArgument(
1220
                    function=self.modify_permission.__name__,
1221
                    argument='resource_id',
1222
                )
1223
1224
            if not resource_type:
1225
                raise RequiredArgument(
1226
                    function=self.modify_permission.__name__,
1227
                    argument='resource_type',
1228
                )
1229
1230
            if not isinstance(resource_type, self.types.EntityType):
1231
                raise InvalidArgumentType(
1232
                    function=self.modify_permission.__name__,
1233
                    argument='resource_type',
1234
                    arg_type=self.types.EntityType.__name__,
1235
                )
1236
1237
            _xmlresource = cmd.add_element(
1238
                "resource", attrs={"id": resource_id}
1239
            )
1240
            _actual_resource_type = resource_type
1241
            if resource_type.value == EntityType.AUDIT.value:
1242
                _actual_resource_type = EntityType.TASK
1243
            elif resource_type.value == EntityType.POLICY.value:
1244
                _actual_resource_type = EntityType.SCAN_CONFIG
1245
            _xmlresource.add_element("type", _actual_resource_type.value)
1246
1247
        if subject_id or subject_type:
1248
            if not subject_id:
1249
                raise RequiredArgument(
1250
                    function=self.modify_permission.__name__,
1251
                    argument='subject_id',
1252
                )
1253
1254
            if not isinstance(subject_type, PermissionSubjectType):
1255
                raise InvalidArgumentType(
1256
                    function=self.modify_permission.__name__,
1257
                    argument='subject_type',
1258
                    arg_type=PermissionSubjectType.__name__,
1259
                )
1260
1261
            _xmlsubject = cmd.add_element("subject", attrs={"id": subject_id})
1262
            _xmlsubject.add_element("type", subject_type.value)
1263
1264
        return self._send_xml_command(cmd)
1265
1266
    def modify_policy_set_nvt_preference(
1267
        self,

gvm/protocols/gmpv9/gmpv9.py 1 location

@@ 1049-1137 (lines=89) @@
1046
            preferences=preferences,
1047
        )
1048
1049
    def modify_permission(
1050
        self,
1051
        permission_id: str,
1052
        *,
1053
        comment: Optional[str] = None,
1054
        name: Optional[str] = None,
1055
        resource_id: Optional[str] = None,
1056
        resource_type: Optional[EntityType] = None,
1057
        subject_id: Optional[str] = None,
1058
        subject_type: Optional[PermissionSubjectType] = None,
1059
    ) -> Any:
1060
        """Modifies an existing permission.
1061
1062
        Arguments:
1063
            permission_id: UUID of permission to be modified.
1064
            comment: The comment on the permission.
1065
            name: Permission name, currently the name of a command.
1066
            subject_id: UUID of subject to whom the permission is granted
1067
            subject_type: Type of the subject user, group or role
1068
            resource_id: UUID of entity to which the permission applies
1069
            resource_type: Type of the resource. For Super permissions user,
1070
                group or role
1071
1072
        Returns:
1073
            The response. See :py:meth:`send_command` for details.
1074
        """
1075
        if not permission_id:
1076
            raise RequiredArgument(
1077
                function=self.modify_permission.__name__,
1078
                argument='permission_id',
1079
            )
1080
1081
        cmd = XmlCommand("modify_permission")
1082
        cmd.set_attribute("permission_id", permission_id)
1083
1084
        if comment:
1085
            cmd.add_element("comment", comment)
1086
1087
        if name:
1088
            cmd.add_element("name", name)
1089
1090
        if resource_id or resource_type:
1091
            if not resource_id:
1092
                raise RequiredArgument(
1093
                    function=self.modify_permission.__name__,
1094
                    argument='resource_id',
1095
                )
1096
1097
            if not resource_type:
1098
                raise RequiredArgument(
1099
                    function=self.modify_permission.__name__,
1100
                    argument='resource_type',
1101
                )
1102
1103
            if not isinstance(resource_type, self.types.EntityType):
1104
                raise InvalidArgumentType(
1105
                    function=self.modify_permission.__name__,
1106
                    argument='resource_type',
1107
                    arg_type=self.types.EntityType.__name__,
1108
                )
1109
1110
            _xmlresource = cmd.add_element(
1111
                "resource", attrs={"id": resource_id}
1112
            )
1113
            _actual_resource_type = resource_type
1114
            if resource_type.value == EntityType.AUDIT.value:
1115
                _actual_resource_type = EntityType.TASK
1116
            elif resource_type.value == EntityType.POLICY.value:
1117
                _actual_resource_type = EntityType.SCAN_CONFIG
1118
            _xmlresource.add_element("type", _actual_resource_type.value)
1119
1120
        if subject_id or subject_type:
1121
            if not subject_id:
1122
                raise RequiredArgument(
1123
                    function=self.modify_permission.__name__,
1124
                    argument='subject_id',
1125
                )
1126
1127
            if not isinstance(subject_type, PermissionSubjectType):
1128
                raise InvalidArgumentType(
1129
                    function=self.modify_permission.__name__,
1130
                    argument='subject_type',
1131
                    arg_type=PermissionSubjectType.__name__,
1132
                )
1133
1134
            _xmlsubject = cmd.add_element("subject", attrs={"id": subject_id})
1135
            _xmlsubject.add_element("type", subject_type.value)
1136
1137
        return self._send_xml_command(cmd)
1138
1139
    def modify_policy_set_nvt_preference(
1140
        self,