Add support of OSSysLogHandler logging handler

Change-Id: I98a46078631b97c840f7c1d140921e0994ebd082
diff --git a/README.rst b/README.rst
index 6c8590b..1a535a7 100644
--- a/README.rst
+++ b/README.rst
@@ -688,8 +688,9 @@
 That is possible to enable per-binary logging.conf with new variables:
   * openstack_log_appender - set it to true to enable log_config_append for all OpenStack services;
   * openstack_fluentd_handler_enabled - set to true to enable FluentHandler for all Openstack services.
+  * openstack_ossyslog_handler_enabled - set to true to enable OSSysLogHandler for all Openstack services.
 
-Only WatchedFileHandler and FluentHandler are available.
+Only WatchedFileHandler, OSSysLogHandler and FluentHandler are available.
 
 Also it is possible to configure this with pillar:
 
@@ -704,6 +705,8 @@
             enabled: true
           fluentd:
             enabled: true
+          ossyslog:
+            enabled: true
 
     volume:
       logging:
@@ -713,6 +716,8 @@
             enabled: true
           fluentd:
             enabled: true
+          ossyslog:
+            enabled: true
 
 Documentation and Bugs
 ============================
diff --git a/cinder/files/logging.conf b/cinder/files/logging.conf
index 01d5ad1..779ae4d 100644
--- a/cinder/files/logging.conf
+++ b/cinder/files/logging.conf
@@ -11,7 +11,7 @@
 keys = {{ log_handlers | join(", ") }}
 
 [formatters]
-keys = context, default, fluentd
+keys = context, default{% if values.logging.log_handlers.get('fluentd', {}).get('enabled', False) %}, fluentd{% endif %}
 
 [logger_root]
 level = WARNING
@@ -65,6 +65,14 @@
 formatter = context
 {%- endif %}
 
+{% if values.logging.log_handlers.get('ossyslog', {}).get('enabled', False) -%}
+{%- set ossyslog_args = values.logging.log_handlers.ossyslog.get('args', {}) -%}
+[handler_ossyslog]
+class = oslo_log.handlers.OSSysLogHandler
+args = ( handlers.SysLogHandler.{{ ossyslog_args.get('facility', 'LOG_USER') }}, )
+formatter = context
+{%- endif %}
+
 [formatter_context]
 class = oslo_log.formatters.ContextFormatter
 
diff --git a/metadata/service/control/cluster.yml b/metadata/service/control/cluster.yml
index 3bc81cf..f4dc5d0 100644
--- a/metadata/service/control/cluster.yml
+++ b/metadata/service/control/cluster.yml
@@ -7,6 +7,7 @@
     keystone_cinder_endpoint_type: internalURL
     openstack_log_appender: false
     openstack_fluentd_handler_enabled: false
+    openstack_ossyslog_handler_enabled: false
   cinder:
     controller:
       enabled: true
@@ -39,6 +40,8 @@
             enabled: true
           fluentd:
             enabled: ${_param:openstack_fluentd_handler_enabled}
+          ossyslog:
+            enabled: ${_param:openstack_ossyslog_handler_enabled}
       message_queue:
         engine: rabbitmq
         host: ${_param:cluster_vip_address}
diff --git a/metadata/service/control/cluster_control.yml b/metadata/service/control/cluster_control.yml
index 3bc81cf..f4dc5d0 100644
--- a/metadata/service/control/cluster_control.yml
+++ b/metadata/service/control/cluster_control.yml
@@ -7,6 +7,7 @@
     keystone_cinder_endpoint_type: internalURL
     openstack_log_appender: false
     openstack_fluentd_handler_enabled: false
+    openstack_ossyslog_handler_enabled: false
   cinder:
     controller:
       enabled: true
@@ -39,6 +40,8 @@
             enabled: true
           fluentd:
             enabled: ${_param:openstack_fluentd_handler_enabled}
+          ossyslog:
+            enabled: ${_param:openstack_ossyslog_handler_enabled}
       message_queue:
         engine: rabbitmq
         host: ${_param:cluster_vip_address}
diff --git a/metadata/service/control/single.yml b/metadata/service/control/single.yml
index 3ebd30d..3c73957 100644
--- a/metadata/service/control/single.yml
+++ b/metadata/service/control/single.yml
@@ -7,6 +7,7 @@
     keystone_cinder_endpoint_type: internalURL
     openstack_log_appender: false
     openstack_fluentd_handler_enabled: false
+    openstack_ossyslog_handler_enabled: false
   cinder:
     controller:
       enabled: true
@@ -39,6 +40,8 @@
             enabled: true
           fluentd:
             enabled: ${_param:openstack_fluentd_handler_enabled}
+          ossyslog:
+            enabled: ${_param:openstack_ossyslog_handler_enabled}
       message_queue:
         engine: rabbitmq
         host: ${_param:single_address}
diff --git a/metadata/service/volume/local.yml b/metadata/service/volume/local.yml
index 074ed9d..96a0461 100644
--- a/metadata/service/volume/local.yml
+++ b/metadata/service/volume/local.yml
@@ -7,6 +7,7 @@
     keystone_cinder_endpoint_type: internalURL
     openstack_log_appender: false
     openstack_fluentd_handler_enabled: false
+    openstack_ossyslog_handler_enabled: false
   cinder:
     volume:
       enabled: true
@@ -39,6 +40,8 @@
             enabled: true
           fluentd:
             enabled: ${_param:openstack_fluentd_handler_enabled}
+          ossyslog:
+            enabled: ${_param:openstack_ossyslog_handler_enabled}
       message_queue:
         engine: rabbitmq
         host: ${_param:single_address}
diff --git a/metadata/service/volume/single.yml b/metadata/service/volume/single.yml
index 689f0a6..1b2b72f 100644
--- a/metadata/service/volume/single.yml
+++ b/metadata/service/volume/single.yml
@@ -7,6 +7,7 @@
     keystone_cinder_endpoint_type: internalURL
     openstack_log_appender: false
     openstack_fluentd_handler_enabled: false
+    openstack_ossyslog_handler_enabled: false
   cinder:
     volume:
       enabled: true
@@ -39,6 +40,8 @@
             enabled: true
           fluentd:
             enabled: ${_param:openstack_fluentd_handler_enabled}
+          ossyslog:
+            enabled: ${_param:openstack_ossyslog_handler_enabled}
       message_queue:
         engine: rabbitmq
         host: ${_param:cluster_vip_address}