@@ 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, |