summaryrefslogtreecommitdiffstats
path: root/glustolibs-misc/glustolibs
diff options
context:
space:
mode:
authorAmbarish Soman <asoman@redhat.com>2017-10-09 21:31:47 +0530
committerJonathan Holloway <jholloway@redhat.com>2018-05-09 03:08:05 +0000
commitec9a468e162f3cc00a588956fd6b29d9c0c2bfae (patch)
tree996754c3dc52773c3d7d2d80b6bcfa2a20c909ed /glustolibs-misc/glustolibs
parenteee761bf6970eb6ee67ff33609319eb12fb95ea0 (diff)
Function that drops caches on a list of hosts,to run certain FOPs on a cold cache
Change-Id: Ia6a2d73da1c3ea2a123da55c6bcd063b1e7404a4 Signed-off-by: Ambarish Soman <asoman@redhat.com>
Diffstat (limited to 'glustolibs-misc/glustolibs')
-rwxr-xr-xglustolibs-misc/glustolibs/misc/misc_libs.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/glustolibs-misc/glustolibs/misc/misc_libs.py b/glustolibs-misc/glustolibs/misc/misc_libs.py
index e913becf3..e2c1f6ca7 100755
--- a/glustolibs-misc/glustolibs/misc/misc_libs.py
+++ b/glustolibs-misc/glustolibs/misc/misc_libs.py
@@ -536,3 +536,26 @@ def are_nodes_offline(nodes):
ret = all(node_results.values())
return ret, node_results
+
+
+def drop_caches(hosts):
+ """Drops Kernel Cache on a list of hosts
+ (in order to run reads/renames etc on a cold cache).
+
+ Args:
+ hosts (list): List of hosts where kernel caches need to be
+ dropped (Servers/ Clients)
+
+ Returns:
+ bool : True , post succesful completion.Else,False.
+ """
+ cmd = "echo 3 > /proc/sys/vm/drop_caches"
+ results = g.run_parallel(hosts, cmd)
+ _rc = True
+ for host, ret_values in results.iteritems():
+ retcode, _, _ = ret_values
+ if retcode != 0:
+ g.log.error("Unable to drop cache on host %s", host)
+ _rc = False
+
+ return _rc