]> git.openstreetmap.org Git - chef.git/blob - cookbooks/tile/templates/default/expire-tiles.erb
Use ruby cookbook to install ruby for prometheus
[chef.git] / cookbooks / tile / templates / default / expire-tiles.erb
1 #!/usr/bin/ruby
2
3 # DO NOT EDIT - This file is being maintained by Chef
4
5 require "fileutils"
6
7 tileDirs = [
8 <% node[:tile][:styles].each_key do |name| -%>
9   "/srv/tile.openstreetmap.org/tiles/<%= name %>",
10 <% end -%>
11 ]
12
13 tilesExpired = 0
14 tilesIgnored = 0
15
16 expiredTime = Time.new(2000, 1, 1)
17
18 Dir.glob("/var/lib/replicate/expire-queue/changes-*.txt").sort.each do |f|
19   File.open(f, "r") do |file|
20     file.each do |line|
21       z, x, y = line.split("/")
22
23       z = z.to_i + 3
24       x = x.to_i * 8
25       y = y.to_i * 8
26
27       hash = []
28
29       1.upto(5) do
30         hash.push(((x & 0xf) << 4) | (y & 0xf))
31
32         x = x >> 4
33         y = y >> 4
34       end
35
36       tileName = "#{z}/#{hash[4]}/#{hash[3]}/#{hash[2]}/#{hash[1]}/#{hash[0]}.meta"
37
38       tileDirs.each do |tileDir|
39         if File.exist?("#{tileDir}/#{tileName}")
40           FileUtils.touch("#{tileDir}/#{tileName}", :mtime => expiredTime)
41
42           tilesExpired = tilesExpired + 1
43         else
44           tilesIgnored = tilesIgnored + 1
45         end
46       end
47     end
48   end
49
50   File::unlink(f)
51 end
52
53 puts "Meta tiles expired: #{tilesExpired}"
54 puts "Meta tiles not present: #{tilesIgnored}"