def test_delete(self): members = [[], [fake_objs.FakeMember()]] hms = [None, fake_objs.FakeHM('PING')] persistences = [None, 'SOURCE_IP', 'HTTP_COOKIE'] listeners = [False, True] for m in members: for hm in hms: for pers in persistences: for lst in listeners: self.a.reset_mocks() pool = fake_objs.FakePool('TCP', 'ROUND_ROBIN', pers, lst, members=m, hm=hm) self.a.pool.delete(None, pool) self.print_mocks() (self.a.last_client.slb.service_group.delete. assert_called_with(pool.id)) if pers == 'SOURCE_IP': (self.a.last_client.slb.template. src_ip_persistence.delete.assert_called_with( pool.id)) elif pers == 'HTTP_COOKIE': (self.a.last_client.slb.template. cookie_persistence.delete.assert_called_with( pool.id))
def test_delete(self): m = fake_objs.FakeMember(False, pool=mock.MagicMock()) ip = self.a.member.neutron.member_get_ip(None, m, True) self.set_count_1() self.a.member.delete(None, m) self.a.last_client.slb.server.delete(ip)
def test_delete_count_gt_one(self): m = fake_objs.FakeMember(False, pool=mock.MagicMock()) ip = self.a.member.neutron.member_get_ip(None, m, True) name = self.a.member._get_name(m, ip) self.set_count_2() self.a.member.delete(None, m) self.a.last_client.slb.service_group.member.delete.assert_called_with( m.pool_id, name, m.protocol_port)
def test_delete_count_gt_one(self): m = fake_objs.FakeMember() ip = self.a.member.neutron.member_get_ip(None, m, True) name = self.a.member._get_name(m, ip) self.set_count_2() self.a.member.delete(None, m) pool_name = self.a.member._pool_name(None, m['pool_id']) self.a.last_client.slb.service_group.member.delete.assert_called_with( pool_name, name, m['protocol_port'])
def test_delete(self): pool = fake_objs.FakePool('TCP', 'LEAST_CONNECTIONS') pool.members = [fake_objs.FakeMember()] pool.health_monitors_status = [{'monitor_id': 'hm1', "pools": [pool]}] self.a.pool.neutron.openstack_driver._pool_get_hm.return_value = fake_objs.FakeHM( ) self._test_delete(pool) (self.a.last_client.slb.service_group.delete.assert_called_with( pool['id']))
def test_update_down(self): m = fake_objs.FakeMember(False, pool=mock.MagicMock()) ip = self.a.member.neutron.member_get_ip(None, m, True) name = self.a.member._get_name(m, ip) self.a.member.update(None, m, m) self.a.last_client.slb.service_group.member.update.assert_called_with( m.pool.id, name, m.protocol_port, self.a.last_client.slb.DOWN, axapi_args={'member': {}})
def test_delete_with_hm_dissociates_hm(self): pool = fake_objs.FakePool('TCP', 'LEAST_CONNECTIONS') hm = fake_objs.FakeHM("TCP") hm.pools.append(fake_objs.FakePool('TCP', 'LEAST_CONNECTIONS')) pool.members = [fake_objs.FakeMember()] pool.health_monitors_status = [{'monitor_id': 'hm1', "pools": [pool]}] self.a.pool.neutron.openstack_driver._pool_get_hm.return_value = hm self._test_delete(pool) self.a.last_client.slb.service_group.update.assert_called_with( "id1", health_monitor="", health_check_disable=True)
def test_update_down(self): m = fake_objs.FakeMember(admin_state_up=False) ip = self.a.member.neutron.member_get_ip(None, m, True) name = self.a.member._get_name(m, ip) self.a.member.update(None, m, m) pool_name = self.a.member._pool_name(None, m['pool_id']) self.a.last_client.slb.service_group.member.update.assert_called_with( pool_name, name, m['protocol_port'], self.a.last_client.slb.DOWN, axapi_args={'member': {}})
def _test_create(self, admin_state_up=True, uuid_name=False, conn_limit=8000000): if uuid_name: old = self.a.config.get('member_name_use_uuid') self.a.config._config.member_name_use_uuid = True m = fake_objs.FakeMember(admin_state_up=admin_state_up, pool=mock.MagicMock()) ip = self.a.member.neutron.member_get_ip(None, m, True) if uuid_name: name = m.id else: name = self.a.member._get_name(m, ip) self.a.member.create(None, m) if admin_state_up: status = self.a.last_client.slb.UP else: status = self.a.last_client.slb.DOWN # TODO(mdurrant) - can we do this a better way without an if? if conn_limit < 1 or conn_limit > 8000000: self.a.last_client.slb.server.create.assert_called_with( name, ip, status=status, config_defaults=mock.ANY, axapi_args={'server': {}}) else: self.a.last_client.slb.server.create.assert_called_with( name, ip, status=status, config_defaults=mock.ANY, axapi_args={'server': { 'conn-limit': conn_limit }}) self.a.last_client.slb.service_group.member.create.assert_called_with( m.pool.id, name, m.protocol_port, status=status, axapi_args={'member': {}}) if uuid_name: self.a.config._config.member_name_use_uuid = old
def test_create_empty_name_noexception(self): self.a.config.get_member_expressions = self._get_expressions_mock admin_state = self.a.last_client.slb.UP m = fake_objs.FakeMember(admin_state_up=admin_state, pool=mock.MagicMock()) m.name = None handler = self.a.member handler.create(None, m) self.a.last_client.slb.server.create.assert_called_with( mock.ANY, mock.ANY, status=mock.ANY, config_defaults={}, axapi_args={'server': {}})
def _test_create_expressions(self, os_name, pattern, expressions=None): self.a.config.get_member_expressions = self._get_expressions_mock expressions = expressions or self.a.config.get_member_expressions() expected = expressions.get(pattern, {}).get("json", {}) admin_state = self.a.last_client.slb.UP m = fake_objs.FakeMember(admin_state_up=admin_state, pool=mock.MagicMock()) m.name = os_name handler = self.a.member handler.create(None, m) # s = str(self.a.last_client.mock_calls) self.a.last_client.slb.server.create.assert_called_with( mock.ANY, mock.ANY, status=mock.ANY, config_defaults=expected, axapi_args={'server': {}})
def _test_create(self, admin_state_up=True, uuid_name=False, conn_limit=800000): if uuid_name: old = self.a.config.get('member_name_use_uuid') self.a.config._config.member_name_use_uuid = True m = fake_objs.FakeMember(admin_state_up=admin_state_up) ip = self.a.member.neutron.member_get_ip(None, m, True) if uuid_name: name = m['id'] else: name = self.a.member._get_name(m, ip) self.a.member.create(None, m) if admin_state_up: status = self.a.last_client.slb.UP else: status = self.a.last_client.slb.DOWN if conn_limit < 1 or conn_limit > 8000000: self.a.last_client.slb.server.create.assert_called_with( name, ip, status=status, axapi_args={'server': {}}) else: self.a.last_client.slb.server.create.assert_called_with( name, ip, status=status, axapi_args={'server': { 'conn-limit': conn_limit }}) pool_name = self.a.member._pool_name(None, m['pool_id']) self.a.last_client.slb.service_group.member.create.assert_called_with( pool_name, name, m['protocol_port'], status=status, axapi_args={'member': {}}) if uuid_name: self.a.config._config.member_name_use_uuid = old
def test_count(self): self.a.member.neutron.member_count( None, fake_objs.FakeMember(pool=mock.MagicMock()))
def test_get_name(self): m = fake_objs.FakeMember(pool=mock.MagicMock()) z = self.a.member._get_name(m, '1.1.1.1') self.assertEqual(z, '_get-o_1_1_1_1_neutron')
def test_get_ip(self): m = fake_objs.FakeMember(pool=mock.MagicMock()) self.a.member.neutron.member_get_ip(None, m, False) self.print_mocks() self.a.neutron.member_get_ip.assert_called_with(None, m, False)
def test_delete_removes_monitor(self): pool = fake_objs.FakePool('TCP', 'LEAST_CONNECTIONS') pool.members = [fake_objs.FakeMember()] pool.health_monitors_status = [{'monitor_id': "hm1"}] self.a.pool.delete(None, pool) self.a.last_client.slb.hm.delete.assert_called()
def test_get_ip(self): m = fake_objs.FakeMember() self.a.member.neutron.member_get_ip(None, m, False) self.a.openstack_driver._member_get_ip.assert_called_with( None, m, False)
def test_get_name(self): m = fake_objs.FakeMember() z = self.a.member._get_name(m, '1.1.1.1') self.assertEqual(z, '_ten1_1_1_1_1_neutron')
def test_count(self): self.a.member.neutron.member_count(None, fake_objs.FakeMember())