From: Sam Lang Date: Wed, 13 Mar 2013 03:21:12 +0000 (-0500) Subject: task/ceph_manager: Check that ipmi is enabled X-Git-Tag: 1.1.0~2251^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8791b3740ce1358f1fdc238145efbcffe29825d8;p=teuthology.git 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 --- diff --git a/teuthology/task/ceph_manager.py b/teuthology/task/ceph_manager.py index fbdbb6d07..07de26ca5 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 = []