From 8791b3740ce1358f1fdc238145efbcffe29825d8 Mon Sep 17 00:00:00 2001 From: Sam Lang Date: Tue, 12 Mar 2013 22:21:12 -0500 Subject: [PATCH] task/ceph_manager: Check that ipmi is enabled If powercycling was requested for the osd thrasher we should ensure that we are able to reach the ipmi console. This helps us avoid weird errors. Signed-off-by: Sam Lang --- teuthology/task/ceph_manager.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/teuthology/task/ceph_manager.py b/teuthology/task/ceph_manager.py index fbdbb6d07ec67..07de26ca5fdba 100644 --- a/teuthology/task/ceph_manager.py +++ b/teuthology/task/ceph_manager.py @@ -665,6 +665,7 @@ class CephManager: if self.config.get('powercycle'): (remote,) = self.ctx.cluster.only('osd.{o}'.format(o=osd)).remotes.iterkeys() self.log('kill_osd on osd.{o} doing powercycle of {s}'.format(o=osd, s=remote.name)) + assert remote.console is not None, "powercycling requested but RemoteConsole is not initialized. Check ipmi config." remote.console.power_off() else: self.ctx.daemons.get_daemon('osd', osd).stop() @@ -679,6 +680,7 @@ class CephManager: if self.config.get('powercycle'): (remote,) = self.ctx.cluster.only('osd.{o}'.format(o=osd)).remotes.iterkeys() self.log('kill_osd on osd.{o} doing powercycle of {s}'.format(o=osd, s=remote.name)) + assert remote.console is not None, "powercycling requested but RemoteConsole is not initialized. Check ipmi config." remote.console.power_on() if not remote.console.check_status(300): raise Exception('Failed to revive osd.{o} via ipmi'.format(o=osd)) @@ -702,6 +704,7 @@ class CephManager: if self.config.get('powercycle'): (remote,) = self.ctx.cluster.only('mon.{m}'.format(m=mon)).remotes.iterkeys() self.log('kill_mon on mon.{m} doing powercycle of {s}'.format(m=mon, s=remote.name)) + assert remote.console is not None, "powercycling requested but RemoteConsole is not initialized. Check ipmi config." remote.console.power_off() else: self.ctx.daemons.get_daemon('mon', mon).stop() @@ -710,6 +713,7 @@ class CephManager: if self.config.get('powercycle'): (remote,) = self.ctx.cluster.only('mon.{m}'.format(m=mon)).remotes.iterkeys() self.log('revive_mon on mon.{m} doing powercycle of {s}'.format(m=mon, s=remote.name)) + assert remote.console is not None, "powercycling requested but RemoteConsole is not initialized. Check ipmi config." remote.console.power_on() ceph_task.make_admin_daemon_dir(self.ctx, remote) self.ctx.daemons.get_daemon('mon', mon).restart() @@ -747,6 +751,7 @@ class CephManager: if self.config.get('powercycle'): (remote,) = self.ctx.cluster.only('mds.{m}'.format(m=mds)).remotes.iterkeys() self.log('kill_mds on mds.{m} doing powercycle of {s}'.format(m=mds, s=remote.name)) + assert remote.console is not None, "powercycling requested but RemoteConsole is not initialized. Check ipmi config." remote.console.power_off() else: self.ctx.daemons.get_daemon('mds', mds).stop() @@ -759,6 +764,7 @@ class CephManager: if self.config.get('powercycle'): (remote,) = self.ctx.cluster.only('mds.{m}'.format(m=mds)).remotes.iterkeys() self.log('revive_mds on mds.{m} doing powercycle of {s}'.format(m=mds, s=remote.name)) + assert remote.console is not None, "powercycling requested but RemoteConsole is not initialized. Check ipmi config." remote.console.power_on() ceph_task.make_admin_daemon_dir(self.ctx, remote) args = [] -- 2.39.5