Save astute keys and port them back to astute

Closes-Bug: 1353497
Change-Id: I5df75fc71fc7ac5d0fb6221caf6ab8097052eb71
This commit is contained in:
Dima Shulyak 2014-08-14 14:45:52 +03:00
parent 04ada3cd7e
commit af3d1922bf
3 changed files with 39 additions and 1 deletions

View File

@ -125,6 +125,9 @@ def config(update_path):
current_fuel_version_path, from_version_path)
previous_version_path = join('/etc/fuel', from_version, 'version.yaml')
astute_container_keys_path = '/var/lib/astute'
astute_keys_path = join(working_directory, 'astute')
cobbler_container_config_path = '/var/lib/cobbler/config'
cobbler_config_path = join(working_directory, 'cobbler_configs')
cobbler_config_files_for_verifier = join(
@ -284,13 +287,17 @@ def config(update_path):
{'id': 'astute',
'supervisor_config': True,
'from_image': 'astute',
'after_container_creation_command': (
"bash -c 'cp -rn /tmp/upgrade/astute/ "
"/var/lib/astute/'"),
'links': [
{'id': 'rabbitmq', 'alias': 'rabbitmq'}],
'volumes_from': [
'volume_logs',
'volume_repos',
'volume_ssh_keys',
'volume_fuel_configs']},
'volume_fuel_configs',
'volume_upgrade_directory']},
{'id': 'cobbler',
'supervisor_config': True,

View File

@ -70,6 +70,7 @@ class DockerUpgrader(UpgradeEngine):
# Preapre env for upgarde
self.save_db()
self.save_cobbler_configs()
self.save_astute_keys()
# Run upgrade
self.supervisor.stop_all_services()
@ -224,6 +225,25 @@ class DockerUpgrader(UpgradeEngine):
return utils.file_contains_lines(self.pg_dump_path, patterns)
def save_astute_keys(self):
"""Copy any astute generated keys."""
container_name = self.make_container_name(
'astute', self.from_version)
try:
utils.exec_cmd('docker cp {0}:{1} {2}'.format(
container_name,
self.config.astute_container_keys_path,
self.config.working_directory
))
except errors.ExecutedErrorNonZeroExitCode:
# we need to create default directory because in
# after_container_creation_command will use it
# but we want to remove keys
if os.path.exists(self.config.astute_keys_path):
utils.rmtree(self.config.astute_keys_path)
raise
os.mkdir(self.config.astute_keys_path)
def save_cobbler_configs(self):
"""Copy config files from container
"""

View File

@ -58,6 +58,7 @@ class TestDockerUpgrader(BaseTestCase):
'stop_fuel_containers',
'save_db',
'save_cobbler_configs',
'save_astute_keys',
'upload_images',
'create_containers',
'generate_configs',
@ -298,6 +299,16 @@ class TestDockerUpgrader(BaseTestCase):
'{0}'.format(cobbler_config_path))
rm_mock.assert_called_once_with(cobbler_config_path)
@mock.patch('fuel_upgrade.engines.docker_engine.'
'utils.exec_cmd')
def test_save_astute_keys(self, exec_cmd_mock):
self.upgrader.save_astute_keys()
exec_cmd_mock.assert_called_once_with(
'docker cp fuel-core-0-astute:/var/lib/astute '
'/var/lib/fuel_upgrade/9999')
self.called_once(exec_cmd_mock)
@mock.patch('fuel_upgrade.engines.docker_engine.glob.glob',
return_value=['1.json'])
@mock.patch('fuel_upgrade.engines.docker_engine.utils.'