mirror of
https://github.com/ansible/awx.git
synced 2024-10-31 15:21:13 +03:00
enforce muutally exclusivity on update_on_project_update and update_on_launch for scm inventory
This commit is contained in:
parent
3c89aeaba4
commit
95c12ac1ab
@ -1398,10 +1398,17 @@ class InventorySource(UnifiedJobTemplate, InventorySourceOptions):
|
||||
Q(inventory=self.inventory,
|
||||
update_on_project_update=True, source='scm') &
|
||||
~Q(id=self.id)).exists():
|
||||
raise ValidationError(_("Cannot update SCM-based inventory source on launch if set to update on project update. "
|
||||
"Instead, configure the corresponding source project to update on launch."))
|
||||
raise ValidationError(_("More than one SCM-based inventory source with update on project update on per-inventory not allowed."))
|
||||
return self.update_on_project_update
|
||||
|
||||
def clean_update_on_launch(self):
|
||||
if self.update_on_project_update is True and \
|
||||
self.source == 'scm' and \
|
||||
self.update_on_launch is True:
|
||||
raise ValidationError(_("Cannot update SCM-based inventory source on launch if set to update on project update. "
|
||||
"Instead, configure the corresponding source project to update on launch."))
|
||||
return self.update_on_launch
|
||||
|
||||
def clean_overwrite_vars(self):
|
||||
if self.source == 'scm' and not self.overwrite_vars:
|
||||
raise ValidationError(_("SCM type sources must set `overwrite_vars` to `true`."))
|
||||
|
@ -403,9 +403,8 @@ class TestControlledBySCM:
|
||||
{'update_on_project_update': True,},
|
||||
admin_user, expect=400)
|
||||
content = json.loads(res.content)
|
||||
assert content['update_on_project_update'] == ["Cannot update SCM-based inventory source on launch if set to update on "
|
||||
"project update. Instead, configure the corresponding source project to "
|
||||
"update on launch."]
|
||||
assert content['update_on_project_update'] == ["More than one SCM-based inventory source with update on project update "
|
||||
"on per-inventory not allowed."]
|
||||
|
||||
def test_adding_inv_src_without_proj_access_prohibited(self, post, project, inventory, rando):
|
||||
inventory.admin_role.members.add(rando)
|
||||
|
@ -108,3 +108,11 @@ class TestControlledBySCM():
|
||||
with pytest.raises(ValidationError):
|
||||
inv_src.clean_source_path()
|
||||
|
||||
def test_clean_update_on_launch_update_on_project_update(self):
|
||||
inv_src = InventorySource(update_on_project_update=True,
|
||||
update_on_launch=True,
|
||||
source='scm')
|
||||
|
||||
with pytest.raises(ValidationError):
|
||||
inv_src.clean_update_on_launch()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user