Skip to content

Support for profile contexts in bigip_message_routing_transport_config #2512

@caioscar

Description

@caioscar

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementPRs or Issues for basic feature requests for an existing module.untriagedissue that needs an initial response from the developers

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions