Merge "Add ability to upgrade FROM change under test"
This commit is contained in:
commit
26b2420804
|
@ -83,7 +83,7 @@ def get_dlrn_hash(release, hash_name, retries=10, timeout=4):
|
|||
return full_hash[0]
|
||||
|
||||
|
||||
def compose_releases_dictionary(stable_release, featureset):
|
||||
def compose_releases_dictionary(stable_release, featureset, upgrade_from):
|
||||
logger = logging.getLogger('emit-releases')
|
||||
if stable_release not in RELEASES:
|
||||
raise RuntimeError("The {} release is not supported by this tool"
|
||||
|
@ -242,6 +242,10 @@ if __name__ == '__main__':
|
|||
help='log file to print debug information from\n'
|
||||
'running the script.\n'
|
||||
'(default: %(default)s)')
|
||||
parser.add_argument('--upgrade-from', action='store_false',
|
||||
help='Upgrade FROM the change under test instead\n'
|
||||
'of the default of upgrading TO the change\n'
|
||||
'under test.')
|
||||
args = parser.parse_args()
|
||||
|
||||
setup_logging(args.log_file)
|
||||
|
@ -250,7 +254,8 @@ if __name__ == '__main__':
|
|||
featureset = load_featureset_file(args.featureset_file)
|
||||
|
||||
releases_dictionary = compose_releases_dictionary(args.stable_release,
|
||||
featureset)
|
||||
featureset,
|
||||
args.upgrade_from)
|
||||
|
||||
releases_dictionary = shim_convert_old_release_names(releases_dictionary)
|
||||
|
||||
|
|
|
@ -42,8 +42,10 @@ def test_overcloud_upgrade_is_n_minus_one_to_n(mock_get_hash,
|
|||
'mixed_upgrade': True,
|
||||
'overcloud_upgrade': True,
|
||||
}
|
||||
upgrade_from = False
|
||||
assert (compose_releases_dictionary(stable_release,
|
||||
featureset) == expected_releases)
|
||||
featureset,
|
||||
upgrade_from) == expected_releases)
|
||||
mock_get_hash.assert_has_calls(
|
||||
[mock.call(stable_release, 'current-tripleo'),
|
||||
mock.call(expected_releases['overcloud_deploy_release'],
|
||||
|
@ -71,8 +73,10 @@ def test_ffu_overcloud_upgrade_is_n_minus_three_to_n(mock_get_hash,
|
|||
'mixed_upgrade': True,
|
||||
'ffu_overcloud_upgrade': True,
|
||||
}
|
||||
upgrade_from = False
|
||||
assert (compose_releases_dictionary(stable_release,
|
||||
featureset) == expected_releases)
|
||||
featureset,
|
||||
upgrade_from) == expected_releases)
|
||||
mock_get_hash.assert_has_calls(
|
||||
[mock.call(stable_release, 'current-tripleo'),
|
||||
mock.call(expected_releases['overcloud_deploy_release'],
|
||||
|
@ -99,8 +103,10 @@ def test_undercloud_upgrade_is_n_minus_one_to_n(mock_get_hash,
|
|||
featureset = {
|
||||
'undercloud_upgrade': True,
|
||||
}
|
||||
upgrade_from = False
|
||||
assert (compose_releases_dictionary(stable_release,
|
||||
featureset) == expected_releases)
|
||||
featureset,
|
||||
upgrade_from) == expected_releases)
|
||||
mock_get_hash.assert_has_calls(
|
||||
[mock.call(stable_release, 'current-tripleo'),
|
||||
mock.call(expected_releases['undercloud_install_release'],
|
||||
|
@ -136,8 +142,10 @@ def test_overcloud_update_target_is_hash(mock_get_hash,
|
|||
featureset = {
|
||||
'overcloud_update': True,
|
||||
}
|
||||
upgrade_from = False
|
||||
assert (compose_releases_dictionary(stable_release,
|
||||
featureset) == expected_releases)
|
||||
featureset,
|
||||
upgrade_from) == expected_releases)
|
||||
mock_get_hash.assert_has_calls(
|
||||
[mock.call(stable_release, 'current-tripleo'),
|
||||
mock.call(expected_releases['overcloud_deploy_release'],
|
||||
|
@ -188,6 +196,8 @@ def test_noop_target_is_the_same(mock_get_hash,
|
|||
expected_releases):
|
||||
mock_get_hash.return_value = 'current-tripleo'
|
||||
featureset = {}
|
||||
upgrade_from = False
|
||||
assert (compose_releases_dictionary(stable_release,
|
||||
featureset) == expected_releases)
|
||||
featureset,
|
||||
upgrade_from) == expected_releases)
|
||||
mock_get_hash.assert_called_once_with(stable_release, 'current-tripleo')
|
||||
|
|
|
@ -10,8 +10,9 @@ import pytest
|
|||
}])
|
||||
def test_upgrade_to_newton_is_unsupported(featureset):
|
||||
stable_release = 'newton'
|
||||
upgrade_from = False
|
||||
with pytest.raises(RuntimeError):
|
||||
compose_releases_dictionary(stable_release, featureset)
|
||||
compose_releases_dictionary(stable_release, featureset, upgrade_from)
|
||||
|
||||
|
||||
def test_only_mixed_overcloud_upgrades_are_supported():
|
||||
|
@ -21,8 +22,9 @@ def test_only_mixed_overcloud_upgrades_are_supported():
|
|||
}
|
||||
|
||||
stable_release = 'queens'
|
||||
upgrade_from = False
|
||||
with pytest.raises(RuntimeError):
|
||||
compose_releases_dictionary(stable_release, featureset)
|
||||
compose_releases_dictionary(stable_release, featureset, upgrade_from)
|
||||
|
||||
|
||||
def test_undercloud_upgrades_from_newton_to_ocata_are_unsupported():
|
||||
|
@ -31,8 +33,9 @@ def test_undercloud_upgrades_from_newton_to_ocata_are_unsupported():
|
|||
}
|
||||
|
||||
stable_release = 'ocata'
|
||||
upgrade_from = False
|
||||
with pytest.raises(RuntimeError):
|
||||
compose_releases_dictionary(stable_release, featureset)
|
||||
compose_releases_dictionary(stable_release, featureset, upgrade_from)
|
||||
|
||||
|
||||
@pytest.mark.parametrize('upgrade_type',
|
||||
|
@ -42,8 +45,9 @@ def test_overcloud_upgrades_has_to_be_mixed(upgrade_type):
|
|||
upgrade_type: True,
|
||||
}
|
||||
stable_release = 'queens'
|
||||
upgrade_from = False
|
||||
with pytest.raises(RuntimeError):
|
||||
compose_releases_dictionary(stable_release, featureset)
|
||||
compose_releases_dictionary(stable_release, featureset, upgrade_from)
|
||||
|
||||
|
||||
@pytest.mark.parametrize('stable_release',
|
||||
|
@ -53,10 +57,11 @@ def test_ffu_overcloud_upgrade_only_supported_from_newton(stable_release):
|
|||
'mixed_upgrade': True,
|
||||
'ffu_overcloud_upgrade': True,
|
||||
}
|
||||
upgrade_from = False
|
||||
with pytest.raises(RuntimeError):
|
||||
compose_releases_dictionary(stable_release, featureset)
|
||||
compose_releases_dictionary(stable_release, featureset, upgrade_from)
|
||||
|
||||
|
||||
def test_fail_with_wrong_release():
|
||||
with pytest.raises(RuntimeError):
|
||||
compose_releases_dictionary('foobar', {})
|
||||
compose_releases_dictionary('foobar', {}, False)
|
||||
|
|
Loading…
Reference in New Issue