From c49daeca2f5ef0652c102eb27047a32347b122ec Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 18 Jul 2012 13:44:59 -0700 Subject: [PATCH] clock: print skew with ntp servers to log to help debug time issues --- teuthology/task/clock.py | 60 ++++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 27 deletions(-) diff --git a/teuthology/task/clock.py b/teuthology/task/clock.py index a28e681f18700..0bd271bfd8baf 100644 --- a/teuthology/task/clock.py +++ b/teuthology/task/clock.py @@ -1,9 +1,11 @@ import logging +import contextlib from ..orchestra import run log = logging.getLogger(__name__) +@contextlib.contextmanager def task(ctx, config): """ Sync or skew clock @@ -20,34 +22,38 @@ def task(ctx, config): to sync. - To skew, we should allow something like: - - tasks: - - clock: - mon.0: -2 - client.1: 2 - - ceph: - - interactive: - """ - ctx.cluster.run( - args=[ - 'sudo', - 'service', 'ntp', 'stop', - run.Raw(';'), - 'sudo', - 'ntpdate', - 'clock1.dreamhost.com', - 'clock2.dreamhost.com', - 'clock3.dreamhost.com', - run.Raw(';'), - 'sudo', - 'service', 'ntp', 'start', - run.Raw('||'), - 'true' - ], + log.info('Syncing clocks and checking initial clock skew...') + for rem in ctx.cluster.remotes.iterkeys(): + rem.run( + args=[ + 'sudo', + 'service', 'ntp', 'stop', + run.Raw(';'), + 'sudo', + 'ntpdate', + 'clock1.dreamhost.com', + 'clock2.dreamhost.com', + 'clock3.dreamhost.com', + run.Raw(';'), + 'sudo', + 'service', 'ntp', 'start', + run.Raw(';'), + 'ntpdc', '-p', + ], + logger=log.getChild(rem.name), ) - # TODO do the skew - #for role, skew in config.iteritems(): + try: + yield + + finally: + log.info('Checking final clock skew...') + for rem in ctx.cluster.remotes.iterkeys(): + rem.run( + args=[ + 'ntpdc', '-p', + ], + logger=log.getChild(rem.name), + ) -- 2.39.5