From c9e632d63f35217c7b15c4106ee2aa4a797895cd Mon Sep 17 00:00:00 2001 From: jlongstaf Date: Tue, 23 May 2017 12:48:56 -0600 Subject: [PATCH] Members modify() broken when setting session attribute Issues: Fixes #1137 Problem: Member modify incorrectly checks value of 'state' attribute when user passes 'session' attribute to modify. Analysis: patch['state'] is not correct. should be patch['session'] Tests: Added new test, test_session_modify(), to match existing test test_state_modify(). --- f5/bigip/tm/ltm/pool.py | 2 +- f5/bigip/tm/ltm/test/functional/test_pool.py | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/f5/bigip/tm/ltm/pool.py b/f5/bigip/tm/ltm/pool.py index 9bfce2f46..d7d5fea0b 100644 --- a/f5/bigip/tm/ltm/pool.py +++ b/f5/bigip/tm/ltm/pool.py @@ -214,7 +214,7 @@ def _modify(self, **patch): "'user-down'" % patch['state'] raise MemberStateModifyUnsupported(msg) if 'session' in patch: - if patch['session'] != 'user-enabled' and patch['state'] != \ + if patch['session'] != 'user-enabled' and patch['session'] != \ 'user-disabled': msg = "The members resource does not support a modify with " \ "the value of the 'session' attribute as %s. " \ diff --git a/f5/bigip/tm/ltm/test/functional/test_pool.py b/f5/bigip/tm/ltm/test/functional/test_pool.py index 20eba2eeb..5fefd2b6d 100644 --- a/f5/bigip/tm/ltm/test/functional/test_pool.py +++ b/f5/bigip/tm/ltm/test/functional/test_pool.py @@ -219,6 +219,16 @@ def test_update_session_state_kwargs(self, request, bigip): m2.session = m1.session m2.state = m1.state + def test_session_modify(self, request, bigip): + m1, pool = setup_member_test(request, bigip, 'membertestpool1', + 'Common') + assert m1.session == 'user-enabled' + m1.modify(session='user-disabled') + m2 = pool.members_s.members.load( + name='192.168.15.15:80', partition='Common') + assert m2.session == 'user-disabled' + assert m1.session == m2.session + def test_state_modify(self, request, bigip): m1, pool = setup_member_test(request, bigip, 'membertestpool1', 'Common')