From 2f9d3ae737c17a933599b24e8621ba4682646b05 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Fri, 9 Aug 2013 00:15:05 +0100 Subject: [PATCH] Allow tiles to be split over multiple directories --- cookbooks/tile/attributes/default.rb | 1 - cookbooks/tile/recipes/default.rb | 32 ++++++++++++++++++---------- roles/orm.rb | 11 ++++++++-- roles/yevaud.rb | 11 ++++++++-- 4 files changed, 39 insertions(+), 16 deletions(-) diff --git a/cookbooks/tile/attributes/default.rb b/cookbooks/tile/attributes/default.rb index 79d55d10a..7ef34a958 100644 --- a/cookbooks/tile/attributes/default.rb +++ b/cookbooks/tile/attributes/default.rb @@ -1,3 +1,2 @@ default[:tile][:data] = {} default[:tile][:styles] = {} -default[:tile][:tile_directory] = "/srv/tile.openstreetmap.org/tiles" diff --git a/cookbooks/tile/recipes/default.rb b/cookbooks/tile/recipes/default.rb index bb8b347ed..f513088cd 100644 --- a/cookbooks/tile/recipes/default.rb +++ b/cookbooks/tile/recipes/default.rb @@ -66,16 +66,10 @@ service "renderd" do supports :status => false, :restart => true, :reload => false end -directory node[:tile][:tile_directory] do +directory "/srv/tile.openstreetmap.org/tiles" do owner "tile" - group "www-data" - mode 0775 -end - -if node[:tile][:tile_directory] != "/srv/tile.openstreetmap.org/tiles" - link "/srv/tile.openstreetmap.org/tiles" do - to node[:tile][:tile_directory] - end + group "tile" + mode 0755 end template "/etc/renderd.conf" do @@ -244,8 +238,24 @@ node[:tile][:styles].each do |name,details| directory tile_directory do owner "tile" - group "www-data" - mode 0775 + group "tile" + mode 0755 + end + + details[:tile_directories].each do |directory| + directory[:min_zoom].upto(directory[:max_zoom]) do |zoom| + directory "#{directory[:name]}/#{zoom}" do + owner "www-data" + group "www-data" + mode 0755 + end + + link "#{tile_directory}/#{zoom}" do + to "#{directory[:name]}/#{zoom}" + owner "tile" + group "tile" + end + end end file "#{tile_directory}/planet-import-complete" do diff --git a/roles/orm.rb b/roles/orm.rb index 69e002ff5..2a834b101 100644 --- a/roles/orm.rb +++ b/roles/orm.rb @@ -113,8 +113,15 @@ default_attributes( } }, :tile => { - :tile_directory => "/store/tiles", - :node_file => "/store/database/nodes" + :node_file => "/store/database/nodes", + :styles => { + :default => { + :tile_directories => [ + { :name => "/store/tiles/default-low", :min_zoom => 0, :max_zoom => 17 }, + { :name => "/store/tiles/default-high", :min_zoom => 18, :max_zoom => 19 } + ] + } + } } ) diff --git a/roles/yevaud.rb b/roles/yevaud.rb index 0489c69d2..450baa607 100644 --- a/roles/yevaud.rb +++ b/roles/yevaud.rb @@ -69,8 +69,15 @@ default_attributes( } }, :tile => { - :tile_directory => "/store/tiles", - :node_file => "/store/database/nodes" + :node_file => "/store/database/nodes", + :styles => { + :default => { + :tile_directories => [ + { :name => "/store/tiles/default-low", :min_zoom => 0, :max_zoom => 16 }, + { :name => "/store/tiles/default-high", :min_zoom => 17, :max_zoom => 19 } + ] + } + } } ) -- 2.43.2