Andrew Bogott has submitted this change and it was merged.

Change subject: Inline documentation for Wikidata's puppet files
......................................................................


Inline documentation for Wikidata's puppet files

Change-Id: I7d32eaaa53075d075644d5c17c38dd8d6f85c3a6
---
M manifests/role/labsmediawiki.pp
M manifests/wikidata.pp
M templates/mediawiki/labs-localsettings
M templates/mediawiki/wikidata-client-requires.php
4 files changed, 66 insertions(+), 20 deletions(-)

Approvals:
  Andrew Bogott: Verified; Looks good to me, approved
  jenkins-bot: Verified



diff --git a/manifests/role/labsmediawiki.pp b/manifests/role/labsmediawiki.pp
index 7ccfeff..367e052 100644
--- a/manifests/role/labsmediawiki.pp
+++ b/manifests/role/labsmediawiki.pp
@@ -31,11 +31,15 @@
        class { "wikidata::singlenode":
                install_repo => true,
                install_client => false,
+               # get value for experimental features from labsconsole
                experimental => $wikidata_experimental,
+               # get value for client_ip from labsconsole
                client_ip => $wikidata_client_ip,
+               # name all repo databases "repo",
                database_name => "repo",
+               # get updates from git
                ensure => latest,
-               # all require_once lines here:
+               # additional require_once lines can be added here:
                role_requires => [
                '\'wikidata_repo_requires.php\'',
                ],
@@ -59,11 +63,15 @@
        class { "wikidata::singlenode":
                install_repo => true,
                install_client => false,
+               # get value for experimental features from labsconsole
                experimental => $wikidata_experimental,
+               # get value for client_ip from labsconsole
                client_ip => $wikidata_client_ip,
+               # name all repo databases "repo",
                database_name => "repo",
+               # don't get updates from git
                ensure => present,
-               # all require_once lines here:
+               # additional require_once lines can be added here:
                role_requires => [
                '\'wikidata_repo_requires.php\'',
                ],
@@ -90,14 +98,20 @@
        class { "wikidata::singlenode":
                install_client => true,
                install_repo => false,
+               # get value for experimental features from labsconsole
                experimental => $wikidata_experimental,
+               # get value for repo_ip from labsconsole
                repo_ip => $wikidata_repo_ip,
+               # get value for repo_url from labsconsole
                repo_url => $wikidata_repo_url,
+               # get value for client's siteGlobalID (like "enwiki") from 
labsconsole
                siteGlobalID => $wikidata_client_siteGlobalID,
+               # name all client databases "client",
                database_name => "client",
+               # get updates from git
                ensure => latest,
                install_path => "/srv/mediawiki",
-               # all require_once lines here:
+               # additional require_once lines can be added here:
                role_requires => [
                '\'wikidata_client_requires.php\'',
                ],
@@ -123,14 +137,20 @@
        class { "wikidata::singlenode":
                install_client => true,
                install_repo => false,
+               # get value for experimental features from labsconsole
                experimental => $wikidata_experimental,
+               # get value for repo_ip from labsconsole
                repo_ip => $wikidata_repo_ip,
+               # get value for repo_url from labsconsole
                repo_url => $wikidata_repo_url,
+               # get value for client's siteGlobalID (like "enwiki") from 
labsconsole
                siteGlobalID => $wikidata_client_siteGlobalID,
+               # name all client databases "client",
                database_name => "client",
+               # don't get updates from git
                ensure => present,
                install_path => "/srv/mediawiki",
-               # all require_once lines here:
+               # additional require_once lines can be added here:
                role_requires => [
                '\'wikidata_client_requires.php\'',
                ],
diff --git a/manifests/wikidata.pp b/manifests/wikidata.pp
index 548019b..d041d32 100644
--- a/manifests/wikidata.pp
+++ b/manifests/wikidata.pp
@@ -35,13 +35,14 @@
        }
 
 # permissions for $wgCacheDir
+# make sure the parent directory exists
        file { "/var/cache/mw-cache":
                ensure => directory,
                owner => "www-data",
                 group => "www-data",
                 mode => "0755",
        }
-
+# create a directory for instance's cache named after db
        file { "/var/cache/mw-cache/${database_name}":
                ensure => directory,
                owner => "www-data",
@@ -49,16 +50,16 @@
                mode => "0755",
        }
 
-# install either Wikibase repo or client to ${install_path}/extensions
+# The following are settings for all Wikidata instances (repo and client)
 
-# enable profiling
+       # enable profiling
        file { "${install_path}/StartProfiler.php":
                require => Exec["mediawiki_setup"],
                ensure => present,
                source => "puppet:///files/mediawiki/StartProfiler.php",
        }
 
-# permit www-data to write images
+       # permit www-data to write to image folder
        file { "${install_path}/images":
                require => Git::Clone["mediawiki"],
                ensure => directory,
@@ -68,42 +69,42 @@
                recurse => true,
        }
 
-# get the dependencies for Wikibase extension
+       # get the dependencies for Wikibase extension after the successful 
installation of mediawiki core
        mw-extension { [ "Diff", "DataValues" ]:
                require => [Git::Clone["mediawiki"], Exec["mediawiki_setup"]],
        }
 
-# get more extensions for Wikidata test instances
+       # get more extensions for Wikidata test instances
        mw-extension { [ "DismissableSiteNotice", "ApiSandbox", "OAI", 
"SiteMatrix" ]:
                require => Git::Clone["mediawiki"],
        }
-
+       # get "mediawiki-config" for SiteMatrix extension
        git::clone { "mwconfig":
                require => Git::Clone["mediawiki"],
                directory => "/srv/mediawiki-config",
                origin => 
"https://gerrit.wikimedia.org/r/p/operations/mediawiki-config.git";,
        }
-
+       # copy notitle.php file to extensions folder
        file { "${install_path}/extensions/notitle.php":
                require => Git::Clone["mediawiki"],
                ensure => present,
                source => "puppet:///files/mediawiki/notitle.php",
        }
-
+       # run populateSitesTable
        exec { "populateSitesTable":
                        require => [Mw-extension["Wikibase"], 
File["${install_path}/LocalSettings.php"]],
                        cwd => 
"${install_path}/extensions/Wikibase/lib/maintenance",
                        command => "/usr/bin/php populateSitesTable.php",
                        logoutput => "on_failure",
        }
-
+       # run the update script after having cloned Wikibase
        exec { "update-script":
                        require => [Mw-extension["Wikibase"], 
Exec["populateSitesTable"]],
                        cwd => "$install_path",
                        command => "/usr/bin/php maintenance/update.php 
--quick",
                        logoutput => "on_failure",
        }
-
+       # rebuild the LocalisationCache
        exec { "localisation-cache":
                        require => [Mw-extension["Wikibase"], 
Exec["populateSitesTable"], Exec["update-script"]],
                        cwd => "$install_path",
@@ -115,21 +116,25 @@
 # Wikibase repo only:
        if $install_repo == true {
                # items are in main namespace, so main page has to be moved 
first
+               # get the file you want to hand over to moveBatch.php
                file {"/tmp/wikidata-move-mainpage":
                        ensure => present,
                        source => 
"puppet:///files/mediawiki/wikidata-move-mainpage",
                }
+               # run moveBatch.php
                exec { "repo_move_mainpage":
                        require => [Git::Clone["mediawiki"], 
Exec["mediawiki_setup"], File["/tmp/wikidata-move-mainpage"]],
                        cwd => "$install_path",
                        command => "/usr/bin/php maintenance/moveBatch.php 
--conf ${install_path}/orig/LocalSettings.php /tmp/wikidata-move-mainpage",
                        logoutput => "on_failure",
                }
+               # get the file that contains our repo's main page
                file { "${install_path}/wikidata-repo-mainpage.xml":
                        require => Git::Clone["mediawiki"],
                        ensure => present,
                        source => 
"puppet:///files/mediawiki/wikidata-repo-mainpage.xml",
                }
+               # import our repo's main page
                exec { "repo_import_mainpage":
                        require => 
[File["${install_path}/wikidata-repo-mainpage.xml"], 
Exec["repo_move_mainpage"]],
                        cwd => "$install_path",
@@ -137,20 +142,24 @@
                        logoutput => "on_failure",
                }
 
-# get the extensions
+               # get the extensions
+               # for repo get extensions Wikibase and ULS
                mw-extension { [ "Wikibase", "UniversalLanguageSelector" ]:
                        require => [Git::Clone["mediawiki"], 
Exec["mediawiki_setup"], Exec["repo_move_mainpage"], Mw-extension["Diff"], 
Mw-extension["DataValues"]],
                }
+               # put a repo specific settings file to $install_path (required 
by LocalSettings.php)
                file { "${install_path}/wikidata_repo_requires.php":
                        require => [Exec["mediawiki_setup"], 
Exec["repo_move_mainpage"]],
                        ensure => present,
                        content => 
template('mediawiki/wikidata-repo-requires.php'),
                }
+               # logo file for demo repo
                file { 
"/srv/mediawiki/skins/common/images/Wikidata-logo-demorepo.png":
                        require => Git::Clone["mediawiki"],
                        ensure => present,
                        source => 
"puppet:///files/mediawiki/Wikidata-logo-demorepo.png",
                }
+               # import items and properties for testing
                exec { "repo_import_data":
                        require => [Mw-extension["Wikibase"], 
Exec["populateSitesTable"], Exec["update-script"]],
                        cwd => 
"${install_path}/extensions/Wikibase/repo/maintenance",
@@ -158,15 +167,18 @@
                        logoutput => "on_failure",
                }
                # propagation of changes from repo to client
+               # dispatchChanges is run by user www-data, check if it exists
                user { "www-data":
                        ensure => present
                }
+               # create a log file for dispatchChanges that is writeable by 
www-data
                file { "/var/log/dispatchChanges.log":
                        ensure => present,
                        owner => 'www-data',
                        group => 'www-data',
                        mode => '0664',
                }
+               # write a cronjob for dispatchChanges to www-data's crontab
                cron { "dispatchChanges":
                        require => File["/var/log/dispatchChanges.log"],
                        ensure => present,
@@ -174,6 +186,7 @@
                        user => "www-data",
                        minute => "*/10",
                }
+               # make sure this log rotates sometimes
                file { "/etc/logrotate.d/wikidata-replication":
                        ensure => present,
                        source => 
"puppet:///files/logrotate/wikidata-replication",
@@ -183,40 +196,46 @@
 
 # Wikibase client only:
        if $install_client == true {
-# get the extensions
+               # get the extensions
+               # for client get extensions Wikibase and ParserFunctions
                mw-extension { [ "Wikibase", "ParserFunctions" ]:
                        require => [Git::Clone["mediawiki"], 
Exec["mediawiki_setup"], Mw-extension["Diff"], Mw-extension["DataValues"]],
                }
+               # put a client specific settings file to $install_path 
(required by LocalSettings.php)
                file { "${install_path}/wikidata_client_requires.php":
                        require => Exec["mediawiki_setup"],
                        ensure => present,
                        content => 
template('mediawiki/wikidata-client-requires.php'),
                }
+               # logo file for demo client
                file { 
"/srv/mediawiki/skins/common/images/Wikidata-logo-democlient.png":
                        require => Git::Clone["mediawiki"],
                        ensure => present,
                        source => 
"puppet:///files/mediawiki/Wikidata-logo-democlient.png",
                }
+               # run populateInterwiki
                exec { "populate_interwiki":
                        require => [Mw-extension["Wikibase"], 
Exec["update-script"]],
                        cwd => "$install_path",
                        command => "/usr/bin/php 
extensions/Wikibase/client/maintenance/populateInterwiki.php",
                        logoutput => "on_failure",
                }
-
+               # run populateSitesTable
                exec { "SitesTable_client":
                        require => Mw-extension["Wikibase"],
                        cwd => "$install_path",
                        command => "/usr/bin/php 
extensions/Wikibase/lib/maintenance/populateSitesTable.php",
                        logoutput => "on_failure",
                }
-               # receive repo's propagation of changes
+               # receive repo's propagation of changes with runJobs
+               # create a log file for runJobs that is writeable by www-data
                file { "/var/log/runJobs.log":
                        ensure => present,
                        owner => 'www-data',
                        group => 'www-data',
                        mode => '0664',
                }
+               # write a cronjob for runJobs to www-data's crontab
                cron { "runJobs":
                        require => File["/var/log/runJobs.log"],
                        ensure => present,
@@ -224,16 +243,19 @@
                        user => "www-data",
                        minute => "*/1",
                }
+               # make sure this log rotates sometimes
                file { "/etc/logrotate.d/wikidata-runJobs":
                        ensure => present,
                        source => "puppet:///files/logrotate/wikidata-runJobs",
                        owner => 'root',
                }
+               # get the dump with content for testing
                file { "${install_path}/simple-elements.xml":
                        require => Git::Clone["mediawiki"],
                        ensure => present,
                        source => 
"puppet:///files/mediawiki/simple-elements.xml",
                }
+               # import content for testing
                exec { "client_import_data":
                        require => [Mw-extension["Wikibase"], 
File["${install_path}/simple-elements.xml"]],
                        cwd => "$install_path",
@@ -242,7 +264,8 @@
                }
        }
 
-# longterm stuff
+# longterm stuff: "latest" option updates core and extensions from gerrit on 
every puppet run.
+# This is not working for core right now, but unrelated to puppet.
        if $ensure == 'latest' {
                exec { 'wikidata_update':
                        require => [Git::Clone["mediawiki"],
diff --git a/templates/mediawiki/labs-localsettings 
b/templates/mediawiki/labs-localsettings
index eca14c9..a487b4d 100644
--- a/templates/mediawiki/labs-localsettings
+++ b/templates/mediawiki/labs-localsettings
@@ -28,10 +28,12 @@
 # Include the complete settings file generated by mw install
 require_once( 'orig/LocalSettings.php' );
 
+# Offer possibility to require addition things in the respective role
 <% role_requires.each do | req | -%>
 require_once( <%=req%> );
 <% end -%>
 
+# Offer possibility to add lines LocalSettings.php in the respective role
 <% role_config_lines.each do | ext | -%>
 <%=ext%>;
 <% end -%>
diff --git a/templates/mediawiki/wikidata-client-requires.php 
b/templates/mediawiki/wikidata-client-requires.php
index c8c9381..4059a70 100644
--- a/templates/mediawiki/wikidata-client-requires.php
+++ b/templates/mediawiki/wikidata-client-requires.php
@@ -37,6 +37,7 @@
 
 $wgShowExceptionDetails = true;
 
+// information about the repo this client is connected to
 $wgWBSettings['repoArticlePath'] = "/wiki/$1";
 $wgWBSettings['repoScriptPath'] = "/w";
 

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I7d32eaaa53075d075644d5c17c38dd8d6f85c3a6
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Silke Meyer <[email protected]>
Gerrit-Reviewer: Andrew Bogott <[email protected]>
Gerrit-Reviewer: jenkins-bot

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

Reply via email to