Exemple #1
0
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")
Exemple #2
0
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")
Exemple #3
0
def init_hackathon_storage():
    from hackathon.storage import LocalStorage
    factory.provide("storage", LocalStorage)
Exemple #4
0
def init_expr_components():
    from .expr import ExprManager, K8SExprStarter
    factory.provide("expr_manager", ExprManager)
    factory.provide("k8s_service", K8SExprStarter)
Exemple #5
0
def init_db():
    from .hmongo import db
    factory.provide("db", db, suspend_callable=True)
Exemple #6
0
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()