diff --git a/src/backend/langflow/services/manager.py b/src/backend/langflow/services/manager.py index e74146a20..496544829 100644 --- a/src/backend/langflow/services/manager.py +++ b/src/backend/langflow/services/manager.py @@ -99,51 +99,6 @@ class ServiceManager: service_manager = ServiceManager() -def initialize_services(): - """ - Initialize all the services needed. - """ - from langflow.services.database import factory as database_factory - from langflow.services.cache import factory as cache_factory - from langflow.services.chat import factory as chat_factory - from langflow.services.settings import factory as settings_factory - from langflow.services.session import factory as session_service_factory - from langflow.services.auth import factory as auth_factory - from langflow.services.task import factory as task_factory - - service_manager.register_factory(settings_factory.SettingsServiceFactory()) - service_manager.register_factory( - database_factory.DatabaseServiceFactory(), - dependencies=[ServiceType.SETTINGS_SERVICE], - ) - service_manager.register_factory( - cache_factory.CacheServiceFactory(), dependencies=[ServiceType.SETTINGS_SERVICE] - ) - - service_manager.register_factory( - auth_factory.AuthServiceFactory(), dependencies=[ServiceType.SETTINGS_SERVICE] - ) - - service_manager.register_factory(chat_factory.ChatServiceFactory()) - service_manager.register_factory( - session_service_factory.SessionServiceFactory(), - dependencies=[ServiceType.CACHE_SERVICE], - ) - service_manager.register_factory( - task_factory.TaskServiceFactory(), - ) - - # Test cache connection - service_manager.get(ServiceType.CACHE_SERVICE) - # Test database connection - service_manager.get(ServiceType.DATABASE_SERVICE) - - # Test cache connection - service_manager.get(ServiceType.CACHE_SERVICE) - # Test database connection - service_manager.get(ServiceType.DATABASE_SERVICE) - - def reinitialize_services(): """ Reinitialize all the services needed. diff --git a/src/backend/langflow/services/utils.py b/src/backend/langflow/services/utils.py index b7d93184f..c17963bc3 100644 --- a/src/backend/langflow/services/utils.py +++ b/src/backend/langflow/services/utils.py @@ -11,6 +11,37 @@ from .getters import get_db_service, get_session, get_settings_service from loguru import logger +from langflow.services.database import factory as database_factory +from langflow.services.cache import factory as cache_factory +from langflow.services.chat import factory as chat_factory +from langflow.services.settings import factory as settings_factory +from langflow.services.auth import factory as auth_factory +from langflow.services.task import factory as task_factory +from langflow.services.session import factory as session_service_factory # type: ignore + +FACTORIES_AND_DEPS = [ + (settings_factory.SettingsServiceFactory(), []), + ( + auth_factory.AuthServiceFactory(), + [ServiceType.SETTINGS_SERVICE], + ), + ( + database_factory.DatabaseServiceFactory(), + [ServiceType.SETTINGS_SERVICE], + ), + ( + cache_factory.CacheServiceFactory(), + [ServiceType.SETTINGS_SERVICE], + ), + (chat_factory.ChatServiceFactory(), []), + (task_factory.TaskServiceFactory(), []), + ( + session_service_factory.SessionServiceFactory(), + [ServiceType.CACHE_SERVICE], + ), +] + + def get_or_create_super_user(session: Session, username, password, is_default): from langflow.services.database.models.user.user import User @@ -99,17 +130,21 @@ def teardown_superuser(settings_service, session): # from the database. if settings_service.auth_settings.AUTO_LOGIN: - logger.debug("AUTO_LOGIN is set to True. Removing default superuser.") - username = settings_service.auth_settings.SUPERUSER - from langflow.services.database.models.user.user import User + try: + logger.debug("AUTO_LOGIN is set to True. Removing default superuser.") + username = settings_service.auth_settings.SUPERUSER + from langflow.services.database.models.user.user import User - user = session.query(User).filter(User.username == username).first() - if user and user.is_superuser: - session.delete(user) - session.commit() - logger.debug("Default superuser removed successfully.") - else: - logger.debug("Default superuser not found.") + user = session.query(User).filter(User.username == username).first() + if user and user.is_superuser: + session.delete(user) + session.commit() + logger.debug("Default superuser removed successfully.") + else: + logger.debug("Default superuser not found.") + except Exception as exc: + logger.exception(exc) + raise RuntimeError("Could not remove default superuser.") from exc def teardown_services(): @@ -155,36 +190,7 @@ def initialize_services(): """ Initialize all the services needed. """ - from langflow.services.database import factory as database_factory - from langflow.services.cache import factory as cache_factory - from langflow.services.chat import factory as chat_factory - from langflow.services.settings import factory as settings_factory - from langflow.services.auth import factory as auth_factory - from langflow.services.task import factory as task_factory - from langflow.services.session import factory as session_service_factory # type: ignore - - factory_and_dependencies = [ - (settings_factory.SettingsServiceFactory(), []), - ( - auth_factory.AuthServiceFactory(), - [ServiceType.SETTINGS_SERVICE], - ), - ( - database_factory.DatabaseServiceFactory(), - [ServiceType.SETTINGS_SERVICE], - ), - ( - cache_factory.CacheServiceFactory(), - [ServiceType.SETTINGS_SERVICE], - ), - (chat_factory.ChatServiceFactory(), []), - (task_factory.TaskServiceFactory(), []), - ( - session_service_factory.SessionServiceFactory(), - [ServiceType.CACHE_SERVICE], - ), - ] - for factory, dependencies in factory_and_dependencies: + for factory, dependencies in FACTORIES_AND_DEPS: try: service_manager.register_factory(factory, dependencies=dependencies) except Exception as exc: