def post(self, member): """Create a new member.""" LOG.info("Create member [member_name=%s]" % member.name) if not (member.name and member.protocol_port and member.address and member.listener_name): raise exceptions.InputException( 'You must provide at least name, protocol_port, ' 'listener_name and address of the member.') pecan.response.status = 201 values = member.to_dict() listener_name = values.pop('listener_name') lb_driver = driver.LB_DRIVER() with db_api.transaction(): listener = db_api.get_listener(listener_name) values['listener_id'] = listener.id member = db_api.create_member(values) db_model = lb_driver.create_member(member) lb_driver.apply_changes() return Member.from_dict(db_model.to_dict())
def test_put(self): driver.LB_DRIVER().update_listener = MOCK_UPDATED_LISTENER resp = self.app.put_json('/v1/listeners/test', FOR_UPDATED_LISTENER) self.assertEqual(200, resp.status_int) self.assertDictEqual(UPDATED_LISTENER, resp.json)
def test_post_dup(self): driver.LB_DRIVER().create_listener = MOCK_DUPLICATE resp = self.app.post_json('/v1/listeners', LISTENER, expect_errors=True) self.assertEqual(409, resp.status_int)
def test_post(self): driver.LB_DRIVER().create_listener = MOCK_LISTENER resp = self.app.post_json('/v1/listeners', LISTENER) self.assertEqual(201, resp.status_int) self.assertDictEqual(LISTENER, resp.json)
def test_put_not_found(self): driver.LB_DRIVER().update_member = MOCK_NOT_FOUND resp = self.app.put_json('/v1/members/123', UPDATED_MEMBER, expect_errors=True) self.assertEqual(404, resp.status_int)
def test_post_dup(self): driver.LB_DRIVER().create_member = MOCK_DUPLICATE member = copy.deepcopy(MEMBER) member['listener_name'] = 'listener_name' resp = self.app.post_json('/v1/members', member, expect_errors=True) self.assertEqual(409, resp.status_int)
def test_put_not_found(self): driver.LB_DRIVER().update_listener = MOCK_NOT_FOUND listener = FOR_UPDATED_LISTENER resp = self.app.put_json('/v1/listeners/test', listener, expect_errors=True) self.assertEqual(404, resp.status_int)
def test_put(self): driver.LB_DRIVER().update_member = MOCK_UPDATED_MEMBER resp = self.app.put_json( '/v1/members/123', UPDATED_MEMBER, ) self.assertEqual(200, resp.status_int) self.assertEqual(UPDATED_MEMBER, resp.json)
def delete(self, name): """Delete the named listener.""" LOG.info("Delete listener [name=%s]" % name) lb_driver = driver.LB_DRIVER() with db_api.transaction(): listener = db_api.get_listener(name) lb_driver.delete_listener(listener) db_api.delete_listener(name) lb_driver.apply_changes()
def test_post(self): driver.LB_DRIVER().create_member = MOCK_MEMBER member = copy.deepcopy(MEMBER) member['listener_name'] = 'listener_name' resp = self.app.post_json( '/v1/members', member, ) self.assertEqual(201, resp.status_int) self.assertEqual(MEMBER, resp.json)
def delete(self, name): """Delete the named member.""" LOG.info("Delete member [name=%s]" % name) lb_driver = driver.LB_DRIVER() with db_api.transaction(): member = db_api.get_member(name) db_api.delete_member(name) lb_driver.delete_member(member) lb_driver.apply_changes()
def put(self, name, listener): """Update an listener.""" LOG.info("Update listener [name=%s, listener=%s]" % (name, listener)) lb_driver = driver.LB_DRIVER() with db_api.transaction(): listener = db_api.update_listener(name, listener.to_dict()) db_model = lb_driver.update_listener(listener) lb_driver.apply_changes() return Listener.from_dict(db_model.to_dict())
def put(self, name, member): """Update a member.""" LOG.info("Update member [member_name=%s]" % name) values = member.to_dict() lb_driver = driver.LB_DRIVER() with db_api.transaction(): member = db_api.update_member(name, values) db_model = lb_driver.update_member(member) lb_driver.apply_changes() return Member.from_dict(db_model.to_dict())
def post(self, listener): """Create a new listener.""" LOG.info("Create listener [listener=%s]" % listener) if not (listener.name and listener.protocol_port and listener.protocol): raise exceptions.InputException( 'You must provide at least name, protocol_port and' ' protocol of the listener.') lb_driver = driver.LB_DRIVER() with db_api.transaction(): listener = db_api.create_listener(listener.to_dict()) db_model = lb_driver.create_listener(listener) lb_driver.apply_changes() return Listener.from_dict(db_model.to_dict())
def test_delete_not_found(self): driver.LB_DRIVER().delete_listener = MOCK_NOT_FOUND resp = self.app.delete('/v1/listeners/123', expect_errors=True) self.assertEqual(404, resp.status_int)
def test_delete(self): driver.LB_DRIVER().delete_listener = MOCK_DELETE resp = self.app.delete('/v1/listeners/123') self.assertEqual(204, resp.status_int)