File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1616#
1717# NOTE: Code taken from Effective Python Item 26
1818
19- import logging
2019
20+ from distutils .version import LooseVersion
2121from f5 .sdk_exception import F5SDKError
22+ import logging
2223
2324
2425class 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
Original file line number Diff line number Diff 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
Original file line number Diff line number Diff 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
4444class 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'
Original file line number Diff line number Diff 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
518518class 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
10621062class Tftp (Resource ):
Original file line number Diff line number Diff 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.
You can’t perform that action at this time.
0 commit comments