From 5415e49eed84b2b6671221289fde8e989174a011 Mon Sep 17 00:00:00 2001 From: Matt Amos Date: Sun, 18 Jan 2015 00:20:21 +0000 Subject: [PATCH] Put history HEADER.cgi under Chef control. --- .../files/default/history_cgi/HEADER.cgi | 120 ++++++++++++++++++ cookbooks/planet/recipes/default.rb | 10 ++ 2 files changed, 130 insertions(+) create mode 100755 cookbooks/planet/files/default/history_cgi/HEADER.cgi diff --git a/cookbooks/planet/files/default/history_cgi/HEADER.cgi b/cookbooks/planet/files/default/history_cgi/HEADER.cgi new file mode 100755 index 000000000..e72840290 --- /dev/null +++ b/cookbooks/planet/files/default/history_cgi/HEADER.cgi @@ -0,0 +1,120 @@ +#!/usr/bin/env python + +from time import time +from os import stat, environ +from re import search + +def nice_size(file): + size = stat(file).st_size + KB = 1024. + MB = 1024. * KB + GB = 1024. * MB + TB = 1024. * GB + + if size < KB: + size, suffix = size, '' + elif size < MB: + size, suffix = size/KB, 'KB' + elif size < GB: + size, suffix = size/MB, 'MB' + elif size < TB: + size, suffix = size/GB, 'GB' + else: + size, suffix = size/TB, 'TB' + + if size < 10: + return '%.1f %s' % (round(size,1), suffix) + else: + return '%d %s' % (round(size), suffix) + +def nice_time(time): + if time < 15: + return 'moments' + if time < 90: + return '%d seconds' % time + if time < 60 * 60 * 1.5: + return '%d minutes' % (time / 60.) + if time < 24 * 60 * 60 * 1.5: + return '%d hours' % (time / 3600.) + if time < 7 * 24 * 60 * 60 * 1.5: + return '%d days' % (time / 86400.) + if time < 30 * 24 * 60 * 60 * 1.5: + return '%d weeks' % (time / 604800.) + + return '%d months' % (time / 2592000.) + +def file_info(file, name): + size = nice_size(file) + hash = search(r'\w{32}', open(file+'.md5', 'r').read()).group(0) + date = nice_time(time() - stat(file).st_mtime) + + return '%(name)s
%(size)s, created %(date)s ago.
md5: %(hash)s.' % locals() + +planet_link = file_info('history-latest.osm.bz2', 'Latest Full History Planet XML File') +planet_pbf_link = file_info('../../pbf/full-history/history-latest.osm.pbf', 'Latest Full History Planet PBF File') + +print """ + + + + Index of /planet/full-history + + + + +

Planet OSM

+ +

+The files found here are complete copies of the OpenStreetMap.org +database, including editing history. These are published under an +Open Data Commons Open Database License 1.0 licensed. For more +information, see the project wiki. +

+ + + + + + + + + + + + +
+

Complete OSM Data History

+
+

Using The Data

+
+

Extracts & Mirrors

+
+

%(planet_link)s

+

%(planet_pbf_link)s

+

+ The full history planet file contains the full editing history of the OpenStreetMap + database in both XML and custom PBF formats. +

+
+

+ You are granted permission to use OpenStreetMap data by + the OpenStreetMap License, which also describes + your obligations. +

+

+ You can process the file + or extracts with a variety of tools, although some tools for processing OSM data will + only work on 'current' planets and will not process a 'history' planet available here. +

+
+

+ The complete history planet is extremely large, so you may prefer to use one of + the available extracts + (individual countries or states) from third parties. +

+
+ +

+If you find data within OpenStreetMap that you believe is an infringement of someone else's copyright, then please make contact with the OpenStreetMap Data Working Group. +

+""" % locals() diff --git a/cookbooks/planet/recipes/default.rb b/cookbooks/planet/recipes/default.rb index c3324d0dc..cc2396357 100644 --- a/cookbooks/planet/recipes/default.rb +++ b/cookbooks/planet/recipes/default.rb @@ -51,6 +51,16 @@ remote_directory "/store/planet" do files_mode 0755 end +remote_directory node[:planet][:dump][:xml_history_directory] do + source "history_cgi" + owner "root" + group "root" + mode 0755 + files_owner "root" + files_group "root" + files_mode 0755 +end + [:xml_directory, :xml_history_directory, :pbf_directory, :pbf_history_directory].each do |dir| directory node[:planet][:dump][dir] do -- 2.43.2