Fix intermittent ipset_manager test failure
Change ipset_manager _refresh_set() to make a copy of the list of IPs when creating a set, instead of using a reference, else any change to the set could update the caller's data. Also made the IpsetManagerTestCase classes always pass maxelem and hashsize to the parent class. Change-Id: I45fc716ab0952b80363b0c7dabae29cda05604dc Closes-bug: #1442377
This commit is contained in:
parent
3d205937de
commit
40a1f410ff
|
@ -11,6 +11,8 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import copy
|
||||
|
||||
from oslo_config import cfg
|
||||
|
||||
from neutron.agent.common import config
|
||||
|
@ -108,7 +110,7 @@ class IpsetManager(object):
|
|||
self._restore_sets(process_input)
|
||||
self._swap_sets(new_set_name, set_name)
|
||||
self._destroy(new_set_name, True)
|
||||
self.ipset_sets[set_name] = member_ips
|
||||
self.ipset_sets[set_name] = copy.copy(member_ips)
|
||||
|
||||
def _del_member_from_set(self, set_name, member_ip):
|
||||
cmd = ['ipset', 'del', set_name, member_ip]
|
||||
|
|
|
@ -27,7 +27,7 @@ FAKE_IPS = ['10.0.0.1', '10.0.0.2', '10.0.0.3', '10.0.0.4',
|
|||
|
||||
|
||||
class BaseIpsetManagerTest(base.BaseTestCase):
|
||||
def setUp(self, maxelem=None, hashsize=None):
|
||||
def setUp(self, maxelem, hashsize):
|
||||
super(BaseIpsetManagerTest, self).setUp()
|
||||
cfg.CONF.register_opts(a_cfg.IPSET_OPTS, 'AGENT')
|
||||
cfg.CONF.set_override('ipset_maxelem', maxelem, 'AGENT')
|
||||
|
@ -105,8 +105,9 @@ class BaseIpsetManagerTest(base.BaseTestCase):
|
|||
class IpsetManagerTestCase(BaseIpsetManagerTest):
|
||||
"""Run all tests, but with maxelem/hashsize values not configured
|
||||
"""
|
||||
def setUp(self):
|
||||
super(IpsetManagerTestCase, self).setUp()
|
||||
def setUp(self, maxelem=None, hashsize=None):
|
||||
super(IpsetManagerTestCase, self).setUp(maxelem=maxelem,
|
||||
hashsize=hashsize)
|
||||
|
||||
def test_set_exists(self):
|
||||
self.add_first_ip()
|
||||
|
@ -145,4 +146,5 @@ class IpsetManagerTestCaseHashArgs(IpsetManagerTestCase):
|
|||
"""Run all the above tests, but with maxelem/hashsize values configured
|
||||
"""
|
||||
def setUp(self):
|
||||
super(IpsetManagerTestCase, self).setUp(maxelem=131072, hashsize=2048)
|
||||
super(IpsetManagerTestCaseHashArgs, self).setUp(maxelem=131072,
|
||||
hashsize=2048)
|
||||
|
|
Loading…
Reference in New Issue