diff --git a/scripts/emit_releases_file/emit_releases_file.py b/scripts/emit_releases_file/emit_releases_file.py index f6c936d75..2c05f0d9b 100644 --- a/scripts/emit_releases_file/emit_releases_file.py +++ b/scripts/emit_releases_file/emit_releases_file.py @@ -79,6 +79,10 @@ def compose_releases_dictionary(stable_release, featureset): stable_release == RELEASES[0]: raise RuntimeError("Cannot upgrade to {}".format(RELEASES[0])) + if featureset.get('undercloud_upgrade') and stable_release == 'ocata': + raise RuntimeError("Undercloud upgrades are not supported from " + "newton to ocata") + if featureset.get('overcloud_upgrade') and \ featureset.get('undercloud_upgrade'): raise RuntimeError("This tool currently only supports upgrading the " diff --git a/scripts/emit_releases_file/test_unsupported_upgrades.py b/scripts/emit_releases_file/test_unsupported_upgrades.py index 02bb3d205..b583f971a 100644 --- a/scripts/emit_releases_file/test_unsupported_upgrades.py +++ b/scripts/emit_releases_file/test_unsupported_upgrades.py @@ -25,6 +25,16 @@ def test_only_mixed_overcloud_upgrades_are_supported(): compose_releases_dictionary(stable_release, featureset) +def test_undercloud_upgrades_from_newton_to_ocata_are_unsupported(): + featureset = { + 'undercloud_upgrade': True, + } + + stable_release = 'ocata' + with pytest.raises(RuntimeError): + compose_releases_dictionary(stable_release, featureset) + + @pytest.mark.parametrize('upgrade_type', ['ffu_overcloud_upgrade', 'overcloud_upgrade']) def test_overcloud_upgrades_has_to_be_mixed(upgrade_type):