Fix router debug command

After the changes for drivers in Liberty, the astara-debug-router script
was broken.  This script helps to debug how a worker processes a single
message and enables PDB usage.

This is a modified backport since the files were moved in the master branch.

Change-Id: I69f04ff6f04a58d45737dca770f585f468e3ad58
Closes-Bug: 1524979
This commit is contained in:
Mark McClain 2015-12-11 11:20:18 -05:00
parent 26134dbc87
commit ce7e18f09a
2 changed files with 15 additions and 7 deletions

View File

@ -21,6 +21,7 @@ import sys
from oslo_config import cfg
from akanda.rug import drivers
from akanda.rug import state
from akanda.rug import worker
@ -68,10 +69,11 @@ def debug_one_router(args=sys.argv[1:]):
log.debug('Proxy settings: %r', os.getenv('no_proxy'))
context = worker.WorkerContext()
router_obj = context.neutron.get_router_detail(cfg.CONF.router_id)
driver = drivers.get('router')(context, cfg.CONF.router_id)
a = state.Automaton(
router_id=cfg.CONF.router_id,
tenant_id=router_obj.tenant_id,
driver=driver,
resource_id=cfg.CONF.router_id,
tenant_id=driver._router.tenant_id,
delete_callback=delete_callback,
bandwidth_callback=bandwidth_callback,
worker_context=context,

View File

@ -31,20 +31,26 @@ class TestDebug(base.RugTestBase):
cfg.CONF.unregister_opts(debug.DEBUG_OPTS)
super(TestDebug, self).tearDown()
@mock.patch('akanda.rug.drivers.get')
@mock.patch('akanda.rug.worker.WorkerContext')
@mock.patch('akanda.rug.state.Automaton')
@mock.patch('pdb.set_trace')
def test_debug_one_router(self, set_trace, automaton, ctx):
def test_debug_one_router(self, set_trace, automaton, ctx, drivers_get):
ctx.return_value.neutron.get_router_detail.return_value = mock.Mock(
tenant_id='123'
)
debug.debug_one_router(self.argv + ['--router-id', 'X'])
ctx.return_value.neutron.get_router_detail.assert_called_once_with('X')
mock_driver = drivers_get.return_value.return_value
assert set_trace.called
drivers_get.return_value.assert_called_once_with(ctx.return_value, 'X')
automaton.assert_called_once_with(
router_id='X',
tenant_id='123',
driver=mock_driver,
resource_id='X',
tenant_id=mock_driver._router.tenant_id,
delete_callback=debug.delete_callback,
bandwidth_callback=debug.bandwidth_callback,
worker_context=ctx.return_value,