db_passwords = data_bag_item("db", "passwords")
+package "postgresql-client"
+
package "ruby"
+package "ruby-dev"
package "ruby-libxml"
+package "libpq-dev"
gem_package "pg"
-template "/usr/local/bin/replicate-changesets" do
- source "changesets.bin.erb"
+remote_directory "/usr/local/bin" do
+ source "replication-bin"
+ owner "root"
+ group "root"
+ mode 0755
+ files_owner "root"
+ files_group "root"
+ files_mode 0755
+end
+
+remote_directory "/store/planet/replication" do
+ source "replication-cgi"
owner "root"
group "root"
mode 0755
+ files_owner "root"
+ files_group "root"
+ files_mode 0755
+end
+
+directory "/store/planet/replication/changesets" do
+ owner "planet"
+ group "planet"
+ mode 0755
+end
+
+directory "/store/planet/replication/day" do
+ owner "planet"
+ group "planet"
+ mode 0755
+end
+
+directory "/store/planet/replication/hour" do
+ owner "planet"
+ group "planet"
+ mode 0755
+end
+
+directory "/store/planet/replication/minute" do
+ owner "planet"
+ group "planet"
+ mode 0755
end
directory "/etc/replication" do
variables :password => db_passwords["planetdiff"]
end
+template "/etc/replication/users-agreed.conf" do
+ source "users-agreed.conf.erb"
+ user "planet"
+ group "planet"
+ mode 0600
+ variables :password => db_passwords["planetdiff"]
+end
+
directory "/var/lib/replication" do
owner "planet"
group "planet"
mode 0755
end
-template "/var/lib/replication/hour/configuration.txt" do
+template "/var/lib/replication/day/configuration.txt" do
source "replication.config.erb"
owner "planet"
group "planet"
to "/store/planet/replication/day"
end
-template "/etc/cron.d/replication" do
- source "replication.cron.erb"
- owner "root"
- group "root"
- mode 0644
+if node[:planet][:replication] == "enabled"
+ template "/etc/cron.d/replication" do
+ source "replication.cron.erb"
+ owner "root"
+ group "root"
+ mode 0644
+ end
+else
+ file "/etc/cron.d/replication" do
+ action :delete
+ end
+end
+
+directory "/var/lib/replication/streaming" do
+ owner "planet"
+ group "planet"
+ mode 0755
+end
+
+directory "/var/log/replication" do
+ owner "planet"
+ group "planet"
+ mode 0755
+end
+
+["streaming-replicator", "streaming-server"].each do |name|
+ template "/etc/init.d/#{name}" do
+ source "streaming.init.erb"
+ owner "root"
+ group "root"
+ mode 0755
+ variables :service => name
+ end
+
+ if node[:planet][:replication] == "enabled"
+ service name do
+ action [:enable, :start]
+ supports :restart => true, :status => true
+ subscribes :restart, "template[/etc/init.d/#{name}]"
+ end
+ else
+ service name do
+ action [:disable, :stop]
+ supports :restart => true, :status => true
+ end
+ end
end