Merge pull request #1192 from wolsen/use-model-run-on-unit

Use zaza.model.run_on_unit for ca checks
This commit is contained in:
Alex Kavanagh
2024-03-18 20:10:26 +00:00
committed by GitHub
2 changed files with 15 additions and 6 deletions

View File

@@ -1700,6 +1700,7 @@ class TestAsyncOpenstackUtils(ut_utils.AioTestCase):
'Stderr': stderr,
'Stdout': stdout}}
return action
results = {
'/tmp/missing.cert': _get_action_output(
'',
@@ -1707,12 +1708,16 @@ class TestAsyncOpenstackUtils(ut_utils.AioTestCase):
'cat: /tmp/missing.cert: No such file or directory'),
'/tmp/good.cert': _get_action_output('CERTIFICATE', '0')}
async def _run(command, timeout=None):
return results[command.split()[-1]]
self.patch_object(openstack_utils.zaza.model, "async_run_on_unit")
async def _run_on_unit(unit_name, command, model_name=None,
timeout=None):
return results[command.split()[-1]].data.get('results')
self.async_run_on_unit.side_effect = _run_on_unit
self.unit1 = mock.MagicMock()
self.unit2 = mock.MagicMock()
self.unit2.run.side_effect = _run
self.unit1.run.side_effect = _run
self.units = [self.unit1, self.unit2]
_units = mock.MagicMock()
_units.units = self.units

View File

@@ -237,8 +237,12 @@ async def async_block_until_ca_exists(application_name, ca_cert,
for ca_file in ca_files:
for unit in units:
try:
output = await unit.run('cat {}'.format(ca_file))
contents = output.data.get('results').get('Stdout', '')
output = await zaza.model.async_run_on_unit(
unit.name,
'cat {}'.format(ca_file),
model_name=model_name
)
contents = output.get('Stdout', '')
if ca_cert not in contents:
break
# libjuju throws a generic error for connection failure. So we