in ebcli/operations/commonops.py [0:0]
def _create_application_version(app_name, version_label, description,
bucket, key, process=False, warning=True,
repository=None, commit_id=None,
build_config=None, relative_to_project_root=True):
"""
A wrapper around elasticbeanstalk.create_application_version that
handles certain error cases:
* application doesnt exist
* version already exists
* validates BuildSpec files for CodeBuild
"""
if relative_to_project_root and build_config is not None:
buildspecops.validate_build_config(build_config)
while True:
try:
elasticbeanstalk.create_application_version(
app_name,
version_label,
description,
bucket,
key,
process,
repository,
commit_id,
build_config
)
return version_label
except InvalidParameterValueError as e:
if e.message.startswith('Application Version ') and \
e.message.endswith(' already exists.'):
if warning:
io.log_warning('Deploying a previously deployed commit.')
return version_label
elif e.message == responses['app.notexists'].replace(
'{app-name}', '\'' + app_name + '\''):
create_app(app_name)
else:
raise