X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/468dde2d236ea2cbcfcecef05cb17d2261f117ea..e92ed5e09215d67f2bd7dc21a32425d7ec5aa26f:/cookbooks/tile/templates/default/expire-tiles.erb diff --git a/cookbooks/tile/templates/default/expire-tiles.erb b/cookbooks/tile/templates/default/expire-tiles.erb index beea05dd9..b3a790f6a 100644 --- a/cookbooks/tile/templates/default/expire-tiles.erb +++ b/cookbooks/tile/templates/default/expire-tiles.erb @@ -2,14 +2,53 @@ # DO NOT EDIT - This file is being maintained by Chef -require 'expire' +require "fileutils" -tile_dirs = [ -<% node[:tile][:styles].each do |name,details| -%> +tileDirs = [ +<% node[:tile][:styles].each_key do |name| -%> "/srv/tile.openstreetmap.org/tiles/<%= name %>", <% end -%> -]; +] -ARGV.each do |f| - Expire::expire(f, tile_dirs) +tilesExpired = 0 +tilesIgnored = 0 + +expiredTime = Time.new(2000, 1, 1) + +Dir.glob("/var/lib/replicate/expire-queue/changes-*.txt").sort.each do |f| + File.open(f, "r") do |file| + file.each do |line| + z, x, y = line.split("/") + + z = z.to_i + 3 + x = x.to_i * 8 + y = y.to_i * 8 + + hash = [] + + 1.upto(5) do + hash.push(((x & 0xf) << 4) | (y & 0xf)) + + x = x >> 4 + y = y >> 4 + end + + tileName = "#{z}/#{hash[4]}/#{hash[3]}/#{hash[2]}/#{hash[1]}/#{hash[0]}.meta" + + tileDirs.each do |tileDir| + if File.exist?("#{tileDir}/#{tileName}") + FileUtils.touch("#{tileDir}/#{tileName}", :mtime => expiredTime) + + tilesExpired = tilesExpired + 1 + else + tilesIgnored = tilesIgnored + 1 + end + end + end + end + + File::unlink(f) end + +puts "Meta tiles expired: #{tilesExpired}" +puts "Meta tiles not present: #{tilesIgnored}"