mirror of
https://github.com/ansible/awx.git
synced 2026-01-12 10:30:03 -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:
commit
34ba858e3b
@ -49,7 +49,6 @@ options:
|
||||
description:
|
||||
- The source to use for this group.
|
||||
choices: ["manual", "file", "ec2", "rax", "vmware", "gce", "azure", "azure_rm", "openstack", "satellite6" , "cloudforms", "custom"]
|
||||
default: manual
|
||||
type: str
|
||||
source_regions:
|
||||
description:
|
||||
@ -127,15 +126,15 @@ def main():
|
||||
credential=dict(),
|
||||
source=dict(choices=["manual", "file", "ec2", "rax", "vmware",
|
||||
"gce", "azure", "azure_rm", "openstack",
|
||||
"satellite6", "cloudforms", "custom"], default="manual"),
|
||||
"satellite6", "cloudforms", "custom"]),
|
||||
source_regions=dict(),
|
||||
source_vars=dict(),
|
||||
instance_filters=dict(),
|
||||
group_by=dict(),
|
||||
source_script=dict(),
|
||||
overwrite=dict(type='bool', default=False),
|
||||
overwrite_vars=dict(type='bool', default=False),
|
||||
update_on_launch=dict(type='bool', default=False),
|
||||
overwrite=dict(type='bool'),
|
||||
overwrite_vars=dict(type='bool'),
|
||||
update_on_launch=dict(type='bool'),
|
||||
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'
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user