ArielGlenn has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/375791 )

Change subject: convert "other" dump crons to use script to grabconfig settings
......................................................................

convert "other" dump crons to use script to grabconfig settings

grep + mawk is shortier but grodier.

Bug: T174929
Change-Id: Ifbfe38201742b0d1e95cc33f2e4d6350777ef340
---
M modules/snapshot/files/cron/dump-global-blocks.sh
M modules/snapshot/files/cron/dumpcategoriesrdf.sh
M modules/snapshot/files/cron/dumpcirrussearch.sh
M modules/snapshot/files/cron/dumpcontentxlation.sh
M modules/snapshot/files/cron/wikidatadumps-shared.sh
M modules/snapshot/manifests/cron.pp
6 files changed, 36 insertions(+), 71 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/91/375791/1

diff --git a/modules/snapshot/files/cron/dump-global-blocks.sh 
b/modules/snapshot/files/cron/dump-global-blocks.sh
index 570f27c..9cd3b81 100644
--- a/modules/snapshot/files/cron/dump-global-blocks.sh
+++ b/modules/snapshot/files/cron/dump-global-blocks.sh
@@ -4,23 +4,7 @@
 # modules/snapshot/cron/dump-global-blocks.sh
 #############################################################
 
-source /usr/local/etc/set_dump_dirs.sh
-
-checkval() {
-    setting=$1
-    value=$2
-    if [ -z "$value" -o "$value" == "null" ]; then
-        echo "failed to retrieve value of $setting from $configfile" >& 2
-        exit 1
-    fi
-}
-
-getsetting() {
-    results=$1
-    section=$2
-    setting=$3
-    echo "$results" | /usr/bin/jq -M -r ".$section.$setting"
-}
+source /usr/local/etc/dump_functions.sh
 
 get_db_host() {
     apachedir=$1
diff --git a/modules/snapshot/files/cron/dumpcategoriesrdf.sh 
b/modules/snapshot/files/cron/dumpcategoriesrdf.sh
index 7fc1e5b..d0b810d 100755
--- a/modules/snapshot/files/cron/dumpcategoriesrdf.sh
+++ b/modules/snapshot/files/cron/dumpcategoriesrdf.sh
@@ -7,23 +7,7 @@
 # Generate an RDF dump of categories for all wikis in
 # categories-rdf list and remove old ones.
 
-source /usr/local/etc/set_dump_dirs.sh
-
-checkval() {
-    setting=$1
-    value=$2
-    if [ -z "$value" -o "$value" == "null" ]; then
-        echo "failed to retrieve value of $setting from $configfile" >& 2
-        exit 1
-    fi
-}
-
-getsetting() {
-    results=$1
-    section=$2
-    setting=$3
-    echo "$results" | /usr/bin/jq -M -r ".$section.$setting"
-}
+source /usr/local/etc/dump_functions.sh
 
 usage() {
        echo "Usage: $0 --list wikis.dblist [--config <pathtofile>] [--dryrun]"
diff --git a/modules/snapshot/files/cron/dumpcirrussearch.sh 
b/modules/snapshot/files/cron/dumpcirrussearch.sh
index 29f30cc..0431825 100644
--- a/modules/snapshot/files/cron/dumpcirrussearch.sh
+++ b/modules/snapshot/files/cron/dumpcirrussearch.sh
@@ -7,7 +7,7 @@
 # Generate a json dump of cirrussearch indices for all enabled
 # wikis and remove old ones.
 
-source /usr/local/etc/set_dump_dirs.sh
+source /usr/local/etc/dump_functions.sh
 
 usage() {
        echo "Usage: $0 [--config <pathtofile>] [--dryrun]"
@@ -40,22 +40,18 @@
        exit 1
 fi
 
-deployDir=$(egrep "^dir=" "$configFile" | mawk -Fdir= '{ print $2 }')
-gzip=$(egrep "^gzip=" "$configFile" | mawk -Fgzip= '{ print $2 }')
-allList=$(egrep "^dblist=" "$configFile" | mawk -Fdblist= '{ print $2 }')
-privateList=$(egrep "^privatelist=" "$configFile" | mawk -Fprivatelist= '{ 
print $2 }')
-publicDir=$(egrep "^public=" "$configFile" | mawk -Fpublic= '{ print $2 }')
+args="wiki:dir,dblist,privatelist;tools:gzip;output:public"
+results=`python "${repodir}/getconfigvals.py" --configfile "$configFile" 
--args "$args"`
 
-if [ -z "$deployDir" -o -z "$gzip" -o -z "$allList" -o -z "$privateList" -o -z 
"$publicDir" ]; then
-       echo "failed to find value of one of the following from config file 
$configFile:"
-       echo "gzip: $gzip"
-       echo "dir: $deployDir"
-       echo "dblist: $allList"
-       echo "privatelist: $privateList"
-       echo "public: $publicDir"
-       echo "exiting..."
-       exit 1
-fi
+deployDir=`getsetting "$results" "wiki" "dir"` || exit 1
+allList=`getsetting "$results" "wiki" "dblist"` || exit 1
+privateList=`getsetting "$results" "wiki" "privatelist"` || exit 1
+gzip=`getsetting "$results" "tools" "gzip"` || exit 1
+publicDir=`getsetting "$results" "output" "public"` || exit 1
+
+for settingname in "deployDir" "allList" "privateList" "gzip" "publicDir"; do
+    checkval "$settingname" "${!settingname}"
+done
 
 today=$(date +'%Y%m%d')
 targetDirBase="$publicDir/other/cirrussearch"
diff --git a/modules/snapshot/files/cron/dumpcontentxlation.sh 
b/modules/snapshot/files/cron/dumpcontentxlation.sh
index 8b9f28f..881a46e 100644
--- a/modules/snapshot/files/cron/dumpcontentxlation.sh
+++ b/modules/snapshot/files/cron/dumpcontentxlation.sh
@@ -4,23 +4,7 @@
 # modules/snapshot/cron/dumpcontentxlation.sh
 #############################################################
 
-source /usr/local/etc/set_dump_dirs.sh
-
-checkval() {
-    setting=$1
-    value=$2
-    if [ -z "$value" -o "$value" == "null" ]; then
-        echo "failed to retrieve value of $setting from $configfile"
-        exit 1
-    fi
-}
-
-getsetting() {
-    results=$1
-    section=$2
-    setting=$3
-    echo "$results" | jq -M -r ".$section.$setting"
-}
+source /usr/local/etc/dump_functions.sh
 
 do_dump() {
     format=$1
diff --git a/modules/snapshot/files/cron/wikidatadumps-shared.sh 
b/modules/snapshot/files/cron/wikidatadumps-shared.sh
index 7aa38e5..2caf2c4 100644
--- a/modules/snapshot/files/cron/wikidatadumps-shared.sh
+++ b/modules/snapshot/files/cron/wikidatadumps-shared.sh
@@ -8,17 +8,25 @@
 #
 # Marius Hoch < [email protected] >
 
-source /usr/local/etc/set_dump_dirs.sh
+source /usr/local/etc/dump_functions.sh
 configfile="${confsdir}/wikidump.conf"
 
 today=`date +'%Y%m%d'`
 daysToKeep=70
 
-apacheDir=`awk -Fdir= '/^dir=/ { print $2 }' "$configfile"`
-publicDir=`awk -Fpublic= '/^public=/ { print $2 }' "$configfile"`
+args="wiki:dir;output:public,temp"
+results=`python "${repodir}/getconfigvals.py" --configfile "$configfile" 
--args "$args"`
+
+apacheDir=`getsetting "$results" "wiki" "dir"`
+publicDir=`getsetting "$results" "output" "public"`
+tempDir=`getsetting "$results" "output" "temp"`
+
+for settingname in "apacheDir" "publicDir" "tempDir"; do
+    checkval "$settingname" "${!settingname}"
+done
+
 targetDirBase=$publicDir/other/wikibase/wikidatawiki
 targetDir=$targetDirBase/$today
-tempDir=`awk -Ftemp= '/^temp=/ { print $2 }' "$configfile"`
 
 multiversionscript="${apacheDir}/multiversion/MWScript.php"
 
diff --git a/modules/snapshot/manifests/cron.pp 
b/modules/snapshot/manifests/cron.pp
index c5a25a6..1d19fa5 100644
--- a/modules/snapshot/manifests/cron.pp
+++ b/modules/snapshot/manifests/cron.pp
@@ -1,6 +1,15 @@
 class snapshot::cron(
     $user = undef,
 ) {
+    file { '/usr/local/etc/dump_functions.sh':
+        ensure => 'present',
+        path   => '/usr/local/etc/dump_functions.sh',
+        mode   => '0755',
+        owner  => 'root',
+        group  => 'root',
+        source => 'puppet:///modules/snapshot/cron/dump_functions.sh',
+    }
+
     class { '::snapshot::cron::mediaperprojectlists': user => $user }
     class { '::snapshot::cron::pagetitles': user   => $user }
     class { '::snapshot::cron::cirrussearch': user   => $user }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifbfe38201742b0d1e95cc33f2e4d6350777ef340
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: ArielGlenn <[email protected]>

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

Reply via email to