diff --git a/ansible_collections/f5networks/f5_modules/CHANGELOG.rst b/ansible_collections/f5networks/f5_modules/CHANGELOG.rst index a7157db..d0d26d0 100644 --- a/ansible_collections/f5networks/f5_modules/CHANGELOG.rst +++ b/ansible_collections/f5networks/f5_modules/CHANGELOG.rst @@ -4,6 +4,14 @@ F5Networks F5\_Modules Collection Release Notes .. contents:: Topics +v1.33.0 +======= + +Bugfixes +-------- + +- bigip_monitor_external - external monitor user-defined variables not reflected for non-common partition + v1.32.1 ======= diff --git a/ansible_collections/f5networks/f5_modules/changelogs/changelog.yaml b/ansible_collections/f5networks/f5_modules/changelogs/changelog.yaml index 8f3b4d9..f7fc92c 100644 --- a/ansible_collections/f5networks/f5_modules/changelogs/changelog.yaml +++ b/ansible_collections/f5networks/f5_modules/changelogs/changelog.yaml @@ -1164,6 +1164,14 @@ releases: release_date: '2024-10-24' 1.32.1: release_date: '2024-10-28' + 1.33.0: + changes: + bugfixes: + - bigip_monitor_external - external monitor user-defined variables not reflected + for non-common partition + fragments: + - external_monitor_issue.yml + release_date: '2024-12-04' 1.4.0: changes: bugfixes: diff --git a/ansible_collections/f5networks/f5_modules/galaxy.yml b/ansible_collections/f5networks/f5_modules/galaxy.yml index df16537..8cd2938 100644 --- a/ansible_collections/f5networks/f5_modules/galaxy.yml +++ b/ansible_collections/f5networks/f5_modules/galaxy.yml @@ -29,4 +29,4 @@ tags: - networking - bigip - bigiq -version: 1.32.1 +version: 1.33.0 diff --git a/ansible_collections/f5networks/f5_modules/plugins/action/bigip.py b/ansible_collections/f5networks/f5_modules/plugins/action/bigip.py index 90152a8..0909024 100644 --- a/ansible_collections/f5networks/f5_modules/plugins/action/bigip.py +++ b/ansible_collections/f5networks/f5_modules/plugins/action/bigip.py @@ -93,5 +93,12 @@ def run(self, task_vars=None): conn.send_command('exit') out = conn.get_prompt() + if self._play_context.connection == 'network_cli': + p = load_provider(f5_provider_spec, self._task.args) + p['server'] = task_vars['ansible_host'] + p['user'] = task_vars['ansible_user'] + p['password'] = task_vars['ansible_password'] + task_vars['provider'] = p + result = super(ActionModule, self).run(task_vars=task_vars) return result diff --git a/ansible_collections/f5networks/f5_modules/plugins/module_utils/version.py b/ansible_collections/f5networks/f5_modules/plugins/module_utils/version.py index ea76d0e..45f9398 100644 --- a/ansible_collections/f5networks/f5_modules/plugins/module_utils/version.py +++ b/ansible_collections/f5networks/f5_modules/plugins/module_utils/version.py @@ -4,4 +4,4 @@ # GNU General Public License v3.0 (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) # This collection version needs to be updated at each release -CURRENT_COLL_VERSION = "1.32.1" +CURRENT_COLL_VERSION = "1.33.0" diff --git a/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_device_info.py b/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_device_info.py index 6b07d48..17d2bb7 100644 --- a/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_device_info.py +++ b/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_device_info.py @@ -7348,6 +7348,12 @@ returned: queried type: str sample: /Common/pool1 + serverssl_use_sni: + description: + - Specifies whether SNI is enabled or disabled on the server-side SSL connection. + returned: queried + type: bool + sample: true status_reason: description: - If there is a problem with the status of the virtual, it is reported here. @@ -17110,6 +17116,7 @@ class VirtualServersParameters(BaseParameters): 'rateLimitSrcMask': 'rate_limit_source_mask', 'rateLimitDstMask': 'rate_limit_destination_mask', 'rateLimit': 'rate_limit', + 'serversslUseSni': 'serverssl_use_sni', 'sourceAddressTranslation': 'snat_type', 'gtmScore': 'gtm_score', 'rateClass': 'rate_class', @@ -17149,6 +17156,7 @@ class VirtualServersParameters(BaseParameters): 'rate_limit', 'snat_type', 'snat_pool', + 'serverssl_use_sni', 'gtm_score', 'rate_class', 'rate_limit_destination_mask', @@ -17592,6 +17600,14 @@ def snat_pool(self): elif self._values['snat_type']['type'] == 'snat': return self._values['snat_type']["pool"] + @property + def serverssl_use_sni(self): + if self._values['serverssl_use_sni'] is None: + return None + if self._values['serverssl_use_sni'] == 'enabled': + return 'enabled' + return 'disabled' + @property def connection_mirror_enabled(self): if self._values['connection_mirror_enabled'] is None: diff --git a/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_monitor_external.py b/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_monitor_external.py index 3e0a82a..c3a4208 100644 --- a/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_monitor_external.py +++ b/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_monitor_external.py @@ -615,7 +615,7 @@ def create_on_device(self): def set_variable_on_device(self, commands): command = ' '.join(['user-defined {0} \\\"{1}\\\"'.format(k, v) for k, v in iteritems(commands)]) - command = 'tmsh modify ltm monitor external {0} {1}'.format(self.want.name, command) + command = 'tmsh modify ltm monitor external {0} {1}'.format(f'/{self.want.partition}/{self.want.name}', command) uri = "https://{0}:{1}/mgmt/tm/util/bash".format( self.client.provider['server'], self.client.provider['server_port'], diff --git a/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_virtual_server.py b/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_virtual_server.py index 82e0290..4bf1fd2 100644 --- a/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_virtual_server.py +++ b/ansible_collections/f5networks/f5_modules/plugins/modules/bigip_virtual_server.py @@ -240,6 +240,12 @@ - To remove SNAT, specify the word C(none). - To specify automap, use the word C(automap). type: str + serverssl_use_sni: + description: + - When C(enabled), specifies whether SNI is enabled on the server-side SSL connection + - When C(disabled), specifies whether SNI is disabled on the server-side SSL connection + - When creating a new virtual server, the default is C(disabled). + type: bool default_persistence_profile: description: - Default profile which manages the session persistence. @@ -835,6 +841,11 @@ returned: changed type: str sample: Automap +serverssl_use_sni: + description: Specifies whether SNI is enabled or disabled on the server-side SSL connection. + returned: changed + type: bool + sample: true source: description: Source address set on the virtual server, in CIDR format. returned: changed @@ -982,6 +993,7 @@ class Parameters(AnsibleF5Parameters): 'fwStagedPolicy': 'firewall_staged_policy', 'securityLogProfiles': 'security_log_profiles', 'securityNatPolicy': 'security_nat_policy', + 'serversslUseSni': 'serverssl_use_sni', 'sourcePort': 'source_port', 'ipIntelligencePolicy': 'ip_intelligence_policy', 'rateLimit': 'rate_limit', @@ -1009,6 +1021,7 @@ class Parameters(AnsibleF5Parameters): 'rules', 'source', 'sourceAddressTranslation', + 'serversslUseSni', 'serviceDownImmediateAction', 'vlans', 'vlansEnabled', @@ -1057,6 +1070,7 @@ class Parameters(AnsibleF5Parameters): 'profiles', 'service_down_immediate_action', 'snat', + 'serverssl_use_sni', 'source', 'type', 'firewall_enforced_policy', @@ -1096,6 +1110,7 @@ class Parameters(AnsibleF5Parameters): 'profiles', 'service_down_immediate_action', 'snat', + 'serverssl_use_sni', 'source', 'vlans', 'vlans_enabled', @@ -2169,6 +2184,14 @@ def snat(self): snat_pool = fq_name(self.partition, self._values['snat']) return dict(pool=snat_pool, type='snat') + @property + def serverssl_use_sni(self): + if self._values['serverssl_use_sni'] is None: + return None + if self._values['serverssl_use_sni']: + return 'enabled' + return 'disabled' + @property def default_persistence_profile(self): if self._values['default_persistence_profile'] is None: @@ -2532,6 +2555,14 @@ def snat(self): result = self._values['snat'].get('pool', None) return result + @property + def serverssl_use_sni(self): + if self._values['serverssl_use_sni'] is None: + return None + if self._values['serverssl_use_sni'] == 'enabled': + return True + return False + @property def destination(self): params = ApiParameters(params=dict(destination=self._values['destination'])) @@ -3722,6 +3753,7 @@ def __init__(self): pool=dict(), description=dict(), snat=dict(), + serverssl_use_sni=dict(type='bool'), default_persistence_profile=dict(), fallback_persistence_profile=dict(), source=dict(),