TIPCommon.smp_time

El módulo TIPCommon.smp_time ofrece un conjunto integral de herramientas para controlar los datos temporales dentro de las integraciones. Simplifica tareas complejas, como el cambio de zona horaria, la persistencia de marcas de tiempo para los conectores y las funciones de supervisión críticas para detectar los tiempos de espera de ejecución que se acercan en las acciones y los conectores.

Conversión y manipulación de tiempo

Estas utilidades proporcionan métodos estandarizados para transformar datos de tiempo entre varios formatos, incluidas las marcas de tiempo de Unix, las cadenas RFC 3339 y los objetos datetime de Python.

Función Parámetros Descripción
change_timezone()
  • dtime: (datetime) Es el objeto de origen.
  • current_tz: (cadena) Nombre de la zona horaria actual.
  • new_tz: (cadena) Es el nombre de la zona horaria de destino.
Muestra: datetime.datetime

Desplaza un objeto datetime a una nueva zona horaria. Genera ValueError si alguna de las cadenas de zona horaria no es válida.

convert_string_to_timestamp()
  • datetime_string: (cadena) Es la cadena de origen.
Muestra: int

Analiza una cadena de fecha y hora y devuelve su marca de tiempo Unix equivalente.

datetime_to_rfc3339()
  • datetime_obj: (datetime) Es el objeto de origen.
Muestra: str

Convierte un objeto de fecha y hora en una cadena compatible con RFC 3339.

get_timestamps()
  • range_string: (cadena) Es el intervalo de tiempo con nombre.
  • start_time_string: (cadena) Límite inferior.
  • end_time_string: (cadena) Límite final.
  • error_message: (cadena) Texto de excepción personalizado.
  • time_in_milliseconds: (bool) El valor predeterminado es False.
Muestra: tuple[int, int]

Calcula las marcas de tiempo Unix de inicio y finalización en función de las descripciones del intervalo y las cadenas de límites.

get_timestamps_from_range()
  • range_string: (cadena) Es el nombre del rango de la plataforma.
  • include_timezone: (bool) Incluye información de la zona horaria si es True.
Muestra: tuple[datetime, datetime]

Calcula los objetos datetime de inicio y finalización derivados de cadenas de período específicas de la plataforma.

Estado y persistencia

Persistir el "Tiempo de la última ejecución" es fundamental para que los conectores eviten la duplicación de la transferencia. Estas funciones interactúan directamente con la plataforma para administrar los puntos de control de ejecución.

Función Parámetros Descripción
get_last_success_time()
  • siemplify: Instancia del SDK de (ChronicleSOAR).
  • offset_with_metric: (dict) Es el desplazamiento de resguardo.
  • time_format: (int) DATETIME (1) o UNIX (2).
  • print_value: (bool) Registra en la consola si es True.
  • microtime: (bool) Es un botón de activación de precisión.
Devuelve: time (DataModel)

Recupera la hora de la última ejecución correcta. Si no existe ninguno, calcula un resguardo basado en el desplazamiento.

save_timestamp()
  • siemplify: Instancia del SDK de (ChronicleSOAR).
  • alerts: (dict) Es un lote de alertas procesadas.
  • timestamp_key: (cadena) El valor predeterminado es 'timestamp'.
  • incrementation_value: (int) Es la cantidad de ms que se agrega al resultado.
  • log_timestamp: (bool) Registra en la consola si es True.
  • convert_timestamp_to_micro_time: (bool) Es un botón de activación.
  • convert_a_string_timestamp_to_unix: (bool) Es un botón de activación.
Muestra: bool

Busca la marca de tiempo más reciente en un lote de alertas y la guarda. Devuelve True si se actualizó el estado.

siemplify_fetch_timestamp()
  • siemplify: Instancia del SDK de (ChronicleSOAR).
  • datetime_format: (bool) Alternar para la devolución de objetos.
  • timezone: (bool) Fuerza la zona horaria UTC si es True.
Muestra: int | datetime

Recupera directamente el punto de control de ejecución actual de la base de datos de la plataforma.

siemplify_save_timestamp()
  • siemplify: Instancia del SDK de (ChronicleSOAR).
  • new_timestamp: (int) Valor que se guardará.
  • datetime_format: (bool) El valor predeterminado es False.
  • timezone: (bool) El valor predeterminado es False.
Muestra: None

Actualiza el punto de control de ejecución de la plataforma con un valor nuevo específico.

validate_timestamp()
  • last_run_timestamp: (datetime) Es el valor de la verificación.
  • offset_in_hours: (int) Es el período de observación máximo.
  • offset_is_in_days: Es un botón de activación de la lógica basada en días (booleano).
Muestra: datetime

Garantiza que una marca de tiempo se encuentre dentro del período permitido. Genera ValueError si está fuera de rango.

Supervisión de la ejecución

La supervisión de tiempo de espera es una función de seguridad fundamental. Estas funciones ayudan a las secuencias de comandos a identificar cuándo casi se les acaba el tiempo de procesamiento, lo que les permite detenerse correctamente y guardar su estado actual.

Función Parámetros Descripción
is_approaching_action_timeout()
  • action_execution_deadline_in_unix: (int) Fecha límite.
  • timeout_threshold_in_sec: (int) Búfer. El valor predeterminado es 10.
Muestra: bool

Verifica si una secuencia de comandos de acción se encuentra dentro de su período de búfer final antes de la finalización.

is_approaching_timeout()
  • connector_starting_time: (int) Hora de inicio.
  • python_process_timeout: (int) Duración máxima.
  • timeout_threshold: (float) 0.9 (TIMEOUT_THRESHOLD).
Muestra: bool

Detecta si un conector consumió su presupuesto de tiempo según el 90% del TIMEOUT_THRESHOLD.