mirror of
https://github.com/ansible/awx.git
synced 2026-02-28 08:18:43 -03:30
Merge pull request #5191 from AlanCoding/tower_group_id
Make tower_group idempotent Reviewed-by: https://github.com/apps/softwarefactory-project-zuul
This commit is contained in:
@@ -49,7 +49,6 @@ options:
|
|||||||
description:
|
description:
|
||||||
- The source to use for this group.
|
- The source to use for this group.
|
||||||
choices: ["manual", "file", "ec2", "rax", "vmware", "gce", "azure", "azure_rm", "openstack", "satellite6" , "cloudforms", "custom"]
|
choices: ["manual", "file", "ec2", "rax", "vmware", "gce", "azure", "azure_rm", "openstack", "satellite6" , "cloudforms", "custom"]
|
||||||
default: manual
|
|
||||||
type: str
|
type: str
|
||||||
source_regions:
|
source_regions:
|
||||||
description:
|
description:
|
||||||
@@ -127,15 +126,15 @@ def main():
|
|||||||
credential=dict(),
|
credential=dict(),
|
||||||
source=dict(choices=["manual", "file", "ec2", "rax", "vmware",
|
source=dict(choices=["manual", "file", "ec2", "rax", "vmware",
|
||||||
"gce", "azure", "azure_rm", "openstack",
|
"gce", "azure", "azure_rm", "openstack",
|
||||||
"satellite6", "cloudforms", "custom"], default="manual"),
|
"satellite6", "cloudforms", "custom"]),
|
||||||
source_regions=dict(),
|
source_regions=dict(),
|
||||||
source_vars=dict(),
|
source_vars=dict(),
|
||||||
instance_filters=dict(),
|
instance_filters=dict(),
|
||||||
group_by=dict(),
|
group_by=dict(),
|
||||||
source_script=dict(),
|
source_script=dict(),
|
||||||
overwrite=dict(type='bool', default=False),
|
overwrite=dict(type='bool'),
|
||||||
overwrite_vars=dict(type='bool', default=False),
|
overwrite_vars=dict(type='bool'),
|
||||||
update_on_launch=dict(type='bool', default=False),
|
update_on_launch=dict(type='bool'),
|
||||||
state=dict(choices=['present', 'absent'], default='present'),
|
state=dict(choices=['present', 'absent'], default='present'),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
56
awx_collection/test/awx/test_group.py
Normal file
56
awx_collection/test/awx/test_group.py
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
import pytest
|
||||||
|
|
||||||
|
from awx.main.models import Organization, Inventory, Group
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_create_group(run_module, admin_user):
|
||||||
|
org = Organization.objects.create(name='test-org')
|
||||||
|
inv = Inventory.objects.create(name='test-inv', organization=org)
|
||||||
|
|
||||||
|
result = run_module('tower_group', dict(
|
||||||
|
name='Test Group',
|
||||||
|
inventory='test-inv',
|
||||||
|
variables='ansible_network_os: iosxr',
|
||||||
|
state='present'
|
||||||
|
), admin_user)
|
||||||
|
assert result.get('changed'), result
|
||||||
|
|
||||||
|
group = Group.objects.get(name='Test Group')
|
||||||
|
assert group.inventory == inv
|
||||||
|
assert group.variables == 'ansible_network_os: iosxr'
|
||||||
|
|
||||||
|
result.pop('invocation')
|
||||||
|
assert result == {
|
||||||
|
'id': group.id,
|
||||||
|
'group': 'Test Group',
|
||||||
|
'changed': True,
|
||||||
|
'state': 'present'
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_tower_group_idempotent(run_module, admin_user):
|
||||||
|
# https://github.com/ansible/ansible/issues/46803
|
||||||
|
org = Organization.objects.create(name='test-org')
|
||||||
|
inv = Inventory.objects.create(name='test-inv', organization=org)
|
||||||
|
group = Group.objects.create(
|
||||||
|
name='Test Group',
|
||||||
|
inventory=inv,
|
||||||
|
variables='ansible_network_os: iosxr'
|
||||||
|
)
|
||||||
|
|
||||||
|
result = run_module('tower_group', dict(
|
||||||
|
name='Test Group',
|
||||||
|
inventory='test-inv',
|
||||||
|
variables='ansible_network_os: iosxr',
|
||||||
|
state='present'
|
||||||
|
), admin_user)
|
||||||
|
|
||||||
|
result.pop('invocation')
|
||||||
|
assert result == {
|
||||||
|
'id': group.id,
|
||||||
|
'group': 'Test Group',
|
||||||
|
'changed': False, # idempotency assertion
|
||||||
|
'state': 'present'
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user