def test_get_listeners(self): created0 = db_api.create_listener(LISTENERS[0]) created1 = db_api.create_listener(LISTENERS[1]) fetched = db_api.get_listeners() self.assertEqual(2, len(fetched)) self.assertEqual(created0, fetched[0]) self.assertEqual(created1, fetched[1])
def test_update_member(self, replace_file): listener = db_api.create_listener({ 'name': 'test_listener', 'description': 'my test settings', 'protocol': 'http', 'protocol_port': 80, 'algorithm': 'roundrobin' }) # Create a listener first. self.haproxy.create_listener(listener) listener = db_api.get_listener('test_listener') member = db_api.create_member({ 'listener_id': listener.id, 'name': 'member1', 'address': '10.0.0.1', 'protocol_port': 80, }) member = self.haproxy.create_member(member) self.assertEqual(80, member.protocol_port) member = db_api.update_member(member.name, {'protocol_port': 8080}) self.haproxy.update_member(member) config_data = replace_file.call_args[0][1] self.assertIn( '\tserver %s %s:%s' % (member.name, member.address, 8080), config_data )
def test_update_listener(self, replace_file): listener = db_api.create_listener({ 'name': 'test_listener', 'description': 'my test settings', 'protocol': 'http', 'protocol_port': 80, 'algorithm': 'roundrobin', 'address': '' }) self.haproxy.create_listener(listener) listener = db_api.get_listener('test_listener') db_api.update_listener(listener.name, {'protocol_port': 8080}) self.haproxy.update_listener(listener) config_data = replace_file.call_args[0][1] self.assertIn( 'frontend %s' % listener.name, config_data ) self.assertIn( 'bind :%s' % 8080, config_data )
def test_commit_multiple_objects(self): db_api.start_tx() try: created = db_api.create_listener(LISTENERS[0]) fetched = db_api.get_listener(created.name) self.assertEqual(created, fetched) created_wb = db_api.create_member(MEMBERS[0]) fetched_wb = db_api.get_member(created_wb.name) self.assertEqual(created_wb, fetched_wb) self.assertTrue(self.is_db_session_open()) db_api.commit_tx() finally: db_api.end_tx() self.assertFalse(self.is_db_session_open()) fetched = db_api.get_listener(created.name) self.assertEqual(created, fetched) fetched_wb = db_api.get_member(created_wb.name) self.assertEqual(created_wb, fetched_wb) self.assertFalse(self.is_db_session_open())
def test_rollback_multiple_objects(self): db_api.start_tx() try: created = db_api.create_listener(LISTENERS[0]) fetched = db_api.get_listener(created['name']) self.assertEqual(created, fetched) created_wb = db_api.create_member(MEMBERS[0]) fetched_wb = db_api.get_member(created_wb.name) self.assertEqual(created_wb, fetched_wb) self.assertTrue(self.is_db_session_open()) db_api.rollback_tx() finally: db_api.end_tx() self.assertFalse(self.is_db_session_open()) self.assertRaises( exc.NotFoundException, db_api.get_listener, created.name ) self.assertRaises( exc.NotFoundException, db_api.get_member, created_wb.name ) self.assertFalse(self.is_db_session_open())
def test_delete_listener(self, replace_file): # Create a listener first. listener = db_api.create_listener({ 'name': 'test_listener', 'description': 'my test settings', 'protocol': 'http', 'protocol_port': 80, 'algorithm': 'roundrobin' }) self.haproxy.create_listener(listener) listener = db_api.get_listener('test_listener') config_data = replace_file.call_args[0][1] self.assertIn('frontend %s' % listener.name, config_data) db_api.delete_listener(listener.name) self.haproxy.delete_listener(listener.name) config_data = replace_file.call_args[0][1] self.assertNotIn('frontend %s' % listener.name, config_data) self.assertRaises(exc.NotFoundException, db_api.get_listener, listener.name)
def test_create_listener_with_options(self, replace_file): listener = db_api.create_listener({ 'name': 'test_listener', 'description': 'my test settings', 'protocol': 'http', 'protocol_port': 80, 'algorithm': 'roundrobin', 'options': { 'option': 'forwardfor', 'reqadd': 'X-Forwarded-Proto:\ https' } }) self.haproxy.create_listener(listener) config_data = replace_file.call_args[0][1] self.assertIn( '\toption forwardfor', config_data ) self.assertIn( '\treqadd X-Forwarded-Proto:\ https', config_data )
def test_create_member(self, replace_file): listener = db_api.create_listener({ 'name': 'test_listener', 'description': 'my test settings', 'protocol': 'http', 'protocol_port': 80, 'algorithm': 'roundrobin' }) # Create a listener first. self.haproxy.create_listener(listener) listener = db_api.get_listener('test_listener') member = db_api.create_member({ 'listener_id': listener.id, 'name': 'member1', 'address': '10.0.0.1', 'protocol_port': 80, }) self.haproxy.create_member(member) member = db_api.get_member('member1') self.assertEqual('10.0.0.1', member.address) self.assertEqual(2, replace_file.call_count) config_data = replace_file.call_args[0][1] self.assertIn( '\tserver %s %s:%s' % (member.name, member.address, member.protocol_port), config_data)
def test_delete_listener(self): created = db_api.create_listener(LISTENERS[0]) fetched = db_api.get_listener(created.name) self.assertEqual(created, fetched) db_api.delete_listener(created.name) self.assertRaises(exc.NotFoundException, db_api.get_listener, created.name)
def test_create_and_get_and_load_listener(self): created = db_api.create_listener(LISTENERS[0]) fetched = db_api.get_listener(created.name) self.assertEqual(created, fetched) fetched = db_api.load_listener(created.name) self.assertEqual(created, fetched) self.assertIsNone(db_api.load_listener("not-existing-id"))
def test_update_listener(self): created = db_api.create_listener(LISTENERS[0]) self.assertIsNone(created.updated_at) updated = db_api.update_listener(created.name, {"description": "my new desc"}) self.assertEqual("my new desc", updated.description) fetched = db_api.get_listener(created.name) self.assertEqual(updated, fetched) self.assertIsNotNone(fetched.updated_at)
def test_delete_listener(self): created = db_api.create_listener(LISTENERS[0]) fetched = db_api.get_listener(created.name) self.assertEqual(created, fetched) db_api.delete_listener(created.name) self.assertRaises( exc.NotFoundException, db_api.get_listener, created.name )
def test_delete_member(self, replace_file): listener = db_api.create_listener({ 'name': 'test_listener', 'description': 'my test settings', 'protocol': 'http', 'protocol_port': 80, 'algorithm': 'roundrobin' }) # Create a listener first. self.haproxy.create_listener(listener) listener = db_api.get_listener('test_listener') member = db_api.create_member({ 'listener_id': listener.id, 'name': 'member1', 'address': '10.0.0.1', 'protocol_port': 80, }) self.haproxy.create_member(member) member = db_api.get_member('member1') config_data = replace_file.call_args[0][1] self.assertIn( '\tserver %s %s:%s' % (member.name, member.address, member.protocol_port), config_data ) db_api.delete_member(member.name) self.haproxy.delete_member(member) config_data = replace_file.call_args[0][1] self.assertNotIn( '\tserver %s %s:%s' % (member.name, member.address, member.protocol_port), config_data ) self.assertRaises( exc.NotFoundException, db_api.get_member, member.name )
def test_update_listener(self): created = db_api.create_listener(LISTENERS[0]) self.assertIsNone(created.updated_at) updated = db_api.update_listener( created.name, {'description': 'my new desc'} ) self.assertEqual('my new desc', updated.description) fetched = db_api.get_listener(created.name) self.assertEqual(updated, fetched) self.assertIsNotNone(fetched.updated_at)
def test_create_listener(self, replace_file): listener = db_api.create_listener({ 'name': 'test_listener', 'description': 'my test settings', 'protocol': 'http', 'protocol_port': 80, 'algorithm': 'roundrobin' }) self.haproxy.create_listener(listener) listener = db_api.get_listener('test_listener') self.assertEqual('roundrobin', listener.algorithm) config_data = replace_file.call_args[0][1] self.assertIn('frontend %s' % listener.name, config_data)
def test_create_listener_with_ssl(self, replace_file): listener = db_api.create_listener({ 'name': 'test_listener', 'description': 'my test settings', 'address': '', 'protocol': 'http', 'protocol_port': 80, 'algorithm': 'roundrobin', 'ssl_info': {'path': '/config/cert.pem', 'options': ['no-sslv3']} }) self.haproxy.create_listener(listener) config_data = replace_file.call_args[0][1] self.assertIn( '\tbind :80 ssl crt /config/cert.pem no-sslv3', config_data )
def test_create_listener_with_ssl(self, replace_file): listener = db_api.create_listener({ 'name': 'test_listener', 'description': 'my test settings', 'address': '', 'protocol': 'http', 'protocol_port': 80, 'algorithm': 'roundrobin', 'ssl_info': { 'path': '/config/cert.pem', 'options': ['no-sslv3'] } }) self.haproxy.create_listener(listener) config_data = replace_file.call_args[0][1] self.assertIn('\tbind :80 ssl crt /config/cert.pem no-sslv3', config_data)
def test_create_listener_with_options(self, replace_file): listener = db_api.create_listener({ 'name': 'test_listener', 'description': 'my test settings', 'protocol': 'http', 'protocol_port': 80, 'algorithm': 'roundrobin', 'options': { 'option': 'forwardfor', 'reqadd': 'X-Forwarded-Proto:\ https' } }) self.haproxy.create_listener(listener) config_data = replace_file.call_args[0][1] self.assertIn('\toption forwardfor', config_data) self.assertIn('\treqadd X-Forwarded-Proto:\ https', config_data)
def test_rollback_multiple_objects(self): db_api.start_tx() try: created = db_api.create_listener(LISTENERS[0]) fetched = db_api.get_listener(created["name"]) self.assertEqual(created, fetched) created_wb = db_api.create_member(MEMBERS[0]) fetched_wb = db_api.get_member(created_wb.name) self.assertEqual(created_wb, fetched_wb) self.assertTrue(self.is_db_session_open()) db_api.rollback_tx() finally: db_api.end_tx() self.assertFalse(self.is_db_session_open()) self.assertRaises(exc.NotFoundException, db_api.get_listener, created.name) self.assertRaises(exc.NotFoundException, db_api.get_member, created_wb.name) self.assertFalse(self.is_db_session_open())
def test_delete_listener(self, replace_file): # Create a listener first. listener = db_api.create_listener({ 'name': 'test_listener', 'description': 'my test settings', 'protocol': 'http', 'protocol_port': 80, 'algorithm': 'roundrobin' }) self.haproxy.create_listener(listener) listener = db_api.get_listener('test_listener') config_data = replace_file.call_args[0][1] self.assertIn( 'frontend %s' % listener.name, config_data ) db_api.delete_listener(listener.name) self.haproxy.delete_listener(listener.name) config_data = replace_file.call_args[0][1] self.assertNotIn( 'frontend %s' % listener.name, config_data ) self.assertRaises( exc.NotFoundException, db_api.get_listener, listener.name )
def test_listener_repr(self): s = db_api.create_listener(LISTENERS[0]).__repr__() self.assertIn('Listener ', s) self.assertIn("'description': 'Test Listener #1'", s) self.assertIn("'name': 'listener1'", s)
def test_listener_repr(self): s = db_api.create_listener(LISTENERS[0]).__repr__() self.assertIn("Listener ", s) self.assertIn("'description': 'Test Listener #1'", s) self.assertIn("'name': 'listener1'", s)