Giuseppe Lavagetto has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/342666 )

Change subject: Add cache wipe + warmup phase implementation
......................................................................

Add cache wipe + warmup phase implementation

Change-Id: Ib0bc18812e425a0033048f864097d9fc4e1be738
---
A switchdc/stages/t03_cache_wipe.py
1 file changed, 42 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/switchdc 
refs/changes/66/342666/1

diff --git a/switchdc/stages/t03_cache_wipe.py 
b/switchdc/stages/t03_cache_wipe.py
new file mode 100644
index 0000000..58853a7
--- /dev/null
+++ b/switchdc/stages/t03_cache_wipe.py
@@ -0,0 +1,42 @@
+from switchdc.log import logger
+from switchdc import remote
+from switchdc.stages import get_module_config, get_module_config_dir
+
+__title__ = "wipe and warmup caches"
+
+config = get_module_config('t05_redis')
+config_dir = get_module_config_dir('t05_redis')
+
+
+def execute(dc_from, dc_to):
+    """
+    Wipes out the caches in the inactive datacenter, and then warms them up
+    """
+    logger.info("Wiping out the MediaWiki caches in %s", dc_to)
+    rc, _ = remote.run('R:Class = Role::Memcached and 
*.{}.wmnet'.format(dc_to),
+                       'sync', ['service memcached restart'],
+                       success_threshold=1.0)
+    if rc != 0:
+        return rc
+
+    rc, _ = remote.run('R:Class = Role::Mediawiki::Webserver and *.{}.wmnet',
+                       'sync', ['service hhvm restart'], batch_size=25)
+    if rc != 0:
+        return rc
+
+    logger.info("Now running the global warmup job")
+    warmup_dir = config.get('warmup_dir', '/var/lib/mediawiki-cache-warmup')
+    base_warmup = "nodejs {wd}/warmup.js {wd}".format(wd=warmup_dir)
+    memc_warmup = "{basecmd}/urls-cluster.txt spread " \
+                  "appservers.svc.{dc}.wmnet".format(
+                      dc=dc_to, basecmd=base_warmup)
+    appserver_warmup = "{basecmd}urls-server.txt clone {dc} appserver".format(
+        dc=dc_to
+    )
+    api_warmup = "{basecmd}urls-server.txt clone {dc} api_appserver".format(
+        dc=dc_to
+    )
+    rc, _ = remote.execute(['wasat.codfw.wmnet'], 'sync',
+                           [memc_warmup, appserver_warmup, api_warmup])
+    # TODO: log something is rc is != 0 ?
+    return 0

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib0bc18812e425a0033048f864097d9fc4e1be738
Gerrit-PatchSet: 1
Gerrit-Project: operations/switchdc
Gerrit-Branch: master
Gerrit-Owner: Giuseppe Lavagetto <[email protected]>

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

Reply via email to