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

Reply via email to