Azure: Preliminary check for provided limits

Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
This commit is contained in:
Stanislav Levin 2020-02-20 11:42:43 +03:00 committed by Alexander Bokovoy
parent 6daf4d2e10
commit 1fa033c32d
4 changed files with 12 additions and 6 deletions

View File

@ -6,15 +6,19 @@ import yaml
parser = argparse.ArgumentParser(description='Generate Azure jobs matrix.')
parser.add_argument('azure_template', help='path to Azure template')
parser.add_argument('max_azure_env_jobs', type=int,
help='maximum number of Docker envs within VM')
args = parser.parse_args()
with open(args.azure_template) as f:
data = yaml.safe_load(f)
matrix_jobs = {}
for vm in data['vms']:
vm_jobs = vm['vm_jobs']
jobs = {}
job_name = ''
for job_id, vm_job in enumerate(vm['vm_jobs'], 1):
for job_id, vm_job in enumerate(vm_jobs, 1):
if not job_name:
job_name = f'{vm_job["container_job"]}_{job_id}'
jobs[f'ipa_tests_env_name_{job_id}'] = vm_job['container_job']
@ -33,7 +37,11 @@ with open(args.azure_template) as f:
jobs[f'ipa_tests_replicas_{job_id}'] = replicas
jobs[f'ipa_tests_clients_{job_id}'] = clients
job_name = f'{job_name}_to_{len(vm["vm_jobs"])}'
if len(vm_jobs) > args.max_azure_env_jobs:
raise ValueError(
f"Number of defined jobs:{len(vm_jobs)} within VM:'{job_name}'"
f" is greater than limit:{args.max_azure_env_jobs}")
job_name = f'{job_name}_to_{len(vm_jobs)}'
if job_name in matrix_jobs:
raise ValueError(f"Environment names should be unique:{job_name}")
matrix_jobs[job_name] = jobs

View File

@ -15,7 +15,5 @@ steps:
{ echo "ipa_tests_env_name_${project} is mandatory."; exit 1; }
done
[ "$total_envs" -eq 0 ] && { echo 'Nothing to test'; env | sort ; exit 1; }
[ "$total_envs" -gt $(MAX_CONTAINER_ENVS) ] && \
{ echo "The number of defined jobs:${total_envs} cannot be greater than $(MAX_CONTAINER_ENVS)"; exit 1; }
echo "##vso[task.setvariable variable=ipa_tests_total_envs]$total_envs"
displayName: Generate environment variables

View File

@ -4,6 +4,6 @@ parameters:
name: ''
steps:
- script: python3 $(IPA_TESTS_SCRIPTS)/generate-matrix.py ${{ parameters.definition }}
- script: python3 $(IPA_TESTS_SCRIPTS)/generate-matrix.py ${{ parameters.definition }} $(MAX_CONTAINER_ENVS)
name: ${{ parameters.name }}
displayName: ${{ parameters.displayName }}

View File

@ -7,7 +7,7 @@ variables:
# Ubuntu-18.04 - 3.6.9
# https://github.com/actions/virtual-environments/blob/master/images/linux/Ubuntu1804-REA DME.md
VM_IMAGE: 'Ubuntu-18.04'
MAX_CONTAINER_ENVS: 3
MAX_CONTAINER_ENVS: 5
IPA_TESTS_ENV_WORKING_DIR: $(Build.Repository.LocalPath)/ipa_envs
IPA_TESTS_SCRIPTS: 'ipatests/azure/scripts'
IPA_TESTS_DOCKERFILES: $(Build.Repository.LocalPath)/ipatests/azure/Dockerfiles