Add state to manage AuditTrail Logger
PROD-31662
Change-Id: Id1abc4020d984699d28580179463ac31e1c27f64
diff --git a/_states/jenkins_audittrail.py b/_states/jenkins_audittrail.py
new file mode 100644
index 0000000..ced671e
--- /dev/null
+++ b/_states/jenkins_audittrail.py
@@ -0,0 +1,84 @@
+import logging
+
+logger = logging.getLogger(__name__)
+
+def __virtual__():
+ '''
+ Only load if jenkins_common module exist.
+ '''
+ if 'jenkins_common.call_groovy_script' not in __salt__:
+ return (
+ False,
+ 'The jenkins_audittrail state module cannot be loaded: '
+ 'jenkins_common not found')
+ return True
+
+def config (name, type="console", log="", limit=0, count=0, output="STD_OUT",
+ date_format="yyyy-MM-dd HH:mm:ss:SSS", log_prefix="", syslog_server_hostname="",
+ syslog_server_port=514, syslog_facility="SYSLOG",
+ app_name="jenkins", message_hostname="", message_format="RFC_3164"):
+ """
+ Jenkins AuditTrail logging config state method
+
+ :param type: logger type. one of: console (default), file, syslog
+ Console Logger params:
+ :param output: STD_OUT or STD_ERR
+ :param date_format
+ :param log_prefix
+ File Logger params:
+ :param log: path to log file
+ :param limit: log file size
+ :param count: log file count to keep
+ Syslog Logger params:
+ :param syslog_server_hostname
+ :param syslog_server_port
+ :param syslog_facility
+ :param app_name
+ :param message_hostname
+ :param message_format: RFC_3164 or RFC_5424
+
+ :returns: salt-specified state dict
+ """
+
+ template = __salt__['jenkins_common.load_template'](
+ 'salt://jenkins/files/groovy/audittrail_config.template',
+ __env__)
+ return __salt__['jenkins_common.api_call'](name, template,
+ ["CREATED", "EXISTS"],
+ {
+ 'logger_type': type,
+ 'output': output,
+ 'date_format': date_format,
+ 'log_prefix': log_prefix if log_prefix else "",
+ 'log': log if log else "",
+ 'limit': limit,
+ 'count': count,
+ 'syslog_server_hostname': syslog_server_hostname if syslog_server_hostname else "",
+ 'syslog_server_port': syslog_server_port,
+ 'syslog_facility': syslog_facility,
+ 'app_name': app_name,
+ 'message_hostname': message_hostname if message_hostname else "",
+ 'message_format': message_format if message_format else "",
+ },
+ 'AuditTrail logger configuration')
+
+def params (name, pattern="", log_build_cause=True):
+ """
+ Jenkins AuditTrail logging params state method
+
+ :param pattern
+ :param log_build_cause
+
+ :returns: salt-specified state dict
+ """
+
+ template = __salt__['jenkins_common.load_template'](
+ 'salt://jenkins/files/groovy/audittrail_params.template',
+ __env__)
+ return __salt__['jenkins_common.api_call'](name, template,
+ ["CHANGED", "EXISTS"],
+ {
+ 'pattern': pattern if pattern else "",
+ 'log_build_cause': str(log_build_cause).lower(),
+ },
+ 'AuditTrail logger params')