Source code for winevtrc.resources

# -*- coding: utf-8 -*-
"""Windows Event Log resources."""

from acstore.containers import interface as containers_interface
from acstore.containers import manager as containers_manager


[docs] class EnvironmentVariable(object): """Environment variable. Attributes: name (str): name. value (str): value. """
[docs] def __init__(self, name, value): """Initializes an environment variable. Args: name (str): name. value (str): value. """ super(EnvironmentVariable, self).__init__() self.name = name self.value = value
[docs] class EventLogProvider(containers_interface.AttributeContainer): """Windows Event Log provider. Attributes: additional_identifier (str): additional identifier of the provider, contains a GUID. category_message_files (set[str]): paths of the category message files. event_message_files (set[str]): paths of the event message files. identifier (str): identifier of the provider, contains a GUID. log_sources (list[str]): names of the corresponding Event Log sources. log_types (list[str]): Windows Event Log types. name (str): name of the provider. parameter_message_files (set[str]): paths of the parameter message files. windows_version (str): Windows version. """ CONTAINER_TYPE = 'windows_eventlog_provider' SCHEMA = { 'additional_identifier': 'str', 'category_message_files': 'List[str]', 'event_message_files': 'List[str]', 'identifier': 'str', 'log_sources': 'List[str]', 'log_types': 'List[str]', 'name': 'str', 'parameter_message_files': 'List[str]', 'windows_version': 'str'}
[docs] def __init__(self): """Initializes the Windows Event Log provider.""" super(EventLogProvider, self).__init__() self.additional_identifier = None self.category_message_files = set() self.event_message_files = set() self.identifier = None self.log_sources = [] self.log_types = [] self.name = None self.parameter_message_files = set() self.windows_version = None
@property def log_source(self): """str: name of the Windows Event Log source.""" try: return self.log_sources[0] except IndexError: return None
[docs] def SetCategoryMessageFilenames(self, category_message_filenames): """Sets the category message filenames. Args: category_message_filenames (str|list[str]): category message filenames, where multiple filenames in the same string are separated by ';'. """ if isinstance(category_message_filenames, str): category_message_filenames = category_message_filenames.split(';') self.category_message_files = set(category_message_filenames)
[docs] def SetEventMessageFilenames(self, event_message_filenames): """Sets the event message filenames. Args: event_message_filenames (str|list[str]): event message filenames, where multiple filenames in the same string are separated by ';'. """ if isinstance(event_message_filenames, str): event_message_filenames = event_message_filenames.split(';') self.event_message_files = set(event_message_filenames)
[docs] def SetParameterMessageFilenames(self, parameter_message_filenames): """Sets the parameter message filenames. Args: parameter_message_filenames (str|list[str]): parameter message filenames, where multiple filenames in the same string are separated by ';'. """ if isinstance(parameter_message_filenames, str): parameter_message_filenames = parameter_message_filenames.split(';') self.parameter_message_files = set(parameter_message_filenames)
[docs] class MessageFileDatabaseDescriptor(containers_interface.AttributeContainer): """Windows Event Log message file database descriptor. Attributes: database_filename (str): database filename. message_filename (str): message filename. """ CONTAINER_TYPE = 'message_file_database' SCHEMA = { 'database_filename': 'str', 'message_filename': 'str'}
[docs] def __init__(self, database_filename=None, message_filename=None): """Initializes a Windows Event Log message file database descriptor. Args: database_filename (Optional[str]): database filename. message_filename (Optional[str]): message filename. """ super(MessageFileDatabaseDescriptor, self).__init__() self.database_filename = database_filename self.message_filename = message_filename
[docs] class MessageFileDescriptor(containers_interface.AttributeContainer): """Windows Event Log message file descriptor. Attributes: file_version (str): file version. message_filename (str): message filename. product_version (str): product version. windows_version (str): Windows version. """ CONTAINER_TYPE = 'message_file' SCHEMA = { 'file_version': 'str', 'message_filename': 'str', 'product_version': 'str', 'windows_version': 'str'}
[docs] def __init__( self, file_version=None, message_filename=None, product_version=None, windows_version=None): """Initializes a Windows Event Log message file descriptor. Args: file_version (Optional[str]): file version. message_filename (Optional[str]): message filename. product_version (Optional[str]): product version. windows_version (Optional[str]): Windows version. """ super(MessageFileDescriptor, self).__init__() self.file_version = file_version self.message_filename = message_filename self.product_version = product_version self.windows_version = windows_version
[docs] class MessageTable(object): """Class that contains the messages per language. Attributes: file_versions (list[str]): Windows Event Log resource file versions. language_identifier (int): language identifier (LCID). message_strings (dict[int, str]): Windows Event Log resource message strings per identifier. """
[docs] def __init__(self, language_identifier): """Initializes the message table. Args: lcid (int): language identifier (LCID). """ super(MessageTable, self).__init__() self.file_versions = [] self.language_identifier = language_identifier self.message_strings = {}
@property def lcid(self): """int: language identifier (LCID).""" return self.language_identifier
[docs] class MessageStringDescriptor(containers_interface.AttributeContainer): """Windows Event Log message string descriptor. Attributes: identifier (int): message identifier. text (str): message text. """ CONTAINER_TYPE = 'message_string' SCHEMA = { '_message_table_identifier': 'AttributeContainerIdentifier', 'identifier': 'int', 'text': 'str'} _SERIALIZABLE_PROTECTED_ATTRIBUTES = [ '_message_table_identifier']
[docs] def __init__(self, identifier=None, text=None): """Initializes a Windows Event Log message string descriptor. Args: identifier (Optional[int]): message identifier. text (Optional[int]): message text. """ super(MessageStringDescriptor, self).__init__() self._message_table_identifier = None self.identifier = identifier self.text = text
[docs] def GetMessageTableIdentifier(self): """Retrieves the identifier of the associated message table. Returns: AttributeContainerIdentifier: message table identifier or None when not set. """ return self._message_table_identifier
[docs] def SetMessageTableIdentifier(self, message_table_identifier): """Sets the identifier of the associated message table. Args: message_table_identifier (AttributeContainerIdentifier): message table identifier. """ self._message_table_identifier = message_table_identifier
[docs] class MessageTableDescriptor(containers_interface.AttributeContainer): """Windows Event Log message table descriptor. Attributes: language_identifier (int): language identifier (LCID). """ CONTAINER_TYPE = 'message_table' SCHEMA = { '_message_file_identifier': 'AttributeContainerIdentifier', 'language_identifier': 'int'} _SERIALIZABLE_PROTECTED_ATTRIBUTES = [ '_message_file_identifier']
[docs] def __init__(self, language_identifier=None): """Initializes a Windows Event Log message table descriptor. Args: language_identifier (Optional[int]): language identifier (LCID). """ super(MessageTableDescriptor, self).__init__() self._message_file_identifier = None self.language_identifier = language_identifier
[docs] def GetMessageFileIdentifier(self): """Retrieves the identifier of the associated message file. Returns: AttributeContainerIdentifier: message file identifier or None when not set. """ return self._message_file_identifier
[docs] def SetMessageFileIdentifier(self, message_file_identifier): """Sets the identifier of the associated message file. Args: message_file_identifier (AttributeContainerIdentifier): message file identifier. """ self._message_file_identifier = message_file_identifier
containers_manager.AttributeContainersManager.RegisterAttributeContainers([ EventLogProvider, MessageFileDatabaseDescriptor, MessageFileDescriptor, MessageStringDescriptor, MessageTableDescriptor])