Dzahn has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/358150 )
Change subject: wikistats: add cron jobs for XML dumps ...................................................................... wikistats: add cron jobs for XML dumps Bug:T165879 Change-Id: I76c4390342ca8347229e2e781292a3f2f9f54369 --- A modules/wikistats/manifests/cronjob/xmldump.pp M modules/wikistats/manifests/init.pp M modules/wikistats/manifests/updates.pp 3 files changed, 48 insertions(+), 4 deletions(-) Approvals: jenkins-bot: Verified Dzahn: Looks good to me, approved diff --git a/modules/wikistats/manifests/cronjob/xmldump.pp b/modules/wikistats/manifests/cronjob/xmldump.pp new file mode 100644 index 0000000..6877864 --- /dev/null +++ b/modules/wikistats/manifests/cronjob/xmldump.pp @@ -0,0 +1,32 @@ +# define a cronjob to dump xml tables +define wikistats::cronjob::xmldump( + $table, + $minute, + $db_pass, + $db_user = 'wikistatsuser', + $db_name = 'wikistats', + $file_path = '/var/www/wikistats/xml', +){ + + $query = $table ? { + 'wikipedias' => 'SELECT *,good/total AS ratio FROM wikipedias WHERE lang NOT LIKE \"%articles%\" ORDER BY good desc,total desc', + default => "SELECT *,good/total AS ratio FROM ${table} ORDER BY good desc,total desc", + } + + $command = "mysql -X -u ${db_user} -p${db_pass} -e '${query}' ${db_name} > ${file_path}/${table}.xml" + + file { $file_path: + ensure => directory, + owner => 'wikistatsuser', + group => 'wwww-data', + mode => '0644', + } + + cron { "cron-wikistats-xmldump-${name}": + ensure => present, + command => $command, + user => 'wikistatsuser', + minute => $minute, + } +} + diff --git a/modules/wikistats/manifests/init.pp b/modules/wikistats/manifests/init.pp index c3e30f1..715822d 100644 --- a/modules/wikistats/manifests/init.pp +++ b/modules/wikistats/manifests/init.pp @@ -71,12 +71,16 @@ wikistats_host => $wikistats_host, } - # data update scripts/crons for wikistats - class { 'wikistats::updates': } + $db_pass = fqdn_rand_string(23, 'Random9Fn0rd8Seed') # install a db on localhost class { 'wikistats::db': - db_pass => fqdn_rand_string(23, 'Random9Fn0rd8Seed'), + db_pass => $db_pass, + } + + # scripts and crons to update data and dump XML files + class { 'wikistats::updates': + db_pass => $db_pass, } } diff --git a/modules/wikistats/manifests/updates.pp b/modules/wikistats/manifests/updates.pp index 1d94d8d..4c51ed0 100644 --- a/modules/wikistats/manifests/updates.pp +++ b/modules/wikistats/manifests/updates.pp @@ -2,7 +2,9 @@ # and writing it to local mariadb #FIXME - this was used in labs in the past but is gone unfortunately #require misc::mariadb::server -class wikistats::updates { +class wikistats::updates ( + $db_pass, +) { # update scripts are PHP-cli if os_version('debian >= stretch') { @@ -55,6 +57,12 @@ 'w3@23', # W3C ]: } + # dump xml data: usage: <project prefix>@<hour> + wikistats::cronjob::xmldump { + 'wp' : db_pass => $db_pass, table => 'wikipedias', minute => '3'; + 'wt' : db_pass => $db_pass, table => 'wiktionaries', minute => '5'; + } + # imports (fetching lists of wikis itself) usage: <project name>@<weekday> wikistats::cronjob::import { [ 'miraheze@5', # https://phabricator.wikimedia.org/T153930 -- To view, visit https://gerrit.wikimedia.org/r/358150 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I76c4390342ca8347229e2e781292a3f2f9f54369 Gerrit-PatchSet: 8 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: Dzahn <dz...@wikimedia.org> Gerrit-Reviewer: Dzahn <dz...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits