Skip to content

Commit 1dcfa4b

Browse files
committed
Added fix for #491
1 parent b999d20 commit 1dcfa4b

5 files changed

Lines changed: 13 additions & 9 deletions

File tree

f5/bigip/mixins.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,10 @@
1616
#
1717
# NOTE: Code taken from Effective Python Item 26
1818

19-
import logging
2019

20+
from distutils.version import LooseVersion
2121
from f5.sdk_exception import F5SDKError
22+
import logging
2223

2324

2425
class InvalidCommand(F5SDKError):
@@ -117,10 +118,13 @@ def __getattr__(container, name):
117118

118119
def _check_supported_versions(container, attribute):
119120
tmos_v = container._meta_data['bigip'].tmos_version
120-
if tmos_v not in attribute._meta_data['supported_versions']:
121+
minimum = attribute._meta_data['minimum_version']
122+
if LooseVersion(tmos_v) < LooseVersion(minimum):
121123
error = "There was an attempt to access API which " \
122124
"has not been implemented or supported " \
123-
"in the device's TMOS version: {}".format(tmos_v)
125+
"in the device's TMOS version: {}. "\
126+
"Minimum TMOS version supported is {}".format(
127+
tmos_v, minimum)
124128
raise UnsupportedTmosVersion(error)
125129

126130

f5/bigip/resource.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ def __init__(self, container):
179179
self._set_meta_data_uri()
180180
# Supported versions for each class will be defined here.
181181
# List can be modified downstream in each sub-class
182-
self._meta_data['supported_versions'] = set(['11.6.0', '12.0.0'])
182+
self._meta_data['minimum_version'] = '11.6.0'
183183
# Commands you can run on a resource or collection, we define it here
184184
self._meta_data['allowed_commands'] = []
185185
# Define required command parameters

f5/bigip/tm/cm/trust.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def __init__(self, cm):
3838
self._meta_data['required_json_kind'] = \
3939
'tm:cm:add-to-trust:runstate'
4040
self._meta_data['allowed_commands'].append('run')
41-
self._meta_data['supported_versions'].discard('11.6.0')
41+
self._meta_data['minimum_version'] = '12.0.0'
4242

4343

4444
class Remove_From_Trust(PathElement, UnnamedResourceMixin,
@@ -61,4 +61,4 @@ def __init__(self, cm):
6161
self._meta_data['required_json_kind'] = \
6262
'tm:cm:remove-from-trust:runstate'
6363
self._meta_data['allowed_commands'].append('run')
64-
self._meta_data['supported_versions'].discard('11.6.0')
64+
self._meta_data['minimum_version'] = '12.0.0'

f5/bigip/tm/ltm/profile.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -512,7 +512,7 @@ def __init__(self, profile):
512512
self._meta_data['allowed_lazy_attributes'] = [Iiop]
513513
self._meta_data['attribute_registry'] = \
514514
{'tm:ltm:profile:iiop:iiopstate': Iiop}
515-
self._meta_data['supported_versions'].discard('11.6.0')
515+
self._meta_data['minimum_version'] = '12.0.0'
516516

517517

518518
class Iiop(Resource):
@@ -1056,7 +1056,7 @@ def __init__(self, profile):
10561056
self._meta_data['allowed_lazy_attributes'] = [Tftp]
10571057
self._meta_data['attribute_registry'] = \
10581058
{'tm:ltm:profile:tftp:tftpstate': Tftp}
1059-
self._meta_data['supported_versions'].discard('11.6.0')
1059+
self._meta_data['minimum_version'] = '12.0.0'
10601060

10611061

10621062
class Tftp(Resource):

f5/bigip/tm/shared/bigip_failover_state.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ def __init__(self, shared):
4848
super(Bigip_Failover_State, self).__init__(shared)
4949
self._meta_data['required_load_parameters'] = set()
5050
self._meta_data['required_json_kind'] = ''
51-
self._meta_data['supported_versions'].discard('11.6.0')
51+
self._meta_data['minimum_version'] = '12.0.0'
5252

5353
def update(self, **kwargs):
5454
'''Update is not supported for BIG-IP® failover state.

0 commit comments

Comments
 (0)