jenkins-bot has submitted this change and it was merged.

Change subject: New resource to import wiki pages from strings/text files
......................................................................


New resource to import wiki pages from strings/text files

Bug: T88872
Change-Id: Ice89478f2440eb31b1599ab3e86235ffeec66db6
---
M puppet/hieradata/common.yaml
M puppet/modules/mediawiki/manifests/import_dump.pp
A puppet/modules/mediawiki/manifests/import_text.pp
M puppet/modules/mediawiki/manifests/init.pp
M puppet/modules/mediawiki/manifests/wiki.pp
5 files changed, 84 insertions(+), 1 deletion(-)

Approvals:
  BryanDavis: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/puppet/hieradata/common.yaml b/puppet/hieradata/common.yaml
index e45b0d8..2580e0f 100644
--- a/puppet/hieradata/common.yaml
+++ b/puppet/hieradata/common.yaml
@@ -131,6 +131,7 @@
 mediawiki::cache_dir: /var/cache/mediawiki
 mediawiki::settings_dir: /vagrant/settings.d
 mediawiki::upload_dir: /srv/images
+mediawiki::page_dir: /srv/pages
 mediawiki::db_name: "%{hiera('mysql::default_db_name')}"
 mediawiki::db_user: root
 mediawiki::db_pass: "%{hiera('mysql::root_password')}"
diff --git a/puppet/modules/mediawiki/manifests/import_dump.pp 
b/puppet/modules/mediawiki/manifests/import_dump.pp
index f2a196b..252bfee 100644
--- a/puppet/modules/mediawiki/manifests/import_dump.pp
+++ b/puppet/modules/mediawiki/manifests/import_dump.pp
@@ -1,6 +1,8 @@
 # == Define: mediawiki::import_dump
 #
-# Imports an xml dump into the wiki.
+# Imports an xml dump into the wiki. This is the recommended method for
+# importing "live" content from a wiki; for importing content that should live
+# in the puppet repository, see mediawiki::import_text.
 #
 # === Parameters
 # [*xml_dump*]
diff --git a/puppet/modules/mediawiki/manifests/import_text.pp 
b/puppet/modules/mediawiki/manifests/import_text.pp
new file mode 100644
index 0000000..a383591
--- /dev/null
+++ b/puppet/modules/mediawiki/manifests/import_text.pp
@@ -0,0 +1,65 @@
+# == Define: mediawiki::import_text
+#
+# Imports a string or text file into the wiki. This is the recommended method
+# for importing version-controlled content such as documentation for vagrant
+# roles; for importing current content from a wiki, see import_dump.
+#
+# Apart from cleaner diffs when put into version control, the main difference
+# from import_dump is that import_text will update existing pages when
+# necessary.
+#
+# Required parameters are page_title and exactly one of path or content.
+#
+# === Parameters
+# [*page_title*]
+#   Full title of the page where the text should be imported. Defaults to the
+#   resource title.
+#
+# [*source*]
+#   Fully qualified path to the file to import.
+#
+# [*content*]
+#   Page content as a string.
+#
+# [*db_name*]
+#   Wiki database to import page into. The default will import into the
+#   primary wiki.
+#
+# [*wiki*]
+#   Wiki to import page into. The default will import into the primary wiki.
+#
+# == Usage
+#
+#   mediawiki::import_text { 'Main_Page':
+#       content => template('mediawiki/mainpage.erb'),
+#   }
+#
+define mediawiki::import_text(
+    $page_title = $title,
+    $source     = undef,
+    $content    = undef,
+    $db_name    = $::mediawiki::db_name,
+    $wiki       = $::mediawiki::wiki_name,
+) {
+    if $source == undef and $content == undef  {
+        fail('you must provide either "source" or "content"')
+    }
+    if $source != undef and $content != undef  {
+        fail('"source" and "content" are mutually exclusive')
+    }
+
+    $path = "${::mediawiki::page_dir}/wiki/${db_name}/${page_title}"
+
+    file { $path:
+        source  => $source,
+        content => $content,
+        notify  => Exec["add page ${wiki}/${page_title}"],
+    }
+
+    exec { "add page ${wiki}/${page_title}":
+        command     => "mwscript edit.php --wiki=${db_name} --summary='Vagrant 
import' --no-rc '${page_title}' < ${path}",
+        refreshonly => true,
+        user        => 'www-data',
+        require     => Mediawiki::Wiki[$wiki],
+    }
+}
diff --git a/puppet/modules/mediawiki/manifests/init.pp 
b/puppet/modules/mediawiki/manifests/init.pp
index 083c6f7..b72fc1e 100644
--- a/puppet/modules/mediawiki/manifests/init.pp
+++ b/puppet/modules/mediawiki/manifests/init.pp
@@ -40,6 +40,10 @@
 #   The file system path of the folder where files will be uploaded
 #   (example: '/srv/mediawiki/images').
 #
+# [*page_dir*]
+#   The file system path of the folder where the content of vagrant-managed
+#   pages is stored (example: '/srv/pages').
+#
 # [*branch*]
 #   Version to check out
 #
@@ -57,6 +61,7 @@
     $cache_dir,
     $settings_dir,
     $upload_dir,
+    $page_dir,
     $branch     = undef,
     $server_url = undef,
 ) {
@@ -110,6 +115,11 @@
         source  => 'puppet:///modules/mediawiki/mediawiki-settings.d-empty',
     }
 
+    # needed by import_page
+    file { [$page_dir, "${page_dir}/wiki"]:
+        ensure => directory,
+    }
+
     mediawiki::wiki { $wiki_name:
         db_name       => $db_name,
         upload_dir    => $upload_dir,
diff --git a/puppet/modules/mediawiki/manifests/wiki.pp 
b/puppet/modules/mediawiki/manifests/wiki.pp
index 8384d95..3987977 100644
--- a/puppet/modules/mediawiki/manifests/wiki.pp
+++ b/puppet/modules/mediawiki/manifests/wiki.pp
@@ -130,6 +130,11 @@
         source  => 'puppet:///modules/mediawiki/wiki/settings.d-empty',
     }
 
+    # used by import_page
+    file { "${::mediawiki::page_dir}/wiki/${db_name}":
+        ensure => directory,
+    }
+
     # Provision primary wiki before others
     Mediawiki::Wiki <| primary_wiki == true |> -> Mediawiki::Wiki <| 
primary_wiki == false |>
     # Provision wikis before adding extensions

-- 
To view, visit https://gerrit.wikimedia.org/r/189180
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ice89478f2440eb31b1599ab3e86235ffeec66db6
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/vagrant
Gerrit-Branch: master
Gerrit-Owner: GergÅ‘ Tisza <[email protected]>
Gerrit-Reviewer: BryanDavis <[email protected]>
Gerrit-Reviewer: Dduvall <[email protected]>
Gerrit-Reviewer: Ori.livneh <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to