Merge "Use correct release file for periodic jobs"

This commit is contained in:
Zuul 2018-07-05 10:54:47 +00:00 committed by Gerrit Code Review
commit f221ec482e
3 changed files with 85 additions and 11 deletions

View File

@ -173,10 +173,13 @@ def compose_releases_dictionary(stable_release, featureset, upgrade_from):
return releases_dictionary
def shim_convert_old_release_names(releases_names):
def shim_convert_old_release_names(releases_names, is_periodic):
# TODO(trown): Remove this shim when we no longer need to use the
# old style double release files.
# Remove unspected side-effects
modified_releases_name = releases_names.copy()
oc_deploy_release = releases_names['overcloud_deploy_release']
oc_target_release = releases_names['overcloud_target_release']
uc_install_release = releases_names['undercloud_install_release']
@ -184,12 +187,19 @@ def shim_convert_old_release_names(releases_names):
if oc_deploy_release != oc_target_release:
release_file = "{}-undercloud-{}-overcloud".format(
uc_install_release, oc_deploy_release)
releases_names['undercloud_install_release'] = release_file
releases_names['undercloud_target_release'] = release_file
releases_names['overcloud_deploy_release'] = release_file
releases_names['overcloud_target_release'] = release_file
modified_releases_name['undercloud_install_release'] = release_file
modified_releases_name['undercloud_target_release'] = release_file
modified_releases_name['overcloud_deploy_release'] = release_file
modified_releases_name['overcloud_target_release'] = release_file
elif is_periodic:
for key in [
'undercloud_install_release', 'undercloud_target_release',
'overcloud_deploy_release', 'overcloud_target_release'
]:
modified_releases_name[
key] = "promotion-testing-hash-" + releases_names[key]
return releases_names
return modified_releases_name
def write_releases_dictionary_to_bash(releases_dictionary, bash_file_name):
@ -246,6 +256,10 @@ if __name__ == '__main__':
help='Upgrade FROM the change under test instead\n'
'of the default of upgrading TO the change\n'
'under test.')
parser.add_argument('--is-periodic', action='store_true',
help='Specify if the current running job is periodic')
args = parser.parse_args()
setup_logging(args.log_file)
@ -257,7 +271,8 @@ if __name__ == '__main__':
featureset,
args.upgrade_from)
releases_dictionary = shim_convert_old_release_names(releases_dictionary)
releases_dictionary = shim_convert_old_release_names(releases_dictionary,
args.is_periodic)
if not write_releases_dictionary_to_bash(
releases_dictionary, args.output_file):

View File

@ -22,7 +22,12 @@ def test_converting_from_oc_upgrade_has_double_release():
'overcloud_target_release': 'master-undercloud-queens-overcloud',
'overcloud_target_hash': 'current-tripleo',
}
assert (shim_convert_old_release_names(releases_name) ==
assert (shim_convert_old_release_names(releases_name, is_periodic=False) ==
expected_releases_file)
# Also periodic jobs use the same release files
assert (shim_convert_old_release_names(releases_name, is_periodic=True) ==
expected_releases_file)
@ -47,7 +52,32 @@ def test_converting_from_uc_upgrade_has_single_release():
'overcloud_target_release': 'master',
'overcloud_target_hash': 'current-tripleo',
}
assert (shim_convert_old_release_names(releases_name) ==
assert (shim_convert_old_release_names(releases_name, is_periodic=False) ==
expected_releases_file)
def test_converting_from_periodic_uc_upgrade_has_single_release_with_sufix():
releases_name = {
'undercloud_install_release': 'queens',
'undercloud_install_hash': 'current-tripleo',
'undercloud_target_release': 'master',
'undercloud_target_hash': 'current-tripleo',
'overcloud_deploy_release': 'master',
'overcloud_deploy_hash': 'current-tripleo',
'overcloud_target_release': 'master',
'overcloud_target_hash': 'current-tripleo',
}
expected_releases_file = {
'undercloud_install_release': 'promotion-testing-hash-queens',
'undercloud_install_hash': 'current-tripleo',
'undercloud_target_release': 'promotion-testing-hash-master',
'undercloud_target_hash': 'current-tripleo',
'overcloud_deploy_release': 'promotion-testing-hash-master',
'overcloud_deploy_hash': 'current-tripleo',
'overcloud_target_release': 'promotion-testing-hash-master',
'overcloud_target_hash': 'current-tripleo',
}
assert (shim_convert_old_release_names(releases_name, is_periodic=True) ==
expected_releases_file)
@ -72,5 +102,30 @@ def test_converting_from_noop_has_single_release():
'overcloud_target_release': 'master',
'overcloud_target_hash': 'current-tripleo',
}
assert (shim_convert_old_release_names(releases_name) ==
assert (shim_convert_old_release_names(releases_name, is_periodic=False) ==
expected_releases_file)
def test_converting_from_periodic_noop_has_single_release_with_sufix():
releases_name = {
'undercloud_install_release': 'master',
'undercloud_install_hash': 'current-tripleo',
'undercloud_target_release': 'master',
'undercloud_target_hash': 'current-tripleo',
'overcloud_deploy_release': 'master',
'overcloud_deploy_hash': 'current-tripleo',
'overcloud_target_release': 'master',
'overcloud_target_hash': 'current-tripleo',
}
expected_releases_file = {
'undercloud_install_release': 'promotion-testing-hash-master',
'undercloud_install_hash': 'current-tripleo',
'undercloud_target_release': 'promotion-testing-hash-master',
'undercloud_target_hash': 'current-tripleo',
'overcloud_deploy_release': 'promotion-testing-hash-master',
'overcloud_deploy_hash': 'current-tripleo',
'overcloud_target_release': 'promotion-testing-hash-master',
'overcloud_target_hash': 'current-tripleo',
}
assert (shim_convert_old_release_names(releases_name, is_periodic=True) ==
expected_releases_file)

View File

@ -83,6 +83,7 @@ export EXTRA_VARS=${EXTRA_VARS:-""}
export VXLAN_VARS=${VXLAN_VARS:-""}
export NODES_ARGS=""
export EXTRANODE=""
export EMIT_RELEASES_EXTRA_ARGS=""
# Set playbook execution status
export PLAYBOOK_DRY_RUN=${PLAYBOOK_DRY_RUN:=0}
export COLLECT_CONF="$TRIPLEO_ROOT/tripleo-ci/toci-quickstart/config/collect-logs.yml"
@ -183,6 +184,7 @@ for JOB_TYPE_PART in $(sed 's/-/ /g' <<< "${TOCI_JOBTYPE:-}") ; do
periodic)
PERIODIC=1
QUICKSTART_RELEASE="promotion-testing-hash-${QUICKSTART_RELEASE}"
EMIT_RELEASES_EXTRA_ARGS="$EMIT_RELEASES_EXTRA_ARGS --is-periodic"
;;
gate)
;;
@ -198,11 +200,13 @@ done
if [[ -f "$RELEASES_SCRIPT" ]] && [[ $FEATURESET_FILE =~ '037' || $FEATURESET_FILE =~ '050' || $FEATURESET_FILE =~ '010' || $FEATURESET_FILE =~ '011' ]]; then
python $RELEASES_SCRIPT \
--stable-release ${STABLE_RELEASE:-"master"} \
--featureset-file $TRIPLEO_ROOT/tripleo-quickstart/config/general_config/$(basename $FEATURESET_FILE) \
--output-file $RELEASES_FILE_OUTPUT \
--log-file $RELEASES_SCRIPT_LOGFILE
--log-file $RELEASES_SCRIPT_LOGFILE \
$EMIT_RELEASES_EXTRA_ARGS
fi