| @@ 822-881 (lines=60) @@ | ||
| 819 | cmd.set_attribute("vuln_id", vulnerability_id) |
|
| 820 | return self._send_xml_command(cmd) |
|
| 821 | ||
| 822 | def modify_ticket( |
|
| 823 | self, |
|
| 824 | ticket_id: str, |
|
| 825 | *, |
|
| 826 | status: Optional[TicketStatus] = None, |
|
| 827 | note: Optional[str] = None, |
|
| 828 | assigned_to_user_id: Optional[str] = None, |
|
| 829 | comment: Optional[str] = None, |
|
| 830 | ) -> Any: |
|
| 831 | """Modify a single ticket |
|
| 832 | ||
| 833 | Arguments: |
|
| 834 | ticket_id: UUID of an existing ticket |
|
| 835 | status: New status for the ticket |
|
| 836 | note: Note for the status change. Required if status is set. |
|
| 837 | assigned_to_user_id: UUID of the user the ticket should be assigned |
|
| 838 | to |
|
| 839 | comment: Comment for the ticket |
|
| 840 | ||
| 841 | Returns: |
|
| 842 | The response. See :py:meth:`send_command` for details. |
|
| 843 | """ |
|
| 844 | if not ticket_id: |
|
| 845 | raise RequiredArgument( |
|
| 846 | function=self.modify_ticket.__name__, argument='ticket_id' |
|
| 847 | ) |
|
| 848 | ||
| 849 | if status and not note: |
|
| 850 | raise RequiredArgument( |
|
| 851 | function=self.modify_ticket.__name__, argument='note' |
|
| 852 | ) |
|
| 853 | ||
| 854 | if note and not status: |
|
| 855 | raise RequiredArgument( |
|
| 856 | function=self.modify_ticket.__name__, argument='status' |
|
| 857 | ) |
|
| 858 | ||
| 859 | cmd = XmlCommand("modify_ticket") |
|
| 860 | cmd.set_attribute("ticket_id", ticket_id) |
|
| 861 | ||
| 862 | if assigned_to_user_id: |
|
| 863 | _assigned = cmd.add_element("assigned_to") |
|
| 864 | _user = _assigned.add_element("user") |
|
| 865 | _user.set_attribute("id", assigned_to_user_id) |
|
| 866 | ||
| 867 | if status: |
|
| 868 | if not isinstance(status, self.types.TicketStatus): |
|
| 869 | raise InvalidArgumentType( |
|
| 870 | function=self.modify_ticket.__name__, |
|
| 871 | argument='status', |
|
| 872 | arg_type=TicketStatus.__name__, |
|
| 873 | ) |
|
| 874 | ||
| 875 | cmd.add_element('status', status.value) |
|
| 876 | cmd.add_element('{}_note'.format(status.name.lower()), note) |
|
| 877 | ||
| 878 | if comment: |
|
| 879 | cmd.add_element("comment", comment) |
|
| 880 | ||
| 881 | return self._send_xml_command(cmd) |
|
| 882 | ||
| 883 | def create_filter( |
|
| 884 | self, |
|
| @@ 3023-3082 (lines=60) @@ | ||
| 3020 | cmd.set_attribute("vuln_id", vulnerability_id) |
|
| 3021 | return self._send_xml_command(cmd) |
|
| 3022 | ||
| 3023 | def modify_ticket( |
|
| 3024 | self, |
|
| 3025 | ticket_id: str, |
|
| 3026 | *, |
|
| 3027 | status: Optional[TicketStatus] = None, |
|
| 3028 | note: Optional[str] = None, |
|
| 3029 | assigned_to_user_id: Optional[str] = None, |
|
| 3030 | comment: Optional[str] = None, |
|
| 3031 | ) -> Any: |
|
| 3032 | """Modify a single ticket |
|
| 3033 | ||
| 3034 | Arguments: |
|
| 3035 | ticket_id: UUID of an existing ticket |
|
| 3036 | status: New status for the ticket |
|
| 3037 | note: Note for the status change. Required if status is set. |
|
| 3038 | assigned_to_user_id: UUID of the user the ticket should be assigned |
|
| 3039 | to |
|
| 3040 | comment: Comment for the ticket |
|
| 3041 | ||
| 3042 | Returns: |
|
| 3043 | The response. See :py:meth:`send_command` for details. |
|
| 3044 | """ |
|
| 3045 | if not ticket_id: |
|
| 3046 | raise RequiredArgument( |
|
| 3047 | function=self.modify_ticket.__name__, argument='ticket_id' |
|
| 3048 | ) |
|
| 3049 | ||
| 3050 | if status and not note: |
|
| 3051 | raise RequiredArgument( |
|
| 3052 | function=self.modify_ticket.__name__, argument='note' |
|
| 3053 | ) |
|
| 3054 | ||
| 3055 | if note and not status: |
|
| 3056 | raise RequiredArgument( |
|
| 3057 | function=self.modify_ticket.__name__, argument='status' |
|
| 3058 | ) |
|
| 3059 | ||
| 3060 | cmd = XmlCommand("modify_ticket") |
|
| 3061 | cmd.set_attribute("ticket_id", ticket_id) |
|
| 3062 | ||
| 3063 | if assigned_to_user_id: |
|
| 3064 | _assigned = cmd.add_element("assigned_to") |
|
| 3065 | _user = _assigned.add_element("user") |
|
| 3066 | _user.set_attribute("id", assigned_to_user_id) |
|
| 3067 | ||
| 3068 | if status: |
|
| 3069 | if not isinstance(status, self.types.TicketStatus): |
|
| 3070 | raise InvalidArgumentType( |
|
| 3071 | function=self.modify_ticket.__name__, |
|
| 3072 | argument='status', |
|
| 3073 | arg_type=TicketStatus.__name__, |
|
| 3074 | ) |
|
| 3075 | ||
| 3076 | cmd.add_element('status', status.value) |
|
| 3077 | cmd.add_element('{}_note'.format(status.name.lower()), note) |
|
| 3078 | ||
| 3079 | if comment: |
|
| 3080 | cmd.add_element("comment", comment) |
|
| 3081 | ||
| 3082 | return self._send_xml_command(cmd) |
|
| 3083 | ||
| 3084 | def create_filter( |
|
| 3085 | self, |
|