mirror of
https://github.com/freeipa/ansible-freeipa.git
synced 2026-05-14 05:22:05 +00:00
Compare commits
2 Commits
automember
...
ipaautomem
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
daf4aafb27 | ||
|
|
f785e8ba23 |
@@ -127,6 +127,7 @@ Variable | Description | Required
|
|||||||
`automember_type` | Grouping to which the rule applies. It can be one of `group`, `hostgroup`. | yes
|
`automember_type` | Grouping to which the rule applies. It can be one of `group`, `hostgroup`. | yes
|
||||||
`inclusive` | List of dictionaries in the format of `{'key': attribute, 'expression': inclusive_regex}` | no
|
`inclusive` | List of dictionaries in the format of `{'key': attribute, 'expression': inclusive_regex}` | no
|
||||||
`exclusive` | List of dictionaries in the format of `{'key': attribute, 'expression': exclusive_regex}` | no
|
`exclusive` | List of dictionaries in the format of `{'key': attribute, 'expression': exclusive_regex}` | no
|
||||||
|
`action` | Work on automember or member level. It can be one of `member` or `automember` and defaults to `automember`. | no
|
||||||
`state` | The state to ensure. It can be one of `present`, `absent`, default: `present`. | no
|
`state` | The state to ensure. It can be one of `present`, `absent`, default: `present`. | no
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -185,15 +185,6 @@ def transform_conditions(conditions):
|
|||||||
return transformed
|
return transformed
|
||||||
|
|
||||||
|
|
||||||
def check_condition_keys(ansible_module, conditions, aciattrs):
|
|
||||||
if conditions is None:
|
|
||||||
return
|
|
||||||
for condition in conditions:
|
|
||||||
if condition["key"] not in aciattrs:
|
|
||||||
ansible_module.fail_json(
|
|
||||||
msg="Invalid automember condition key '%s'" % condition["key"])
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
ansible_module = AnsibleModule(
|
ansible_module = AnsibleModule(
|
||||||
argument_spec=dict(
|
argument_spec=dict(
|
||||||
@@ -283,28 +274,6 @@ def main():
|
|||||||
# Make sure automember rule exists
|
# Make sure automember rule exists
|
||||||
res_find = find_automember(ansible_module, name, automember_type)
|
res_find = find_automember(ansible_module, name, automember_type)
|
||||||
|
|
||||||
# Check inclusive and exclusive conditions
|
|
||||||
if inclusive is not None or exclusive is not None:
|
|
||||||
# automember_type is either "group" or "hostgorup"
|
|
||||||
if automember_type == "group":
|
|
||||||
_type = "user"
|
|
||||||
elif automember_type == "hostgroup":
|
|
||||||
_type = "host"
|
|
||||||
else:
|
|
||||||
ansible_module.fail_json(
|
|
||||||
msg="Bad automember type '%s'" % automember_type)
|
|
||||||
|
|
||||||
try:
|
|
||||||
aciattrs = api_command(
|
|
||||||
ansible_module, "json_metadata", to_text(_type), {}
|
|
||||||
)['objects'][_type]['aciattrs']
|
|
||||||
except Exception as ex:
|
|
||||||
ansible_module.fail_json(
|
|
||||||
msg="%s: %s: %s" % ("json_metadata", _type, str(ex)))
|
|
||||||
|
|
||||||
check_condition_keys(ansible_module, inclusive, aciattrs)
|
|
||||||
check_condition_keys(ansible_module, exclusive, aciattrs)
|
|
||||||
|
|
||||||
# Create command
|
# Create command
|
||||||
if state == 'present':
|
if state == 'present':
|
||||||
args = gen_args(description, automember_type)
|
args = gen_args(description, automember_type)
|
||||||
|
|||||||
@@ -164,34 +164,6 @@
|
|||||||
register: result
|
register: result
|
||||||
failed_when: result.changed or result.failed
|
failed_when: result.changed or result.failed
|
||||||
|
|
||||||
- name: Ensure testgroup group automember conditions fails on invalid inclusive key
|
|
||||||
ipaautomember:
|
|
||||||
ipaadmin_principal: admin
|
|
||||||
ipaadmin_password: SomeADMINpassword
|
|
||||||
name: testgroup
|
|
||||||
automember_type: group
|
|
||||||
inclusive:
|
|
||||||
- key: cns
|
|
||||||
expression: 'foo'
|
|
||||||
action: member
|
|
||||||
register: result
|
|
||||||
failed_when: result.changed or not result.failed or
|
|
||||||
"Invalid automember condition key 'cns'" not in result.msg
|
|
||||||
|
|
||||||
- name: Ensure testgroup group automember conditions fails on invalid exlusive key
|
|
||||||
ipaautomember:
|
|
||||||
ipaadmin_principal: admin
|
|
||||||
ipaadmin_password: SomeADMINpassword
|
|
||||||
name: testgroup
|
|
||||||
automember_type: group
|
|
||||||
exclusive:
|
|
||||||
- key: cns
|
|
||||||
expression: 'foo'
|
|
||||||
action: member
|
|
||||||
register: result
|
|
||||||
failed_when: result.changed or not result.failed or
|
|
||||||
"Invalid automember condition key 'cns'" not in result.msg
|
|
||||||
|
|
||||||
- name: Ensure testhostgroup hostgroup automember rule is present
|
- name: Ensure testhostgroup hostgroup automember rule is present
|
||||||
ipaautomember:
|
ipaautomember:
|
||||||
ipaadmin_password: SomeADMINpassword
|
ipaadmin_password: SomeADMINpassword
|
||||||
@@ -310,35 +282,6 @@
|
|||||||
register: result
|
register: result
|
||||||
failed_when: result.changed or result.failed
|
failed_when: result.changed or result.failed
|
||||||
|
|
||||||
|
|
||||||
- name: Ensure testhostgroup hostgroup automember conditions fails on invalid inclusive key
|
|
||||||
ipaautomember:
|
|
||||||
ipaadmin_principal: admin
|
|
||||||
ipaadmin_password: SomeADMINpassword
|
|
||||||
name: testhostgroup
|
|
||||||
automember_type: hostgroup
|
|
||||||
inclusive:
|
|
||||||
- key: cns
|
|
||||||
expression: 'foo'
|
|
||||||
action: member
|
|
||||||
register: result
|
|
||||||
failed_when: result.changed or not result.failed or
|
|
||||||
"Invalid automember condition key 'cns'" not in result.msg
|
|
||||||
|
|
||||||
- name: Ensure testhostgroup hostgroup automember conditions fails on invalid exlusive key
|
|
||||||
ipaautomember:
|
|
||||||
ipaadmin_principal: admin
|
|
||||||
ipaadmin_password: SomeADMINpassword
|
|
||||||
name: testhostgroup
|
|
||||||
automember_type: hostgroup
|
|
||||||
exclusive:
|
|
||||||
- key: cns
|
|
||||||
expression: 'foo'
|
|
||||||
action: member
|
|
||||||
register: result
|
|
||||||
failed_when: result.changed or not result.failed or
|
|
||||||
"Invalid automember condition key 'cns'" not in result.msg
|
|
||||||
|
|
||||||
# CLEANUP TEST ITEMS
|
# CLEANUP TEST ITEMS
|
||||||
|
|
||||||
- name: Ensure group testgroup is absent
|
- name: Ensure group testgroup is absent
|
||||||
|
|||||||
Reference in New Issue
Block a user