From 468dde2d236ea2cbcfcecef05cb17d2261f117ea Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Fri, 21 Jun 2013 22:57:26 +0100 Subject: [PATCH] Fix tile expiry to use the correct paths --- cookbooks/tile/files/default/ruby/expire.rb | 13 ++++++++----- cookbooks/tile/templates/default/expire-tiles.erb | 8 +++++++- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/cookbooks/tile/files/default/ruby/expire.rb b/cookbooks/tile/files/default/ruby/expire.rb index 1c2993b71..ec0a59860 100755 --- a/cookbooks/tile/files/default/ruby/expire.rb +++ b/cookbooks/tile/files/default/ruby/expire.rb @@ -52,7 +52,7 @@ module Expire end # this must match the definition of xyz_to_meta in mod_tile - def Expire.xyz_to_meta(root, x, y, z) + def Expire.xyz_to_meta(x, y, z) # mask off the final few bits x &= ~(METATILE - 1) y &= ~(METATILE - 1) @@ -60,7 +60,7 @@ module Expire hash_path = (0..4).collect { |i| (((x >> 4*i) & 0xf) << 4) | ((y >> 4*i) & 0xf) }.reverse.join('/') - root + '/' + z.to_s + '/' + hash_path + ".meta" + z.to_s + '/' + hash_path + ".meta" end # time to reset to, some very stupidly early time, before OSM started @@ -72,7 +72,7 @@ module Expire File.utime(EXPIRY_TIME, EXPIRY_TIME, meta) end - def Expire.expire(change_file) + def Expire.expire(change_file, tile_dirs) do_expire(change_file) do |set| new_set = Set.new meta_set = Set.new @@ -82,8 +82,11 @@ module Expire set.each do |xy| # this has to match the routine in mod_tile meta = xyz_to_meta(HASH_ROOT, xy[0], xy[1], xy[2]) - - meta_set.add(meta) if File.exist? meta + + # check each style working out what needs expiring + tile_dirs.each do |tile_dir| + meta_set.add(tile_dir + "/" + meta) if File.exist?(tile_dir + "/" + meta) + end # add the parent into the set for the next round new_set.add([xy[0] / 2, xy[1] / 2, xy[2] - 1]) diff --git a/cookbooks/tile/templates/default/expire-tiles.erb b/cookbooks/tile/templates/default/expire-tiles.erb index e9473a1a7..beea05dd9 100644 --- a/cookbooks/tile/templates/default/expire-tiles.erb +++ b/cookbooks/tile/templates/default/expire-tiles.erb @@ -4,6 +4,12 @@ require 'expire' +tile_dirs = [ +<% node[:tile][:styles].each do |name,details| -%> + "/srv/tile.openstreetmap.org/tiles/<%= name %>", +<% end -%> +]; + ARGV.each do |f| - Expire::expire(f) + Expire::expire(f, tile_dirs) end -- 2.43.2