Skip to content

Commit ab98333

Browse files
author
Paul Breaux
committed
Address code review comments from @zancas. Requiring partition for any TMOS version for virtual profiles.
1 parent 449b054 commit ab98333

2 files changed

Lines changed: 17 additions & 39 deletions

File tree

f5/bigip/tm/ltm/virtual.py

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@
3030
from f5.bigip.resource import Collection
3131
from f5.bigip.resource import Resource
3232

33-
from distutils.version import LooseVersion
34-
3533

3634
class Virtuals(Collection):
3735
"""BIG-IP® LTM virtual collection"""
@@ -57,14 +55,8 @@ class Profiles(Resource):
5755
def __init__(self, Profiles_s):
5856
'''Autogenerated constructor.'''
5957
super(Profiles, self).__init__(Profiles_s)
60-
if LooseVersion(self._meta_data['bigip']._meta_data['tmos_version']) \
61-
< LooseVersion('11.6.0'):
62-
self._meta_data['required_creation_parameters'].update(
63-
('partition',)
64-
)
65-
self._meta_data['required_load_parameters'].update(
66-
('partition',)
67-
)
58+
self._meta_data['required_creation_parameters'].update(('partition',))
59+
self._meta_data['required_load_parameters'].update(('partition',))
6860
self._meta_data['template_generated'] = True
6961
self._meta_data['required_json_kind'] =\
7062
u"tm:ltm:virtual:profiles:profilesstate"

test/functional/tm/ltm/test_virtual.py

Lines changed: 15 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
from f5.bigip.resource import MissingRequiredCreationParameter
1717
from f5.bigip.resource import MissingRequiredReadParameter
1818

19-
from distutils.version import LooseVersion
2019
from pprint import pprint as pp
2120
import pytest
2221

@@ -56,61 +55,48 @@ def test_virtual_create_refresh_update_delete_load(
5655
assert virtual2.selfLink == virtual1.selfLink
5756

5857

59-
@pytest.mark.skipif(
60-
LooseVersion(pytest.config.getoption('--release'))
61-
< LooseVersion('11.6.0'),
62-
reason='Profiles do not need a partition in 11.6.0 and up.'
63-
)
64-
def test_profiles_CE_and_greater(
58+
def test_profiles_CE(
6559
mgmt_root, opt_release, setup_device_snapshot
6660
):
6761
v1 = mgmt_root.tm.ltm.virtuals.virtual.create(
6862
name="tv1", partition="Common"
6963
)
70-
p1 = v1.profiles_s.profiles.create(name="http")
64+
p1 = v1.profiles_s.profiles.create(name="http", partition='Common')
7165
test_profiles_s = v1.profiles_s
7266
test_profiles_s.context = 'all'
7367
assert p1.selfLink ==\
7468
u"https://localhost/mgmt/tm/ltm/virtual/"\
75-
"~Common~tv1/profiles/http?ver="+opt_release
69+
"~Common~tv1/profiles/~Common~http?ver="+opt_release
7670

7771
p2 = v1.profiles_s.profiles
78-
assert p2.exists(name='http')
72+
assert p2.exists(name='http', partition='Common')
7973

8074
v1.delete()
8175

8276

83-
@pytest.mark.skipif(
84-
LooseVersion(pytest.config.getoption('--release'))
85-
>= LooseVersion('11.6.0'),
86-
reason='Profiles are created with a partition in 11.5.4.'
87-
)
88-
def test_profiles_CE_11_5_4_and_less(
89-
mgmt_root, opt_release, setup_device_snapshot
90-
):
77+
def test_profiles_CE_check_create_params(mgmt_root, setup_device_snapshot):
9178
v1 = mgmt_root.tm.ltm.virtuals.virtual.create(
9279
name="tv2", partition="Common"
9380
)
94-
# Ensure we cannot create a profile without partition in 11.5.4
9581
with pytest.raises(MissingRequiredCreationParameter) as ex:
9682
v1.profiles_s.profiles.create(name="http")
9783
assert "Missing required params: ['partition']" in ex.value.message
84+
v1.delete()
9885

99-
# Create the profile with the partition given
86+
87+
def test_profiles_CE_check_load_params(mgmt_root, setup_device_snapshot):
88+
v1 = mgmt_root.tm.ltm.virtuals.virtual.create(
89+
name="tv3", partition="Common"
90+
)
10091
p1 = v1.profiles_s.profiles.create(name="http", partition="Common")
101-
test_profiles_s = v1.profiles_s
102-
test_profiles_s.context = 'all'
103-
assert p1.selfLink ==\
104-
u"https://localhost/mgmt/tm/ltm/virtual/"\
105-
"~Common~tv2/profiles/~Common~http?ver="+opt_release
10692

107-
p2 = v1.profiles_s.profiles
108-
# Ensure we cannot check for existence without partition in 11.5.4
10993
with pytest.raises(MissingRequiredReadParameter) as ex:
110-
assert p2.exists(name='http')
94+
assert v1.profiles_s.profiles.load(name='http')
11195
assert "Missing required params: ['partition']" in ex.value.message
11296

97+
v1.profiles_s.profiles.load(name="http", partition="Common")
98+
11399
# Check for existence with partition given
114-
p2.exists(name='http', partition='Common')
100+
p1.exists(name='http', partition='Common')
115101

116102
v1.delete()

0 commit comments

Comments
 (0)