Added missing upgrade-db attributes to cluster

Change-Id: I78e48de4f44921ef4af7b9a6c0f2625f9003101c
This commit is contained in:
Dmitry Nikishov 2016-10-24 11:41:43 +03:00
parent a266053a04
commit 9158ec52b3
4 changed files with 77 additions and 2 deletions

View File

@ -5,6 +5,18 @@
fault_tolerance: 0
# TASKS
- id: add_hiera_override
type: upload_file
version: 2.1.0
groups: [primary-controller]
requires: []
required_for: []
parameters:
path: /etc/hiera/override/common.yaml
data:
yaql_exp: >
({"upgrade" => $.upgrade}.toYaml())
- id: rsync_octane
type: sync
version: 2.1.0
@ -20,7 +32,7 @@
type: puppet
version: 2.1.0
groups: [primary-controller]
requires: [rsync_octane]
requires: [rsync_octane, add_hiera_override]
required_for: []
parameters:
puppet_manifest: /etc/fuel/octane/puppet/octane_tasks/modular/nova_db_migrate_flavor_data_70.pp
@ -60,3 +72,13 @@
src: /var/tmp/dbs.original.sql.gz.enc
dst: rsync://{MASTER_IP}:/octane_data/
timeout: 180
- id: remove_hiera_override
type: shell
version: 2.1.0
groups: [primary-controller]
requires: [mysqldump_upload_to_master]
required_for: []
parameters:
cmd: rm /etc/hiera/override/common.yaml || true
timeout: 60

View File

@ -10,6 +10,18 @@
fault_tolerance: 0
# TASKS
- id: add_hiera_override
type: upload_file
version: 2.1.0
groups: [primary-controller, controller]
requires: []
required_for: []
parameters:
path: /etc/hiera/override/common.yaml
data:
yaql_exp: >
({"upgrade" => $.upgrade}.toYaml())
- id: rsync_octane
type: sync
version: 2.1.0
@ -38,7 +50,7 @@
type: puppet
version: 2.1.0
groups: [primary-controller, controller]
requires: [rsync_octane, delete_fuel_resources]
requires: [rsync_octane, delete_fuel_resources, add_hiera_override]
required_for: []
parameters:
puppet_manifest: /etc/fuel/octane/puppet/octane_tasks/modular/stop_controller_services.pp
@ -92,3 +104,13 @@
puppet_manifest: /etc/fuel/octane/puppet/octane_tasks/modular/neutron_migrations_for_fuel_8.pp
puppet_modules: /etc/fuel/octane/puppet:/etc/puppet/modules
timeout: 360
- id: remove_hiera_override
type: shell
version: 2.1.0
groups: [primary-controller, controller]
requires: [neutron_migrations_for_fuel_8, stop_controller_services]
required_for: []
parameters:
cmd: rm /etc/hiera/override/common.yaml || true
timeout: 60

View File

@ -62,8 +62,33 @@ def upgrade_db(orig_id, seed_id, db_role_name):
db.cinder_volume_update_host(orig_env, seed_env)
def add_upgrade_attrs_to_settings(orig_env, seed_env):
upgrade_hash = {
'relation_info': {
'orig_cluster_version': orig_env.data['fuel_version'],
'seed_cluster_version': seed_env.data['fuel_version']
}
}
orig_attrs = orig_env.get_settings_data()
orig_upgrade = orig_attrs['editable']['common'].get('upgrade', {})
orig_upgrade.update(upgrade_hash)
orig_attrs['editable']['common']['upgrade'] = orig_upgrade
orig_env.set_settings_data(orig_attrs)
seed_attrs = seed_env.get_settings_data()
seed_upgrade = seed_attrs['editable']['common'].get('upgrade', {})
seed_upgrade.update(upgrade_hash)
seed_attrs['editable']['common']['upgrade'] = seed_upgrade
seed_env.set_settings_data(seed_attrs)
def upgrade_db_with_graph(orig_id, seed_id):
"""Upgrade db using deployment graphs."""
orig_env = environment_obj.Environment(orig_id)
seed_env = environment_obj.Environment(seed_id)
add_upgrade_attrs_to_settings(orig_env, seed_env)
# Upload all graphs
deploy.upload_graphs(orig_id, seed_id)

View File

@ -126,11 +126,17 @@ def test_upgrade_db_with_graph(mocker, calls, graph_names, catch):
if catch is not None:
expected_exception = results[catch]
mock_settings_hash = {'editable': {'common': {}}}
mocker.patch("octane.util.deployment.upload_graphs")
mocker.patch("octane.util.deployment.execute_graph_and_wait",
side_effect=execute_graph)
mocker.patch("octane.util.deployment.get_cluster_graph_names",
return_value=graph_names)
mocker.patch("fuelclient.objects.Environment.get_settings_data",
return_value=mock_settings_hash)
mocker.patch("fuelclient.objects.Environment.set_settings_data")
mocker.patch("fuelclient.objects.BaseObject.data",
return_value=mock_settings_hash)
if expected_exception is not None:
with pytest.raises(ExecutionError) as excinfo: