From fdcb883ac0696f9bdb15d37744fff029b242be3e Mon Sep 17 00:00:00 2001 From: Tim Rupp Date: Wed, 22 Aug 2018 21:21:46 -0400 Subject: [PATCH] Adds new params to bigip trunk (#44547) * description and q-in-q --- lib/ansible/modules/network/f5/bigip_trunk.py | 99 +++++++++++++++---- 1 file changed, 81 insertions(+), 18 deletions(-) diff --git a/lib/ansible/modules/network/f5/bigip_trunk.py b/lib/ansible/modules/network/f5/bigip_trunk.py index af3815775be..59ee2946459 100644 --- a/lib/ansible/modules/network/f5/bigip_trunk.py +++ b/lib/ansible/modules/network/f5/bigip_trunk.py @@ -28,6 +28,10 @@ options: description: - The interfaces that are part of the trunk. - To clear the list of interfaces, specify an empty list. + description: + description: + - Description of the trunk. + version_added: 2.7 link_selection_policy: description: - Specifies, once the trunk is configured, the policy that the trunk uses to determine @@ -92,6 +96,16 @@ options: choices: - long - short + qinq_ethertype: + description: + - Specifies the ether-type value used for the packets handled on this trunk when + it is a member in a QinQ vlan. + - The ether-type can be set to any string containing a valid hexadecimal 16 bits + number, or any of the well known ether-types; C(0x8100), C(0x9100), C(0x88a8). + - This parameter is not supported on Virtual Editions. + - You should always wrap this value in quotes to prevent Ansible from interpreting + the value as a literal hexadecimal number and converting it to an integer. + version_added: 2.7 state: description: - When C(present), ensures that the resource exists. @@ -106,27 +120,67 @@ author: ''' EXAMPLES = r''' -- name: Create a ... +- name: Create a trunk on hardware bigip_trunk: - name: foo - password: secret - server: lb.mydomain.com - state: present - user: admin + name: trunk1 + interfaces: + - 1.1 + - 1.2 + link_selection_policy: maximum-bandwidth + frame_distribution_hash: destination-mac + lacp_enabled: yes + lacp_mode: passive + lacp_timeout: short + provider: + password: secret + server: lb.mydomain.com + user: admin delegate_to: localhost ''' RETURN = r''' -param1: - description: The new param1 value of the resource. - returned: changed - type: bool - sample: true -param2: - description: The new param2 value of the resource. +lacp_mode: + description: Operation mode for LACP if the lacp option is enabled for the trunk. returned: changed type: string - sample: Foo is bar + sample: active +lacp_timeout: + description: Rate at which the system sends the LACP control packets. + returned: changed + type: string + sample: long +link_selection_policy: + description: + - LACP policy that the trunk uses to determine which member link (interface) + can handle new traffic. + returned: changed + type: string + sample: auto +frame_distribution_hash: + description: Hash that the system uses as the frame distribution algorithm. + returned: changed + type: string + sample: src-dst-ipport +lacp_enabled: + description: Whether the system supports the link aggregation control protocol (LACP) or not. + returned: changed + type: bool + sample: yes +interfaces: + description: Interfaces that are part of the trunk. + returned: changed + type: list + sample: ['int1', 'int2'] +description: + description: Description of the trunk. + returned: changed + type: string + sample: My trunk +qinq_ethertype: + description: Ether-type value used for the packets handled on this trunk when it is a member in a QinQ vlan. + returned: changed + type: string + sample: 0x9100 ''' from ansible.module_utils.basic import AnsibleModule @@ -164,7 +218,8 @@ class Parameters(AnsibleF5Parameters): 'lacpTimeout': 'lacp_timeout', 'linkSelectPolicy': 'link_selection_policy', 'distributionHash': 'frame_distribution_hash', - 'lacp': 'lacp_enabled' + 'lacp': 'lacp_enabled', + 'qinqEthertype': 'qinq_ethertype' } api_attributes = [ @@ -174,6 +229,8 @@ class Parameters(AnsibleF5Parameters): 'linkSelectPolicy', 'distributionHash', 'interfaces', + 'description', + 'qinqEthertype' ] returnables = [ @@ -182,7 +239,9 @@ class Parameters(AnsibleF5Parameters): 'link_selection_policy', 'frame_distribution_hash', 'lacp_enabled', - 'interfaces' + 'interfaces', + 'description', + 'qinq_ethertype' ] updatables = [ @@ -191,7 +250,9 @@ class Parameters(AnsibleF5Parameters): 'link_selection_policy', 'frame_distribution_hash', 'lacp_enabled', - 'interfaces' + 'interfaces', + 'description', + 'qinq_ethertype' ] @@ -478,10 +539,12 @@ class ArgumentSpec(object): lacp_enabled=dict(type='bool'), lacp_mode=dict(choices=['active', 'passive']), lacp_timeout=dict(choices=['short', 'long']), + description=dict(), state=dict( default='present', choices=['absent', 'present'] - ) + ), + qinq_ethertype=dict(type='raw'), ) self.argument_spec = {} self.argument_spec.update(f5_argument_spec)