def set_cors(context, config: ConfigManager): # session settings context["CORS_ALLOW_CREDENTIALS"] = True whitelist = config.get_list("POLYAXON_CORS_ORIGIN_WHITELIST", is_optional=True, default=[]) context["CORS_ORIGIN_WHITELIST"] = whitelist context["CORS_ORIGIN_ALLOW_ALL"] = False if whitelist else True context["CORS_ALLOW_HEADERS"] = default_headers + ( PolyaxonServiceHeaders.CLI_VERSION, PolyaxonServiceHeaders.CLIENT_VERSION, PolyaxonServiceHeaders.INTERNAL, PolyaxonServiceHeaders.SERVICE, ) ssl_enabled = config.get_boolean("POLYAXON_SSL_ENABLED", is_optional=True, default=False) ssl_redirect_enabled = config.get_boolean("POLYAXON_SSL_REDIRECT_ENABLED", is_optional=True, default=False) context["SSL_ENABLED"] = ssl_enabled context["PROTOCOL"] = "http" context["WS_PROTOCOL"] = "ws" if ssl_enabled: context["SESSION_COOKIE_SECURE"] = True context["CSRF_COOKIE_SECURE"] = True context["SECURE_PROXY_SSL_HEADER"] = ("HTTP_X_FORWARDED_PROTO", "https") context["PROTOCOL"] = "https" context["WS_PROTOCOL"] = "wss" if ssl_redirect_enabled: context["SECURE_SSL_REDIRECT"] = True
def set_cors(context, config: ConfigManager): # session settings context["CORS_ALLOW_CREDENTIALS"] = True allowed_list = config.get_list("POLYAXON_CORS_ALLOWED_ORIGINS", is_optional=True, default=[]) context["CORS_ALLOWED_ORIGINS"] = allowed_list context["CORS_ALLOW_ALL_ORIGINS"] = False if allowed_list else True context["CORS_ALLOW_HEADERS"] = (default_headers + PolyaxonServiceHeaders.get_headers()) ssl_enabled = config.get_boolean("POLYAXON_SSL_ENABLED", is_optional=True, default=False) ssl_redirect_enabled = config.get_boolean("POLYAXON_SSL_REDIRECT_ENABLED", is_optional=True, default=False) context["SSL_ENABLED"] = ssl_enabled context["PROTOCOL"] = "http" context["WS_PROTOCOL"] = "ws" if ssl_enabled: context["SESSION_COOKIE_SECURE"] = True context["CSRF_COOKIE_SECURE"] = True context["SECURE_PROXY_SSL_HEADER"] = ("HTTP_X_FORWARDED_PROTO", "https") context["PROTOCOL"] = "https" context["WS_PROTOCOL"] = "wss" if ssl_redirect_enabled: context["SECURE_SSL_REDIRECT"] = True
def set_api(context, config: ConfigManager, processors: List[str] = None): context["ROOT_URLCONF"] = "polyconf.urls" platform_host = config.get_string("POLYAXON_PLATFORM_HOST", is_optional=True) context["PLATFORM_HOST"] = platform_host def get_allowed_hosts(): allowed_hosts = config.get_string("POLYAXON_ALLOWED_HOSTS", is_optional=True, is_list=True, default=["*"]) allowed_hosts.append(".polyaxon.com") if platform_host: allowed_hosts.append(platform_host) return allowed_hosts context["ALLOWED_HOSTS"] = get_allowed_hosts() processors = processors or [] processors = [ "django.contrib.auth.context_processors.auth", "django.template.context_processors.debug", "django.template.context_processors.media", "django.template.context_processors.static", "django.template.context_processors.tz", "django.contrib.messages.context_processors.messages", "polycommon.settings.context_processors.versions", "polycommon.settings.context_processors.ui_offline", "polycommon.settings.context_processors.ui_enabled", ] + processors context["FRONTEND_DEBUG"] = config.get_boolean("POLYAXON_FRONTEND_DEBUG") template_debug = (config.get_boolean("DJANGO_TEMPLATE_DEBUG", is_optional=True) or config.is_debug_mode) context["UI_ADMIN_ENABLED"] = config.get_boolean( POLYAXON_KEYS_UI_ADMIN_ENABLED, is_optional=True, default=False) context["UI_OFFLINE"] = config.get_boolean(POLYAXON_KEYS_UI_OFFLINE, is_optional=True, default=False) context["UI_ENABLED"] = config.get_boolean(POLYAXON_KEYS_UI_ENABLED, is_optional=True, default=True) context["TEMPLATES_DEBUG"] = template_debug context["LIST_TEMPLATE_CONTEXT_PROCESSORS"] = processors context["TEMPLATES"] = [{ "BACKEND": "django.template.backends.django.DjangoTemplates", "APP_DIRS": True, "OPTIONS": { "debug": template_debug, "context_processors": processors }, }]
def set_celery(context, config: ConfigManager, routes: Dict): context["CELERY_TASK_TRACK_STARTED"] = config.get_boolean( "POLYAXON_CELERY_TASK_TRACK_STARTED", is_optional=True, default=True) context["CELERY_BROKER_POOL_LIMIT"] = config.get_int( "POLYAXON_CELERY_BROKER_POOL_LIMIT", is_optional=True, default=100) context["CELERY_BROKER_BACKEND"] = config.broker_backend confirm_publish = config.get_boolean("POLYAXON_CELERY_CONFIRM_PUBLISH", is_optional=True, default=True) context["CELERY_CONFIRM_PUBLISH"] = confirm_publish if config.is_rabbitmq_broker and confirm_publish: # see https://github.com/celery/celery/issues/5410 for details context["CELERY_BROKER_TRANSPORT_OPTIONS"] = {"confirm_publish": True} context["CELERY_BROKER_URL"] = config.get_broker_url() context["INTERNAL_EXCHANGE"] = config.get_string( "POLYAXON_INTERNAL_EXCHANGE", is_optional=True, default="internal") result_bucked = config.get_string( "POLYAXON_REDIS_CELERY_RESULT_BACKEND_URL", is_optional=True, ) if result_bucked: context["CELERY_RESULT_BACKEND"] = config.get_redis_url( "POLYAXON_REDIS_CELERY_RESULT_BACKEND_URL") context["CELERY_WORKER_PREFETCH_MULTIPLIER"] = config.get_int( "POLYAXON_CELERY_WORKER_PREFETCH_MULTIPLIER", is_optional=True, default=4) eager_mode = config.get_boolean("POLYAXON_CELERY_TASK_ALWAYS_EAGER") context["CELERY_TASK_ALWAYS_EAGER"] = eager_mode if eager_mode: context["CELERY_BROKER_TRANSPORT"] = "memory" context["CELERY_ACCEPT_CONTENT"] = ["application/json"] context["CELERY_TASK_SERIALIZER"] = "json" context["CELERY_RESULT_SERIALIZER"] = "json" context["CELERY_TASK_IGNORE_RESULT"] = True context["CELERY_TIMEZONE"] = config.timezone context["CELERY_HARD_TIME_LIMIT_DELAY"] = config.get_int( "POLYAXON_CELERY_HARD_TIME_LIMIT_DELAY", is_optional=True, default=180) context["CELERY_WORKER_MAX_TASKS_PER_CHILD"] = config.get_int( "POLYAXON_CELERY_WORKER_MAX_TASKS_PER_CHILD", is_optional=True, default=100) context["CELERY_WORKER_MAX_MEMORY_PER_CHILD"] = config.get_int( "POLYAXON_CELERY_WORKER_MAX_MEMORY_PER_CHILD", is_optional=True, default=400000) class Intervals: """All intervals are in seconds""" OPERATIONS_DEFAULT_RETRY_DELAY = config.get_int( "POLYAXON_INTERVALS_OPERATIONS_DEFAULT_RETRY_DELAY", is_optional=True, default=60, ) OPERATIONS_MAX_RETRY_DELAY = config.get_int( "POLYAXON_INTERVALS_OPERATIONS_MAX_RETRY_DELAY", is_optional=True, default=60 * 60, ) RUNS_SCHEDULER = config.get_int("POLYAXON_INTERVALS_RUNS_SCHEDULER", is_optional=True, default=30) context["Intervals"] = Intervals context["CELERY_TASK_ROUTES"] = routes
def set_api(context, config: ConfigManager, processors: List[str] = None): context["ROOT_URLCONF"] = "polyconf.urls" platform_host = config.get_string("POLYAXON_PLATFORM_HOST", is_optional=True) context["PLATFORM_HOST"] = platform_host def get_allowed_hosts(): allowed_hosts = config.get_string("POLYAXON_ALLOWED_HOSTS", is_optional=True, is_list=True, default=["*"]) # type: list if platform_host: allowed_hosts.append(platform_host) if ".polyaxon.com" not in allowed_hosts: allowed_hosts.append(".polyaxon.com") pod_ip = config.get_string("POLYAXON_POD_IP", is_optional=True) if pod_ip: allowed_hosts.append(pod_ip) host_ip = config.get_string("POLYAXON_HOST_IP", is_optional=True) if host_ip: host_cidr = ".".join(host_ip.split(".")[:-1]) allowed_hosts += ["{}.{}".format(host_cidr, i) for i in range(255)] return allowed_hosts context["ALLOWED_HOSTS"] = get_allowed_hosts() processors = processors or [] processors = [ "django.contrib.auth.context_processors.auth", "django.template.context_processors.debug", "django.template.context_processors.request", "django.template.context_processors.media", "django.template.context_processors.static", "django.template.context_processors.tz", "django.contrib.messages.context_processors.messages", "polycommon.settings.context_processors.version", "polycommon.settings.context_processors.assets_version", "polycommon.settings.context_processors.ui_offline", "polycommon.settings.context_processors.ui_enabled", ] + processors context["FRONTEND_DEBUG"] = config.get_boolean("POLYAXON_FRONTEND_DEBUG") template_debug = (config.get_boolean("DJANGO_TEMPLATE_DEBUG", is_optional=True) or config.is_debug_mode) context["UI_ADMIN_ENABLED"] = config.get_boolean( POLYAXON_KEYS_UI_ADMIN_ENABLED, is_optional=True, default=False) context["UI_ASSETS_VERSION"] = config.get_string( POLYAXON_KEYS_UI_ASSETS_VERSION, is_optional=True, default="") context["UI_OFFLINE"] = config.get_boolean(POLYAXON_KEYS_UI_OFFLINE, is_optional=True, default=False) context["UI_ENABLED"] = config.get_boolean(POLYAXON_KEYS_UI_ENABLED, is_optional=True, default=True) context["TEMPLATES_DEBUG"] = template_debug context["LIST_TEMPLATE_CONTEXT_PROCESSORS"] = processors context["TEMPLATES"] = [{ "BACKEND": "django.template.backends.django.DjangoTemplates", "APP_DIRS": True, "OPTIONS": { "debug": template_debug, "context_processors": processors }, }]