-
Notifications
You must be signed in to change notification settings - Fork 7
Description
The bigip_message_routing_transport_config module currently defines the profiles parameter as a simple list of strings (type='list', elements='str'). This prevents users from specifying the context (clientside, serverside, or all) for profiles.
When configuring Message Routing (e.g., ISO8583, SIP, or Diameter), it is often required to attach two different TCP profiles—one for the ingress (client) leg and another for the egress (server) leg. Because the module does not support passing a context attribute, the BIG-IP rejects the configuration with a "duplicate profile" error, as it attempts to assign both to the same protocol slot.
Inconsistency with other modules:
The bigip_virtual_server module in this same collection already supports this functionality by allowing a dictionary for profiles:
How it works in bigip_virtual_server (Desired behavior)
profiles:
- name: my_tcp_client
context: clientside - name: my_tcp_server
context: serverside
However, in bigip_message_routing_transport_config, only strings are accepted:
Current limitation in transport_config
profiles:
- protocol_iso8583
- tcp_client_profile # No way to specify context here
- tcp_server_profile # Leads to "duplicate" error
Suggested Fix:
Update the argument specification in bigip_message_routing_transport_config.py to match the logic used in bigip_virtual_server.py, allowing profiles to accept a list of dictionaries with name and context keys. This will enable the module to correctly serialize the JSON payload for the iControl REST API.
Environment:
Ansible Collection: f5networks.f5_modules