Added tile log script to planet cookbook.
authorMatt Amos <zerebubuth@gmail.com>
Mon, 15 Dec 2014 18:26:09 +0000 (18:26 +0000)
committerMatt Amos <zerebubuth@gmail.com>
Wed, 31 Dec 2014 14:10:06 +0000 (14:10 +0000)
cookbooks/planet/attributes/default.rb
cookbooks/planet/recipes/tilelog.rb [new file with mode: 0644]
cookbooks/planet/templates/default/tilelog.cron.erb [new file with mode: 0644]
cookbooks/planet/templates/default/tilelog.erb [new file with mode: 0644]

index 649d9b3..b6630d3 100644 (file)
@@ -2,3 +2,8 @@ default[:planet][:dump][:xml_directory] = "/store/planet/planet"
 default[:planet][:dump][:xml_history_directory] = "/store/planet/planet/full-history"
 default[:planet][:dump][:pbf_directory] = "/store/planet/pbf"
 default[:planet][:dump][:pbf_history_directory] = "/store/planet/pbf/full-history"
+
+default[:planet][:tilelog_source_directory] = "/home/www-data/tilelog"
+default[:planet][:tilelog_input_directory] = "/store/logs/tile.openstreetmap.org"
+default[:planet][:tilelog_output_directory] = "/store/planet/tile_logs"
+
diff --git a/cookbooks/planet/recipes/tilelog.rb b/cookbooks/planet/recipes/tilelog.rb
new file mode 100644 (file)
index 0000000..f5480f5
--- /dev/null
@@ -0,0 +1,86 @@
+#
+# Cookbook Name:: planet
+# Recipe:: tilelog
+#
+# Copyright 2014, OpenStreetMap Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+include_recipe "tools"
+
+package "gcc"
+package "make"
+package "autoconf"
+package "automake"
+package "libboost-filesystem-dev"
+package "libboost-system-dev"
+package "libboost-program-options-dev"
+
+tilelog_source_directory = node[:planet][:tilelog_source_directory]
+tilelog_input_directory = node[:planet][:tilelog_input_directory]
+tilelog_output_directory = node[:planet][:tilelog_output_directory]
+
+execute "tilelog-build" do
+  action :nothing
+  command "make"
+  cwd tilelog_source_directory
+  user "www-data"
+  group "www-data"
+end
+
+execute "tilelog-configure" do
+  action :nothing
+  command "./configure --with-boost-libdir=/usr/lib"
+  cwd tilelog_source_directory
+  user "www-data"
+  group "www-data"
+  notifies :run, "execute[tilelog-build]", :immediate
+end
+
+execute "tilelog-autogen" do
+  action :nothing
+  command "./autogen.sh"
+  cwd tilelog_source_directory
+  user "www-data"
+  group "www-data"
+  notifies :run, "execute[tilelog-configure]", :immediate
+end
+
+git tilelog_source_directory do
+  action :sync
+  repository "https://github.com/zerebubuth/openstreetmap-tile-analyze.git"
+  revision "HEAD"
+  user "www-data"
+  group "www-data"
+  notifies :run, "execute[tilelog-autogen]", :immediate
+end
+
+template "/usr/local/bin/tilelog" do
+  source "tilelog.erb"
+  owner "root"
+  group "root"
+  mode 0755
+  variables {
+    :analyze_bin => "#{tilelog_source_directory}/openstreetmap-tile-analyze",
+    :input_dir => tilelog_input_directory,
+    :output_dir => tilelog_output_directory
+  }
+end
+
+template "/etc/cron.d/tilelog" do
+  source "tileog.cron.erb"
+  owner "root"
+  group "root"
+  mode 0644
+end
diff --git a/cookbooks/planet/templates/default/tilelog.cron.erb b/cookbooks/planet/templates/default/tilelog.cron.erb
new file mode 100644 (file)
index 0000000..7736019
--- /dev/null
@@ -0,0 +1,2 @@
+MAILTO=zerebubuth@gmail.com
+17 7 * * * /usr/local/bin/tilelog
diff --git a/cookbooks/planet/templates/default/tilelog.erb b/cookbooks/planet/templates/default/tilelog.erb
new file mode 100644 (file)
index 0000000..21ae4d5
--- /dev/null
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+ANALYZE=<%= @analyze_bin %>
+LOGDIR=<%= @input_dir %>
+OUTDIR=<%= @output_dir %>
+if [ -z "$DATE" ]; then
+               DATE=`date -d "2 days ago" "+%Y-%m-%d"`
+fi
+TMPDIR=`mktemp -d -t tmp.XXXXXXXXX`
+ORIGDIR=`pwd`
+
+clean_up() {
+               cd $ORIGDIR
+               rm -rf $TMPDIR
+}
+
+trap clean_up 0 HUP INT TERM
+cd $TMPDIR
+
+mkdir db
+nice -n 19 $ANALYZE $LOGDIR/*-${DATE}.xz > analyze.log
+if [ -f tiles.txt ]; then
+               nice -n 19 xz -z tiles.txt
+               mv tiles.txt.xz $OUTDIR/tiles-${DATE}.txt.xz
+
+else
+               cat analyze.log
+fi