UpdateSecuronixIncidentStatus
Update the status of the Securonix incident using the configuration provided in integration configuration.
- Type
- python
- Pack
- Securonix
Source
import demistomock as demisto # noqa: F401
from CommonServerPython import * # noqa: F401
"""Close incident on Securonix."""
def main():
"""Entry point."""
try:
# Retrieve the arguments passed with the script.
script_args = demisto.args()
xsoar_incident_id = demisto.incident().get("id")
incident_id = script_args.get("incident_id", "").strip()
active_state = script_args.get("active_state_status", "").strip()
close_state = script_args.get("close_state_status", "").strip()
active_action_name = script_args.get("active_state_action", "").strip()
close_action_name = script_args.get("close_state_action", "").strip()
only_active = argToBoolean(script_args.get("only_active", False))
using_instance = script_args.get("using", "").strip()
# Retrieve the current status of the Securonix incident.
incident_custom_fields = demisto.incident().get("CustomFields")
current_incident_state = incident_custom_fields.get("securonixincidentstatus")
# Check if the Securonix incident is not in the active state and not in closed state.
# If incident not in the active or closed state, then only perform this action.
if current_incident_state.lower() != active_state.lower() and current_incident_state.lower() != close_state.lower():
# Move the incident to the active state.
command_args = {
"incident_id": incident_id,
"action": active_action_name,
"action_parameters": "",
"using": using_instance,
}
demisto.debug(f"Moving the incident {incident_id} to {active_state}.")
command_raw_resp = demisto.executeCommand("securonix-perform-action-on-incident", command_args)
command_resp = command_raw_resp[0]["Contents"]
# If the response is not 'submitted', then there is an error performing the action.
if command_resp.lower() != "submitted":
demisto.error(command_resp)
return_error(command_resp)
comment_str = (
f"[Mirrored From XSOAR] XSOAR Incident ID: {xsoar_incident_id}\n"
f"Added By: Automated XSOAR Playbook\n"
f"Comment: Moved the state of current incident from {current_incident_state} to"
f" {active_state}."
)
command_args = {"incident_id": incident_id, "comment": comment_str, "using": using_instance}
command_raw_resp = demisto.executeCommand("securonix-add-comment-to-incident", command_args)
command_resp = command_raw_resp[0]["Contents"]
if not isinstance(command_resp, bool):
demisto.error(command_resp)
# Update the current state of Securonix incident.
current_incident_state = active_state
if only_active:
return return_results(f"Incident {incident_id} has been moved to {active_state}.")
if not only_active:
if current_incident_state.lower() != close_state.lower():
# Close the incident on the Securonix platform.
command_args = {
"incident_id": incident_id,
"action": close_action_name,
"action_parameters": "",
"using": using_instance,
}
demisto.debug(f"Moving the incident {incident_id} to {close_state}.")
command_raw_resp = demisto.executeCommand("securonix-perform-action-on-incident", command_args)
command_resp = command_raw_resp[0]["Contents"]
if command_resp.lower() != "submitted":
demisto.error(command_resp)
return_error(command_resp)
# Add a comment to the remote incident with the XSOAR incident id.
comment_str = (
f"[Mirrored From XSOAR] XSOAR Incident ID: {xsoar_incident_id}\n"
f"Added By: Automated XSOAR Playbook\n"
f"Comment: Moved the state of current incident from {active_state} to"
f" {close_state}."
)
command_args = {"incident_id": incident_id, "comment": comment_str, "using": using_instance}
command_raw_resp = demisto.executeCommand("securonix-add-comment-to-incident", command_args)
command_resp = command_raw_resp[0]["Contents"]
if not isinstance(command_resp, bool):
demisto.error(command_resp)
return return_results(
f"Successfully closed incident {incident_id} on Securonix.\n"
f"Could not able to add comment to the remote incident."
f"\nReason: {command_resp}"
)
return return_results(f"Successfully closed incident {incident_id} on Securonix.")
return_results(f"Incident {incident_id} is already in {close_state} state on Securonix.")
except Exception as exception:
demisto.error(traceback.format_exc()) # print the traceback
return_error(f"Failed to execute CloseSecuronixIncidents. Error: {exception!s}")
""" ENTRY POINT """
if __name__ in ("__main__", "__builtin__", "builtins"):
main()
README
Update the status of the Securonix incident using the configuration provided in integration configuration.
Script Data
| Name | Description |
|---|---|
| Script Type | python3 |
| Cortex XSOAR Version | 6.5.0 |
Dependencies
This script uses the following commands and scripts.
- securonix-xsoar-state-mapping-get
- securonix-add-comment-to-incident
Inputs
| Argument Name | Description |
|---|---|
| incident_id | Incident ID. |
| active_state_action | Securonix action name mapped with XSOAR’s active state. |
| active_state_status | Securonix status to map with XSOAR’s active state. |
| close_state_action | Securonix action name mapped with XSOAR’s closed state. |
| close_state_status | Securonix status to map with XSOAR’s close state. |
| only_active | Whether to only change the status of Securonix incident to XSOAR’s respective active state. |
Outputs
There are no outputs for this script.