"""Session related attribute container definitions."""
import time
import uuid
from acstore.containers import interface
from acstore.containers import manager
import plaso
[docs]
class Session(interface.AttributeContainer):
"""Session attribute container.
Attributes:
aborted (bool): True if the session was aborted.
artifact_filters (list[str]): Names of artifact definitions that are
used for filtering file system and Windows Registry key paths.
command_line_arguments (str): command line arguments.
completion_time (int): time that the session was completed. Contains the
number of micro seconds since January 1, 1970, 00:00:00 UTC.
debug_mode (bool): True if debug mode was enabled.
enabled_parser_names (list[str]): parser and parser plugin names that
were enabled.
filter_file (str): path to a file with find specifications.
identifier (str): unique identifier of the session.
parser_filter_expression (str): parser filter expression.
preferred_codepage (str): preferred codepage.
preferred_encoding (str): preferred encoding.
preferred_language (str): preferred language.
preferred_time_zone (str): preferred time zone.
preferred_year (int): preferred year.
product_name (str): name of the product that created the session for
example "log2timeline".
product_version (str): version of the product that created the session.
start_time (int): time that the session was started. Contains the number
of micro seconds since January 1, 1970, 00:00:00 UTC.
"""
CONTAINER_TYPE = "session"
SCHEMA = {
"file_entropy": "str",
"aborted": "bool",
"artifact_filters": "List[str]",
"command_line_arguments": "str",
"completion_time": "int",
"debug_mode": "bool",
"enabled_parser_names": "List[str]",
"filter_file": "str",
"identifier": "str",
"parser_filter_expression": "str",
"preferred_codepage": "str",
"preferred_encoding": "str",
"preferred_language": "str",
"preferred_time_zone": "str",
"preferred_year": "int",
"product_name": "str",
"product_version": "str",
"start_time": "int",
}
[docs]
def __init__(self):
"""Initializes a session attribute container."""
super().__init__()
self.aborted = False
self.artifact_filters = None
self.command_line_arguments = None
self.completion_time = None
self.debug_mode = False
self.enabled_parser_names = None
self.filter_file = None
self.identifier = f"{uuid.uuid4().hex:s}"
self.parser_filter_expression = None
self.preferred_codepage = None
self.preferred_encoding = "utf-8"
self.preferred_language = None
self.preferred_time_zone = "UTC"
self.preferred_year = None
self.product_name = "plaso"
self.product_version = plaso.__version__
self.start_time = int(time.time() * 1000000)
manager.AttributeContainersManager.RegisterAttributeContainer(Session)