mirror of
https://github.com/ansible/awx.git
synced 2026-05-12 03:47:36 -02:30
Fix Boolean values defaulting to False in collection (#14493)
* Fix Boolean values defaulting to False in collection * Remove null values in other cases, fix null handling for WFJT nodes * Only remove null values if it is a boolean field * Reset changes to WFJT node field processing * Use test content from sean-m-sullivan to fix lookups in assert
This commit is contained in:
@@ -980,6 +980,15 @@ class ControllerAPIModule(ControllerModule):
|
|||||||
def create_or_update_if_needed(
|
def create_or_update_if_needed(
|
||||||
self, existing_item, new_item, endpoint=None, item_type='unknown', on_create=None, on_update=None, auto_exit=True, associations=None
|
self, existing_item, new_item, endpoint=None, item_type='unknown', on_create=None, on_update=None, auto_exit=True, associations=None
|
||||||
):
|
):
|
||||||
|
# Remove boolean values of certain specific types
|
||||||
|
# this is needed so that boolean fields will not get a false value when not provided
|
||||||
|
for key in list(new_item.keys()):
|
||||||
|
if key in self.argument_spec:
|
||||||
|
param_spec = self.argument_spec[key]
|
||||||
|
if 'type' in param_spec and param_spec['type'] == 'bool':
|
||||||
|
if new_item[key] is None:
|
||||||
|
new_item.pop(key)
|
||||||
|
|
||||||
if existing_item:
|
if existing_item:
|
||||||
return self.update_if_needed(existing_item, new_item, on_update=on_update, auto_exit=auto_exit, associations=associations)
|
return self.update_if_needed(existing_item, new_item, on_update=on_update, auto_exit=auto_exit, associations=associations)
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -42,6 +42,16 @@
|
|||||||
that:
|
that:
|
||||||
- "result is not changed"
|
- "result is not changed"
|
||||||
|
|
||||||
|
- name: Modify the host as a no-op
|
||||||
|
host:
|
||||||
|
name: "{{ host_name }}"
|
||||||
|
inventory: "{{ inv_name }}"
|
||||||
|
register: result
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- "result is not changed"
|
||||||
|
|
||||||
- name: Delete a Host
|
- name: Delete a Host
|
||||||
host:
|
host:
|
||||||
name: "{{ host_name }}"
|
name: "{{ host_name }}"
|
||||||
@@ -68,6 +78,15 @@
|
|||||||
that:
|
that:
|
||||||
- "result is changed"
|
- "result is changed"
|
||||||
|
|
||||||
|
- name: Use lookup to check that host was enabled
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
host_enabled_test: "lookup('awx.awx.controller_api', 'hosts/{{result.id}}/').enabled"
|
||||||
|
|
||||||
|
- name: Newly created host should have API default value for enabled
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- host_enabled_test
|
||||||
|
|
||||||
- name: Delete a Host
|
- name: Delete a Host
|
||||||
host:
|
host:
|
||||||
name: "{{ result.id }}"
|
name: "{{ result.id }}"
|
||||||
|
|||||||
@@ -76,6 +76,15 @@
|
|||||||
that:
|
that:
|
||||||
- result is changed
|
- result is changed
|
||||||
|
|
||||||
|
- name: Use lookup to check that schedules was enabled
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
schedules_enabled_test: "lookup('awx.awx.controller_api', 'schedules/{{result.id}}/').enabled"
|
||||||
|
|
||||||
|
- name: Newly created schedules should have API default value for enabled
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- schedules_enabled_test
|
||||||
|
|
||||||
- name: Build a real schedule with exists
|
- name: Build a real schedule with exists
|
||||||
schedule:
|
schedule:
|
||||||
name: "{{ sched1 }}"
|
name: "{{ sched1 }}"
|
||||||
|
|||||||
Reference in New Issue
Block a user