diff --git a/f5/bigip/tm/ltm/virtual.py b/f5/bigip/tm/ltm/virtual.py index 290ccde35..3062cab60 100644 --- a/f5/bigip/tm/ltm/virtual.py +++ b/f5/bigip/tm/ltm/virtual.py @@ -55,6 +55,8 @@ class Profiles(Resource): def __init__(self, Profiles_s): '''Autogenerated constructor.''' super(Profiles, self).__init__(Profiles_s) + self._meta_data['required_creation_parameters'].update(('partition',)) + self._meta_data['required_load_parameters'].update(('partition',)) self._meta_data['template_generated'] = True self._meta_data['required_json_kind'] =\ u"tm:ltm:virtual:profiles:profilesstate" diff --git a/test/functional/tm/ltm/test_virtual.py b/test/functional/tm/ltm/test_virtual.py index 90bdaf1e7..302b26af6 100644 --- a/test/functional/tm/ltm/test_virtual.py +++ b/test/functional/tm/ltm/test_virtual.py @@ -13,7 +13,9 @@ # limitations under the License. # -from distutils.version import LooseVersion +from f5.bigip.resource import MissingRequiredCreationParameter +from f5.bigip.resource import MissingRequiredReadParameter + from pprint import pprint as pp import pytest @@ -25,19 +27,23 @@ def delete_resource(resources): resource.delete() -def setup_virtual_test(request, bigip, partition, name): +def setup_virtual_test(request, mgmt_root, partition, name): def teardown(): delete_resource(vc1) request.addfinalizer(teardown) - vc1 = bigip.ltm.virtuals + vc1 = mgmt_root.tm.ltm.virtuals pp('****') virtual1 = vc1.virtual.create(name=name, partition=partition) return virtual1, vc1 class TestVirtual(object): - def test_virtual_create_refresh_update_delete_load(self, request, bigip): - virtual1, vc1 = setup_virtual_test(request, bigip, 'Common', 'vstest1') + def test_virtual_create_refresh_update_delete_load( + self, request, mgmt_root, setup_device_snapshot + ): + virtual1, vc1 = setup_virtual_test( + request, mgmt_root, 'Common', 'vstest1' + ) assert virtual1.name == 'vstest1' virtual1.description = TESTDESCRIPTION virtual1.update() @@ -49,24 +55,48 @@ def test_virtual_create_refresh_update_delete_load(self, request, bigip): assert virtual2.selfLink == virtual1.selfLink -@pytest.mark.skipif(LooseVersion(pytest.config.getoption('--release')) < - LooseVersion('11.6.0'), - reason='This test fails in 11.5.4. Will ' - 'revert this change in next PR.' - ) -def test_profiles_CE(bigip, opt_release): - v1 = bigip.ltm.virtuals.virtual.create(name="tv1", partition="Common") - p1 = v1.profiles_s.profiles.create(name="http") - pp(p1.raw) +def test_profiles_CE( + mgmt_root, opt_release, setup_device_snapshot +): + v1 = mgmt_root.tm.ltm.virtuals.virtual.create( + name="tv1", partition="Common" + ) + p1 = v1.profiles_s.profiles.create(name="http", partition='Common') test_profiles_s = v1.profiles_s - pp(test_profiles_s.raw) test_profiles_s.context = 'all' - pp(test_profiles_s.raw) assert p1.selfLink ==\ u"https://localhost/mgmt/tm/ltm/virtual/"\ - "~Common~tv1/profiles/http?ver="+opt_release + "~Common~tv1/profiles/~Common~http?ver="+opt_release p2 = v1.profiles_s.profiles - assert p2.exists(name='http') + assert p2.exists(name='http', partition='Common') + + v1.delete() + + +def test_profiles_CE_check_create_params(mgmt_root, setup_device_snapshot): + v1 = mgmt_root.tm.ltm.virtuals.virtual.create( + name="tv2", partition="Common" + ) + with pytest.raises(MissingRequiredCreationParameter) as ex: + v1.profiles_s.profiles.create(name="http") + assert "Missing required params: ['partition']" in ex.value.message + v1.delete() + + +def test_profiles_CE_check_load_params(mgmt_root, setup_device_snapshot): + v1 = mgmt_root.tm.ltm.virtuals.virtual.create( + name="tv3", partition="Common" + ) + p1 = v1.profiles_s.profiles.create(name="http", partition="Common") + + with pytest.raises(MissingRequiredReadParameter) as ex: + assert v1.profiles_s.profiles.load(name='http') + assert "Missing required params: ['partition']" in ex.value.message + + v1.profiles_s.profiles.load(name="http", partition="Common") + + # Check for existence with partition given + p1.exists(name='http', partition='Common') v1.delete()