mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
mso_st_contract_filter: Add support for directives (#53300)
This PR also fixes an issue introduced in the previous commit.
This commit is contained in:
parent
6249bb8ea4
commit
1a4e983364
1 changed files with 17 additions and 9 deletions
|
@ -73,6 +73,11 @@ options:
|
||||||
choices: [ both-way, consumer-to-provider, provider-to-consumer ]
|
choices: [ both-way, consumer-to-provider, provider-to-consumer ]
|
||||||
default: both-way
|
default: both-way
|
||||||
aliases: [ type ]
|
aliases: [ type ]
|
||||||
|
filter_directives:
|
||||||
|
description:
|
||||||
|
- A list of filter directives.
|
||||||
|
type: list
|
||||||
|
choices: [ log, none ]
|
||||||
state:
|
state:
|
||||||
description:
|
description:
|
||||||
- Use C(present) or C(absent) for adding or removing.
|
- Use C(present) or C(absent) for adding or removing.
|
||||||
|
@ -163,6 +168,7 @@ def main():
|
||||||
contract_scope=dict(type='str', choices=['application-profile', 'global', 'tenant', 'vrf']),
|
contract_scope=dict(type='str', choices=['application-profile', 'global', 'tenant', 'vrf']),
|
||||||
contract_filter_type=dict(type='str', choices=['both-way', 'one-way']),
|
contract_filter_type=dict(type='str', choices=['both-way', 'one-way']),
|
||||||
filter=dict(type='str', aliases=['name']), # This parameter is not required for querying all objects
|
filter=dict(type='str', aliases=['name']), # This parameter is not required for querying all objects
|
||||||
|
filter_directives=dict(type='list', choices=['log', 'none']),
|
||||||
filter_template=dict(type='str'),
|
filter_template=dict(type='str'),
|
||||||
filter_schema=dict(type='str'),
|
filter_schema=dict(type='str'),
|
||||||
filter_type=dict(type='str', default='both-way', choices=FILTER_KEYS.keys(), aliases=['type']),
|
filter_type=dict(type='str', default='both-way', choices=FILTER_KEYS.keys(), aliases=['type']),
|
||||||
|
@ -185,6 +191,7 @@ def main():
|
||||||
contract_filter_type = module.params['contract_filter_type']
|
contract_filter_type = module.params['contract_filter_type']
|
||||||
contract_scope = module.params['contract_scope']
|
contract_scope = module.params['contract_scope']
|
||||||
filter_name = module.params['filter']
|
filter_name = module.params['filter']
|
||||||
|
filter_directives = module.params['filter_directives']
|
||||||
filter_template = module.params['filter_template']
|
filter_template = module.params['filter_template']
|
||||||
filter_schema = module.params['filter_schema']
|
filter_schema = module.params['filter_schema']
|
||||||
filter_type = module.params['filter_type']
|
filter_type = module.params['filter_type']
|
||||||
|
@ -275,6 +282,8 @@ def main():
|
||||||
ops.append(dict(op='remove', path=filter_path))
|
ops.append(dict(op='remove', path=filter_path))
|
||||||
|
|
||||||
elif state == 'present':
|
elif state == 'present':
|
||||||
|
if filter_directives is None:
|
||||||
|
filter_directives = ['none']
|
||||||
|
|
||||||
payload = dict(
|
payload = dict(
|
||||||
filterRef=dict(
|
filterRef=dict(
|
||||||
|
@ -282,21 +291,20 @@ def main():
|
||||||
templateName=filter_template,
|
templateName=filter_template,
|
||||||
schemaId=filter_schema_id,
|
schemaId=filter_schema_id,
|
||||||
),
|
),
|
||||||
directives=[],
|
directives=filter_directives,
|
||||||
)
|
)
|
||||||
|
|
||||||
mso.sanitize(payload, collate=True)
|
mso.sanitize(payload, collate=True)
|
||||||
mso.existing = mso.sent
|
mso.existing = mso.sent
|
||||||
|
|
||||||
if contract_idx is None:
|
if contract_idx is None:
|
||||||
if not mso.existing:
|
# Contract does not exist, so we have to create it
|
||||||
# Contract does not exist, so we have to create it
|
if contract_display_name is None:
|
||||||
if contract_display_name is None:
|
contract_display_name = contract
|
||||||
contract_display_name = contract
|
if contract_filter_type is None:
|
||||||
if contract_filter_type is None:
|
contract_ftype = 'bothWay'
|
||||||
contract_ftype = 'bothWay'
|
if contract_scope is None:
|
||||||
if contract_scope is None:
|
contract_scope = 'context'
|
||||||
contract_scope = 'context'
|
|
||||||
|
|
||||||
payload = {
|
payload = {
|
||||||
'name': contract,
|
'name': contract,
|
||||||
|
|
Loading…
Add table
Reference in a new issue