Giuseppe Lavagetto has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/342666 )

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


Add cache wipe + warmup phase implementation

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

Approvals:
  Giuseppe Lavagetto: Verified; Looks good to me, approved
  Volans: Looks good to me, but someone else must approve



diff --git a/switchdc/stages/t03_cache_wipe.py 
b/switchdc/stages/t03_cache_wipe.py
new file mode 100644
index 0000000..90cf385
--- /dev/null
+++ b/switchdc/stages/t03_cache_wipe.py
@@ -0,0 +1,41 @@
+from switchdc.log import logger
+from switchdc import remote
+from switchdc.stages import get_module_config
+
+__title__ = "wipe and warmup caches"
+
+config = get_module_config('t03_cache_wipe')
+
+
+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'.format(dc_to),
+        '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, basecmd=base_warmup
+    )
+    api_warmup = "{basecmd}urls-server.txt clone {dc} api_appserver".format(
+        dc=dc_to, basecmd=base_warmup
+    )
+    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: merged
Gerrit-Change-Id: Ib0bc18812e425a0033048f864097d9fc4e1be738
Gerrit-PatchSet: 5
Gerrit-Project: operations/switchdc
Gerrit-Branch: master
Gerrit-Owner: Giuseppe Lavagetto <[email protected]>
Gerrit-Reviewer: Giuseppe Lavagetto <[email protected]>
Gerrit-Reviewer: Volans <[email protected]>

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

Reply via email to