Merge "Improve logging for modify image during prepare"

This commit is contained in:
Zuul 2018-09-09 13:52:03 +00:00 committed by Gerrit Code Review
commit ea303ba9d5
2 changed files with 16 additions and 8 deletions

View File

@ -222,7 +222,7 @@ class BaseImageUploader(ImageUploader):
vars['source_image'] = source_image
vars['target_image'] = target_image
vars['modified_append_tag'] = append_tag
LOG.debug('Playbook variables: \n%s' % yaml.safe_dump(
LOG.info('Playbook variables: \n%s' % yaml.safe_dump(
vars, default_flow_style=False))
playbook = [{
'hosts': 'localhost',
@ -234,19 +234,26 @@ class BaseImageUploader(ImageUploader):
'vars': vars
}]
}]
LOG.debug('Playbook: \n%s' % yaml.safe_dump(
LOG.info('Playbook: \n%s' % yaml.safe_dump(
playbook, default_flow_style=False))
work_dir = tempfile.mkdtemp(prefix='tripleo-modify-image-playbook-')
try:
action = ansible.AnsiblePlaybookAction(
playbook=playbook,
work_dir=work_dir
work_dir=work_dir,
verbosity=3
)
result = action.run(None)
LOG.debug(result.get('stdout', ''))
finally:
log_path = result.get('log_path')
if log_path and os.path.isfile(log_path):
with open(log_path) as f:
LOG.info(f.read())
shutil.rmtree(work_dir)
except processutils.ProcessExecutionError as e:
LOG.error('%s\nError running playbook in directory: %s'
% (e.stdout, work_dir))
raise ImageUploaderException(
'Modifying image %s failed' % target_image)
@staticmethod
def _images_match(image1, image2, insecure_registries):

View File

@ -524,6 +524,7 @@ class TestDockerImageUploader(base.TestCase):
mock_process.returncode = 1
mock_popen.return_value = mock_process
mock_ansible.return_value.run.return_value = {}
image = 'docker.io/tripleomaster/heat-docker-agents-centos'
tag = 'latest'
@ -568,7 +569,7 @@ class TestDockerImageUploader(base.TestCase):
self.dockermock.return_value.pull.assert_called_once_with(
image, tag=tag, stream=True)
mock_ansible.assert_called_once_with(
playbook=playbook, work_dir=mock.ANY)
playbook=playbook, work_dir=mock.ANY, verbosity=3)
self.dockermock.return_value.tag.assert_not_called()
self.dockermock.return_value.push.assert_called_once_with(
push_image,
@ -594,7 +595,7 @@ class TestDockerImageUploader(base.TestCase):
mock_ansible.return_value.run.side_effect = error
self.assertRaises(
processutils.ProcessExecutionError,
ImageUploaderException,
self.uploader.upload_image,
image + ':' + tag, None, push_destination, set(), append_tag,
'add-foo-plugin', {'foo_version': '1.0.1'}, False, 'full'