def init_voice_verify(): """ initial voice verify service Example for config.py: "voice_verify": { "enabled": True, "provider": "rong_lian", "rong_lian": { ... ... } } """ provider_name = safe_get_config("voice_verify.provider", None) enabled = safe_get_config("voice_verify.enabled", False) if not enabled: log.warn("voice verify disabled") factory.provide("voice_verify", DisabledVoiceVerify) elif provider_name and safe_get_config("voice_verify." + provider_name, None): log.warn("Voice verify initialized to:" + provider_name) # if provider other than Ronglian is supported, update following lines factory.provide("voice_verify", RonglianVoiceVerify) else: log.warn( "either voice verify provider name or provider config is missing, Please check your configuration" ) raise ConfigurationException("voice_verify.provider")
def init_sms(): """ initial SMS service """ provider_name = safe_get_config("sms.provider", None) enabled = safe_get_config("sms.enabled", False) if not enabled: log.warn("SMS service disabled") factory.provide("sms", DisabledSms) elif provider_name and safe_get_config("sms." + provider_name, None): log.warn("SMS initialized to:" + provider_name) # if provider other than ChinaTelecom is supported, update following lines factory.provide("sms", ChinaTelecomSms) else: log.warn("Either SMS provider name or provider config is missing, Please check your configuration") raise ConfigurationException("sms.provider")
def init_hackathon_storage(): from hackathon.storage import LocalStorage factory.provide("storage", LocalStorage)
def init_expr_components(): from .expr import ExprManager, K8SExprStarter factory.provide("expr_manager", ExprManager) factory.provide("k8s_service", K8SExprStarter)
def init_db(): from .hmongo import db factory.provide("db", db, suspend_callable=True)
def init_components(): """Init hackathon factory""" from hackathon.user import UserManager, UserProfileManager, OAuthLoginManager from hackathon.hack import HackathonManager, AdminManager, TeamManager, DockerHostManager, \ RegisterManager, HackathonTemplateManager, Cryptor from hackathon.template import TemplateLibrary from hackathon.remote.guacamole import GuacamoleInfo from hackathon.cache.cache_mgr import CacheManagerExt # dependencies MUST be provided in advance factory.provide("util", Utility) factory.provide("log", log) init_db() # utils init_voice_verify() init_sms() factory.provide("email", Email) # cache factory.provide("cache", CacheManagerExt) # scheduler factory.provide("scheduler", scheduler) # business components factory.provide("user_manager", UserManager) factory.provide("user_profile_manager", UserProfileManager) factory.provide("oauth_login_manager", OAuthLoginManager) factory.provide("hackathon_manager", HackathonManager) factory.provide("register_manager", RegisterManager) factory.provide("cryptor", Cryptor) factory.provide("docker_host_manager", DockerHostManager) factory.provide("hackathon_template_manager", HackathonTemplateManager) factory.provide("template_library", TemplateLibrary) factory.provide("admin_manager", AdminManager) factory.provide("team_manager", TeamManager) factory.provide("guacamole", GuacamoleInfo) # experiment starter init_expr_components() # health check items factory.provide("health_check_hosted_docker", get_class("hackathon.health.health_check.HostedDockerHealthCheck")) factory.provide("health_check_guacamole", get_class("hackathon.health.health_check.GuacamoleHealthCheck")) factory.provide("health_check_mongodb", get_class("hackathon.health.health_check.MongoDBHealthCheck")) # docker factory.provide("hosted_docker_proxy", get_class("hackathon.docker.hosted_docker.HostedDockerFormation")) # storage init_hackathon_storage()