Jcrespo has submitted this change and it was merged. Change subject: role::maps::master: Import waterlines on init and then weekly ......................................................................
role::maps::master: Import waterlines on init and then weekly Change-Id: Id2f35738fa2f4b1d6451134e06cf199bce5b69d6 --- M manifests/role/maps.pp A modules/osm/manifests/import_waterlines.pp M modules/osm/manifests/init.pp A modules/osm/templates/import_waterlines.erb 4 files changed, 63 insertions(+), 0 deletions(-) Approvals: Jcrespo: Verified; Looks good to me, approved diff --git a/manifests/role/maps.pp b/manifests/role/maps.pp index 139b3c2..b0c0cf4 100644 --- a/manifests/role/maps.pp +++ b/manifests/role/maps.pp @@ -5,6 +5,7 @@ include ::postgresql::master include ::postgresql::postgis include ::osm + include ::osm::import_waterlines include ::cassandra include ::role::kartotherian if $::realm == 'production' { diff --git a/modules/osm/manifests/import_waterlines.pp b/modules/osm/manifests/import_waterlines.pp new file mode 100644 index 0000000..1302f96 --- /dev/null +++ b/modules/osm/manifests/import_waterlines.pp @@ -0,0 +1,38 @@ +# Definition: osm::import_waterlines +# +# Sets up waterlines +# Parameters: +# * database - postgres database name +# * proxy - web proxy used for downloading shapefiles +class osm::import_waterlines ( + $database = 'gis', + $proxy = 'webproxy.eqiad.wmnet:8080' +) { + file { '/usr/local/bin/import_waterlines': + ensure => present, + owner => 'root', + group => 'root', + mode => 0555, + content => template( 'osm/import_waterlines.erb' ), + } + + # Check if database exists + $shapeline_exists = "/usr/bin/psql -d ${database} --tuples-only -c \'SELECT table_name FROM information_schema.tables;\' | /bin/grep \'water_polygons\'" + + exec { 'import_waterlines': + command => '/usr/local/bin/import_waterlines', + user => 'postgres', + unless => $shapeline_exists, + refreshonly => true, + } + + cron { 'import_waterlines': + ensure => present, + hour => 17, + minute => 0, + weekday => 'Tue', + user => 'postgres', + command => '/usr/local/bin/import_waterlines', + require => [File['/usr/local/bin/import_waterlines'], Class['osm']], + } +} diff --git a/modules/osm/manifests/init.pp b/modules/osm/manifests/init.pp index 8512ed1..f4c45c7 100644 --- a/modules/osm/manifests/init.pp +++ b/modules/osm/manifests/init.pp @@ -7,4 +7,11 @@ ]: ensure => $ensure, } + + file { '/srv/downloads': + ensure => 'directory', + owner => 'postgres', + group => 'postgres', + mode => 0755, + } } diff --git a/modules/osm/templates/import_waterlines.erb b/modules/osm/templates/import_waterlines.erb new file mode 100644 index 0000000..c19a4db --- /dev/null +++ b/modules/osm/templates/import_waterlines.erb @@ -0,0 +1,17 @@ +#!/bin/bash + +set -e +cd /srv/downloads +curl -O -x <%= @proxy %> http://data.openstreetmapdata.com/water-polygons-split-3857.zip +unzip water-polygons-split-3857.zip +rm water-polygons-split-3857.zip +shp2pgsql -d -s 3857:900913 -g way water-polygons-split-3857/water_polygons.shp water_polygons_tmp | psql <%= @database %> +rm -rf water-polygons-split-3857 + +echo " + ALTER TABLE water_polygons_tmp OWNER TO osmimporter; + + BEGIN; + DROP TABLE IF EXISTS water_polygons; + ALTER TABLE water_polygons_tmp RENAME TO water_polygons; + COMMIT;" | psql <%= @database %> -- To view, visit https://gerrit.wikimedia.org/r/225702 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Id2f35738fa2f4b1d6451134e06cf199bce5b69d6 Gerrit-PatchSet: 5 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: MaxSem <maxsem.w...@gmail.com> Gerrit-Reviewer: Alexandros Kosiaris <akosia...@wikimedia.org> Gerrit-Reviewer: Jcrespo <jcre...@wikimedia.org> Gerrit-Reviewer: MaxSem <maxsem.w...@gmail.com> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits