def knowledge_webapp(event_loop, app_svc, base_world, data_svc): app_svc.add_service('auth_svc', AuthService()) app_svc.add_service('knowledge_svc', KnowledgeService()) app_svc.add_service('data_svc', DataService()) app_svc.add_service('event_svc', EventService()) app_svc.add_service('file_svc', FileSvc( )) # This needs to be done this way, or it we won't have a valid BaseWorld services = app_svc.get_services() app = web.Application(middlewares=[ authentication_required_middleware_factory(services['auth_svc']), json_request_validation_middleware ]) FactApi(services).add_routes(app) return app
async def initialize(): with open(Path(__file__).parents[1] / 'conf' / 'default.yml', 'r') as fle: BaseWorld.apply_config('main', yaml.safe_load(fle)) with open(Path(__file__).parents[1] / 'conf' / 'payloads.yml', 'r') as fle: BaseWorld.apply_config('payloads', yaml.safe_load(fle)) app_svc = AppService(web.Application(client_max_size=5120**2)) _ = DataService() _ = RestService() _ = PlanningService() _ = LearningService() auth_svc = AuthService() _ = FileSvc() _ = EventService() services = app_svc.get_services() os.chdir(str(Path(__file__).parents[1])) _ = await RestApi(services).enable() await app_svc.register_contacts() await auth_svc.apply(app_svc.application, auth_svc.get_config('users')) await auth_svc.set_login_handlers(services) app_svc.register_subapp('/api/v2', make_app(svcs=services)) aiohttp_apispec.setup_aiohttp_apispec(app=app_svc.application, title='CALDERA', version=version.get_version(), swagger_path='/api/docs', url='/api/docs/swagger.json', static_path='/static/swagger') app_svc.application.middlewares.append( apispec_request_validation_middleware) app_svc.application.middlewares.append(validation_middleware) return app_svc
logging.info('Using main config from %s' % main_config_path) BaseWorld.apply_config('agents', BaseWorld.strip_yml('conf/agents.yml')[0]) BaseWorld.apply_config('payloads', BaseWorld.strip_yml('conf/payloads.yml')[0]) data_svc = DataService() knowledge_svc = KnowledgeService() contact_svc = ContactService() planning_svc = PlanningService(global_variable_owners=[ Executor, Agent, Link, AppConfigGlobalVariableIdentifier ]) rest_svc = RestService() auth_svc = AuthService() file_svc = FileSvc() learning_svc = LearningService() event_svc = EventService() app_svc = AppService(application=web.Application(client_max_size=5120**2)) app_svc.register_subapp('/api/v2', app.api.v2.make_app(app_svc.get_services())) init_swagger_documentation(app_svc.application) if args.fresh: logging.info( "Fresh startup: resetting server data. See %s directory for data backups.", DATA_BACKUP_DIR) asyncio.get_event_loop().run_until_complete(data_svc.destroy()) asyncio.get_event_loop().run_until_complete(knowledge_svc.destroy()) run_tasks(services=app_svc.get_services())
def event_svc(contact_svc, init_base_world): return EventService()