From 1f82f68616435ec84285a5802082a69c85f7bf48 Mon Sep 17 00:00:00 2001
From: Xinyu Zhao <zhaoxinyu@huawei.com>
Date: Mon, 21 Apr 2014 23:13:49 +0000
Subject: [PATCH] Make sure only monitor the service logs per role.

If the monitored log dir does not exist, rsyslog will abort,
so make sure only monitor the logs that are existent.

Change-Id: Ic0f265a6a85d1e50d1e6e044d18ccd94f6dd5937
---
 chef/cookbooks/rsyslog/attributes/default.rb  | 27 +++++-----
 chef/cookbooks/rsyslog/recipes/client.rb      | 51 ++++++++++++++++++-
 .../templates/default/openstack.conf.erb      |  4 +-
 3 files changed, 64 insertions(+), 18 deletions(-)

diff --git a/chef/cookbooks/rsyslog/attributes/default.rb b/chef/cookbooks/rsyslog/attributes/default.rb
index 7eaff92..73376e8 100644
--- a/chef/cookbooks/rsyslog/attributes/default.rb
+++ b/chef/cookbooks/rsyslog/attributes/default.rb
@@ -22,17 +22,16 @@ default["rsyslog"]["server"]      = false
 default["rsyslog"]["protocol"]    = "tcp"
 default["rsyslog"]["port"]        = "514"
 default["rsyslog"]["server_role"] = "loghost"
-
-default["rsyslog"]["openstacklog"] = {:"keystone"=>"/var/log/keystone/keystone.log",
-                                      :"glance-api"=>"/var/log/glance/api.log",
-                                      :"glance-reg"=>"/var/log/glance/registry.log",
-                                      :"nova-api"=>"/var/log/nova/api.log",
-                                      :"nova-conductor"=>"/var/log/nova/conductor.log",
-                                      :"nova-compute"=>"/var/log/nova/compute.log",
-                                      :"nova-scheduler"=>"/var/log/nova/scheduler.log",
-                                      :"cinder-api"=>"/var/log/cinder/api.log",
-                                      :"cinder-scheduler"=>"/var/log/cinder/scheduler.log",
-                                      :"cinder-volume"=>"/var/log/cinder/volume.log",
-                                      :"quantum-server"=>"/var/log/quantum/server.log",
-                                      :"quantum-dhcp"=>"/var/log/quantum/dhcp-agent.log",
-                                      :"quantum-l3agent"=>"/var/log/quantum/l3-agent.log"}
+default["rsyslog"]["novalog"] = {:"nova-api"=>"/var/log/nova/api.log",                         
+                                 :"nova-conductor"=>"/var/log/nova/conductor.log",
+                                 :"nova-compute"=>"/var/log/nova/compute.log",
+                                 :"nova-scheduler"=>"/var/log/nova/scheduler.log"}
+default["rsyslog"]["glancelog"] = {:"glance-api"=>"/var/log/glance/api.log",
+                                   :"glance-reg"=>"/var/log/glance/registry.log"}
+default["rsyslog"]["cinderlog"] = {:"cinder-api"=>"/var/log/cinder/api.log",
+                                   :"cinder-scheduler"=>"/var/log/cinder/scheduler.log",
+                                   :"cinder-volume"=>"/var/log/cinder/volume.log"}
+default["rsyslog"]["quantumlog"] = {:"quantum-server"=>"/var/log/quantum/server.log",
+                                 :"quantum-dhcp"=>"/var/log/quantum/dhcp-agent.log",
+                                 :"quantum-l3agent"=>"/var/log/quantum/l3-agent.log"}
+default["rsyslog"]["keystonelog"] = {:"keystone"=>"/var/log/keystone/keystone.log"}
diff --git a/chef/cookbooks/rsyslog/recipes/client.rb b/chef/cookbooks/rsyslog/recipes/client.rb
index 85c4b86..49a6109 100644
--- a/chef/cookbooks/rsyslog/recipes/client.rb
+++ b/chef/cookbooks/rsyslog/recipes/client.rb
@@ -18,15 +18,62 @@
 #
 
 include_recipe "rsyslog"
-  template "/etc/rsyslog.d/openstack.conf" do
+roles="#{node[:roles]}"
+if roles.gsub("\n",",").strip =~ /os-compute/
+  template "/etc/rsyslog.d/nova.conf" do
     source "openstack.conf.erb"
     backup false
     owner "root"
     group "root"
     mode 0644
-    variables :loglist => node['rsyslog']['openstacklog']
+    variables :loglist => node['rsyslog']['novalog']
     notifies :restart, "service[rsyslog]"
   end
+end
+if roles.gsub("\n",",").strip =~ /os-identity/
+  template "/etc/rsyslog.d/keystone.conf" do
+    source "openstack.conf.erb"
+    backup false
+    owner "root"
+    group "root"
+    mode 0644
+    variables :loglist => node['rsyslog']['keystonelog']
+    notifies :restart, "service[rsyslog]"
+  end
+end
+if roles.gsub("\n",",").strip =~ /os-image/
+  template "/etc/rsyslog.d/glance.conf" do
+    source "openstack.conf.erb"
+    backup false
+    owner "root"
+    group "root"
+    mode 0644
+    variables :loglist => node['rsyslog']['glancelog']
+    notifies :restart, "service[rsyslog]"
+  end
+end
+if roles.gsub("\n",",").strip =~ /os-block-storage/
+  template "/etc/rsyslog.d/cinder.conf" do
+    source "openstack.conf.erb"
+    backup false
+    owner "root"
+    group "root"
+    mode 0644
+    variables :loglist => node['rsyslog']['cinderlog']
+    notifies :restart, "service[rsyslog]"
+  end
+end
+if roles.gsub("\n",",").strip =~ /os-network/
+  template "/etc/rsyslog.d/quantum.conf" do
+    source "openstack.conf.erb"
+    backup false
+    owner "root"
+    group "root"
+    mode 0644
+    variables :loglist => node['rsyslog']['quantumlog']
+    notifies :restart, "service[rsyslog]"
+  end
+end
 
   file "/etc/rsyslog.d/server.conf" do
     action :delete
diff --git a/chef/cookbooks/rsyslog/templates/default/openstack.conf.erb b/chef/cookbooks/rsyslog/templates/default/openstack.conf.erb
index 41a486b..83976f4 100644
--- a/chef/cookbooks/rsyslog/templates/default/openstack.conf.erb
+++ b/chef/cookbooks/rsyslog/templates/default/openstack.conf.erb
@@ -6,7 +6,7 @@ $Modload imfile
   $InputFileTag <%= service %>
   $InputFileSeverity notice
   $InputFileFacility local4
-  $InputFileStateFile <%= service %> 
+  $InputFileStateFile <%= service %>
   $InputRunFileMonitor
-  $InputFilePollInterval 1
+  $InputFilePollInterval 2
 <% end -%>