You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
2.6 KiB
66 lines
2.6 KiB
# Copyright (C) 2005-2025 Splunk Inc. All Rights Reserved.
|
|
|
|
import os
|
|
import glob
|
|
from ITOA.setup_logging import getLogger
|
|
from itsi.itsi_utils import ITOAInterfaceUtils
|
|
from ITOA.version_check import VersionCheck
|
|
from splunk.clilib.bundle_paths import make_splunkhome_path
|
|
|
|
|
|
class RenameRELogFiles:
|
|
"""
|
|
Class for renaming rules engine old log files to new file name format i.e.
|
|
itsi_rules_engine-X.log to itsi_rules_engine.log.X
|
|
itsi_correlation_engine-X.log to itsi_correlation_engine.log.X
|
|
"""
|
|
|
|
def __init__(self, session_key, logger=None):
|
|
self.session_key = session_key
|
|
self.itsi_re_log_files_location = make_splunkhome_path(['var', 'log', 'splunk', 'itsi_*_engine-*.log'])
|
|
self.old_version = None
|
|
self.key = None
|
|
if logger:
|
|
self.logger = logger
|
|
else:
|
|
self.logger = getLogger()
|
|
|
|
def run(self):
|
|
"""
|
|
Rename rule engine log files to new log file format
|
|
i.e. itsi_rules_engine-X.log to itsi_rules_engine.log.X
|
|
itsi_correlation_engine-X.log to itsi_correlation_engine.log.X
|
|
"""
|
|
try:
|
|
self.old_version, self.key = ITOAInterfaceUtils.get_version_from_kv(self.session_key)
|
|
|
|
# Make sure old version is valid
|
|
if self.old_version:
|
|
VersionCheck.validate_version(self.old_version)
|
|
except Exception:
|
|
self.logger.exception('Failed to retrieve Splunk version')
|
|
return
|
|
|
|
# only run if the old_version is less than 4.4
|
|
if self.old_version and VersionCheck.compare(self.old_version, '4.4') < 0:
|
|
try:
|
|
for filename in glob.glob(self.itsi_re_log_files_location):
|
|
if not os.path.isfile(filename):
|
|
continue
|
|
|
|
# get file name and extension. Here file name would be 'itsi_rules_engine-X' and extension '.log'
|
|
base_file, ext = os.path.splitext(filename)
|
|
# split file name by '-'
|
|
data = base_file.split("-")
|
|
|
|
# create new file name in the format - 'itsi_rules_engine.log.X'
|
|
dst = data[0] + ext + "." + data[1]
|
|
self.logger.info("Renaming rules engine log file - " + filename + " to - " + dst)
|
|
|
|
# rename() function will rename the file
|
|
os.rename(filename, dst)
|
|
except Exception:
|
|
self.logger.exception('Failed to rename rule engine log file name(s)')
|
|
else:
|
|
self.logger.info('No renaming of rules engine log file(s) required')
|