class config: DEFAULT_USER_AGENT = env.str('DEFAULT_USER_AGENT', default='Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.91 Safari/537.36') BASE_URL = env.str('BASE_URL', default='https://www.olx.ua/') PHONE_URL = env.str('PHONE_URL', default='https://www.olx.ua/ajax/misc/contact/phone/') CATEGORY = env.str('CATEGORY', default='nedvizhimost') SUB_CATEGORY = env.str('SUB_CATEGORY', default='arenda-kvartir') SUB_SUB_CATEGORY = env.str('SUB_SUB_CATEGORY', default='dolgosrochnaya-arenda-kvartir') CITY = env.str('CITY', default='odessa') DISTRICT_ID = env.int('DISTRICT_ID', default=89) MIN_PRICE = env.int('MIN_PRICE', default=1000) MAX_PRICE = env.int('MAX_PRICE', default=5000) MIN_ROOMS = env.int('MIN_ROOMS', default=1) MAX_ROOMS = env.int('MAX_ROOMS', default=1) WITH_PHOTOS = int(env.bool('WITH_PHOTOS', default=True)) WITH_PROMOTED = env.bool('WITH_PROMOTED', default=False) PUBLICATION_DATE = [item.lower() for item in env.list('PUBLICATION_DATE', default=['сегодня', 'вчера'])] USER_EMAIL = env.str('USER_EMAIL', default=None) USER_PASSWORD = env.str('USER_PASSWORD', default=None) DB_CONFIG = { 'apiKey': env.str('DB_API_KEY', default=''), 'authDomain': env.str('DB_AUTH_DOMAIN', default=''), 'databaseURL': env.str('DB_DATABASE_URL', default=''), 'storageBucket': env.str('DB_STORAGE_BUCKET', default=''), } TELEGRAM_BOT_API_URL = env.str('TELEGRAM_BOT_API_URL', default='https://api.telegram.org/bot') TELEGRAM_BOT_KEY = env.str('TELEGRAM_BOT_KEY', default=None) TELEGRAM_CHAT_IDS = env.list('TELEGRAM_CHAT_IDS', default=[]) LOG_FILENAME = env.str('LOG_FILENAME', default='olx_parser_log')
def get_list_key(name, required=False): if name in DEFAULTS: default = DEFAULTS[name] else: default = None if not (data := env.list(name, default=default)) and not required: log.warn('No list key: ' + name) return []
def test_list(): list_str = ['foo', 'bar'] assert_type_value(list, list_str, env('LIST_STR', cast=list)) assert_type_value(list, list_str, env.list('LIST_STR')) assert_type_value(list, list_str, env.list('LIST_STR_WITH_SPACES')) list_int = [1, 2, 3] assert_type_value(list, list_int, env('LIST_INT', cast=list, subcast=int)) assert_type_value(list, list_int, env.list('LIST_INT', subcast=int)) assert_type_value(list, list_int, env.list('LIST_INT_WITH_SPACES', subcast=int)) assert_type_value(list, [], env.list('BLANK', subcast=int))
def _is_user_allowed(self): admins = env.list('BOT_ADMINS', default=[]) if self.user not in admins: self.bot.say('<@{user}> Vous n\'avez pas autorité sur moi. Et bim.'.format(user=self.user), self.channel) return False return True
class Config: DISABLE_AUTH = False SECRET_KEY = os.urandom(16) # Файл с переменными ".env" env.read_envfile() LOG_LEVEL = env.str('LOG_LEVEL', default='INFO') DEBUG = False if LOG_LEVEL == 'DEBUG': DEBUG = True REST_TIME = env.int('REST_TIME', default=4) APPNAME = env.str('APPNAME', default='default application') OLD_DAYS_LOGINS = env.int('OLD_LOGINS', default=17) PREFIX_OO = env.list('PREFIX_OO', default=[]) # options for flask LOGGER_NAME = APPNAME API_HOST = env.str('API_HOST', default='localhost') API_PORT = env.int('API_PORT', default=5050) CSRF_ENABLED = True DISABLE_REAL_NAMES = env.bool('DISABLE_REAL_NAMES', default=False) # options for base DB_HOST = env.str('DB_HOST', default='localhost') DB_PORT = env.int('DB_PORT', default=5432) DB_BASE = env.str('DB_BASE', default='postgres') DB_USER = env.str('DB_USER', default='postgres') DB_PASS = env.str('DB_PASS', default='') # options for LDAP LD_SERVER = env.str('LD_SERVER', default='ldap://localhost:389') LD_USER = env.str('LD_USER', default='') LD_PASS = env.str('LD_PASS', default='') LD_BASE_DN = env.str('LD_BASE_DN', default='') LD_PAGE_SIZE = env.int('LD_PAGE_SIZE', default=1000)
########################################################## # Constants CURRENT_FILE_DIR, _ = os.path.split(__file__) DATA_DIR_PATH = "%s/../../_data/image/faces" % CURRENT_FILE_DIR IMG_FACE_PREDICTOR_FILE = env.str( "IMG_FACE_PREDICTOR_FILE", default="%s/shape_predictor_68_face_landmarks.dat" % DATA_DIR_PATH) IMG_FACE_RECOGNIZER_FILE = env.str( "IMG_FACE_RECOGNIZER_FILE", default="%s/dlib_face_recognition_resnet_model_v1.dat" % DATA_DIR_PATH) IMG_FACE_TEMPLATE_FILE = env.str("IMG_FACE_TEMPLATE_FILE", default="%s/openface_68_face_template.npy" % DATA_DIR_PATH) KEY_INDICES = env.list("KEY_INDICES", default=[39, 42, 57], subcast=int) # INNER_EYES_AND_BOTTOM_LIP FACE_SIZE = env.int("FACE_SIZE", default=200) ########################################################## # Initialization logger = logging.getLogger(__name__) ########################################################## # Functions def prepare_template(face_template_file): # type: (FilePath) -> List[int] face_template = np.load(face_template_file) tpl_min, tpl_max = np.min(face_template, axis=0), np.max(face_template,
from spotify_client.config import Config # Spotify OAuth scope constants SPOTIFY_PLAYLIST_MODIFY_SCOPE = 'playlist-modify-public' SPOTIFY_TOP_ARTIST_READ_SCOPE = 'user-top-read' SPOTIFY_UPLOAD_PLAYLIST_IMAGE = 'ugc-image-upload' # Spotify Definitions SPOTIFY = { 'client_id': env.str('MTDJ_SPOTIFY_CLIENT_ID', default='__spotify_client_id_not_set__'), 'secret_key': env.str('MTDJ_SPOTIFY_SECRET_KEY', default='__spotify_secret_key_not_set__'), 'categories': env.list('MTDJ_SPOTIFY_CATEGORIES', default=['hiphop', 'rock', 'chill']), 'max_songs_from_list': env.int('MTDJ_SPOTIFY_MAX_SONGS_FROM_LIST', default=10), 'max_songs_from_category': env.int('MTDJ_SPOTIFY_MAX_SONGS_FROM_CATEGORY', default=25), 'max_playlist_from_category': env.int('MTDJ_SPOTIFY_MAX_PLAYLISTS_FROM_CATEGORY', default=10), 'auth_redirect_uri': env.str('MTDJ_SPOTIFY_REDIRECT_URI', default='https://moodytunes.vm/spotify/callback/'), 'auth_user_token_timeout': 60 * 60, # User auth token is good for one hour 'auth_user_scopes': [ SPOTIFY_PLAYLIST_MODIFY_SCOPE, SPOTIFY_TOP_ARTIST_READ_SCOPE, SPOTIFY_UPLOAD_PLAYLIST_IMAGE ],
with warnings.catch_warnings(record=True): env.read_envfile() # Attempt to load environment from a .env file # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = env("SECRET_KEY") # SECURITY WARNING: don't run with debug turned on in production! DEBUG = env.bool("DEBUG", default=False) ALLOWED_HOSTS = env.list("ALLOWED_HOSTS", default=[]) # Application definition INSTALLED_APPS = [ "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", "django.contrib.sessions", "django.contrib.messages", "django.contrib.staticfiles", # Local Apps "recipes", # Third Party "rest_framework", "drf_yasg",
if isfile('.env'): env.read_envfile('.env') else: raise SystemExit('Create an env-file please.!') MONGO_HOST = os.getenv('MONGO_HOST') MONGO_DB_NAME = env.str('MONGO_DB_NAME') COLLECTION_NAME = env.str('COLLECTION_NAME') JWT_SECRET_KEY = env.str('JWT_SECRET_KEY') JWT_ALGORITHM = env.str('JWT_ALGORITHM') PORT = env.int('PORT') SERVICES = env.list('SERVICES') try: ADMIN_LOGIN = env.str('ADMIN_LOGIN') ADMIN_PASSWORD = env.str('ADMIN_PASSWORD') except envparse.ConfigurationError: ADMIN_PASSWORD, ADMIN_LOGIN = None, None def setup_app(app: Application): if isfile('config.yaml'): TRAFARET = T.Dict({ T.Key('services'): T.List( T.Dict({
environment=env, stderr=True, detach=True, volumes=volumes, command='./.ci/travis/script.bash') except docker.errors.ContainerError as err: return False, err exit = container.wait() if exit: return False, container.logs(stream=False, stderr=True, stdout=True) return True, '' docker_tags = env.list('PYMOR_DOCKER_TAG', default=['3.5', '3.6', '3.7-rc']) pytest_marker = env.list('PYMOR_PYTEST_MARKER', default=["None", 'PIP_ONLY', 'MPI']) commit = subprocess.check_output(['git', 'rev-parse', 'HEAD']).decode().strip() variations = list(product(docker_tags, pytest_marker)) if '3.6' in docker_tags and len(pytest_marker) > 1: variations += [('3.6', 'NUMPY')] with TemporaryDirectory() as clone_tmp: clone_dir = os.path.join(clone_tmp, 'pymor') subprocess.check_call( ['git', 'clone', os.getcwd(), clone_dir], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) run_configs = partial(_run_config, clone_dir=clone_dir, commit=commit) results = dict() for tm in variations:
from pathlib import Path from envparse import env # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = Path(__file__).parents[1] # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/dev/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = 'mqj44ro4m1if1_-!7)1y!y1lbpw-tms@af5tv5ur0czm3e0jp*' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = env.bool('DEBUG', default=False) ALLOWED_HOSTS = env.list('ALLOWED_HOSTS', default=['*']) # I'm a terrible person # Application definition INSTALLED_APPS = [ # Core 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # Third party # Local
def check_lines(): """Check for disruption on all lines""" bot = get_bot_instance() logging.info('Getting all current disruptions') grandlyon_client = grandlyon.Client(env('GRANDLYON_LOGIN'), env('GRANDLYON_PASSWORD')) disrupted_lines = grandlyon_client.get_disrupted_lines() logging.info('Got {} disrupted lines to process'.format( len(disrupted_lines))) disruption_start_lines = [] disruption_end_lines = [] lines_to_notify = env.list('DISRUPTIONS_LINES', default=[]) logging.info('Processing new or ongoing disruptions') if disrupted_lines: for line_name, disruption_infos in disrupted_lines.items(): line_object = TclLine.find_line(line_name) if not line_object: logging.warning('Line not found: {}'.format(line_name)) continue if not line_object.is_disrupted: logging.info('Line {} of type {}: start of disruption'.format( line_name, line_object.type)) line_object.is_disrupted = True line_object.latest_disruption_started_at = disruption_infos[ 'started_at'] line_object.latest_disruption_reason = disruption_infos[ 'reason'] db_session.add(line_object) if line_name in lines_to_notify: disruption_start_lines.append( '*{line_type} {line_name}*{reason}'.format( line_type=get_human_line_type_name( line_object.type), line_name=line_name, reason=' (la raison est : _' + line_object.latest_disruption_reason + '_)' if line_object.latest_disruption_reason else '')) else: logging.info( 'Line {} of type {} already set as disrupted'.format( line_name, line_object.type)) logging.info('Processing finished disruptions') disturbed_line_ids_in_db = TclLine.get_disturbed_line_ids() finished_disruptions = list( set(disturbed_line_ids_in_db) - set(disrupted_lines.keys())) if finished_disruptions: for line_name in finished_disruptions: line_object = TclLine.find_line(line_name) if not line_object: logging.warning('Line not found: {}'.format(line_name)) continue logging.info('Line {} of type {}: end of disruption'.format( line_name, line_object.type)) line_object.is_disrupted = False db_session.add(line_object) if line_name in lines_to_notify: disruption_end_lines.append( '*{line_type} {line_name}*{reason}'.format( line_type=get_human_line_type_name(line_object.type), line_name=line_name, reason=' (la raison était : _' + line_object.latest_disruption_reason + '_)' if line_object.latest_disruption_reason else '')) else: logging.info('No finished disruption to process') recipient_channels = env.list('SEND_DISRUPTION_MESSAGES_TO', default=[]) if recipient_channels: # If there's channels to inform logging.info('Sending updates to Slack') for recipient_channel in recipient_channels: if disruption_start_lines: bot.say_random('disruption_start', recipient_channel, lines=' - ' + '\n - '.join(disruption_start_lines)) if disruption_end_lines: bot.say_random('disruption_end', recipient_channel, lines=' - ' + '\n - '.join(disruption_end_lines)) db_session.commit() logging.info('End of processing')
volumes = { os.getcwd(): { 'bind': '/src', 'mode': 'rw'}} subprocess.check_call(['git', 'checkout', commit], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) try: container = client.containers.run(image, environment=env, stderr=True, detach=True, volumes=volumes, command='./.ci/travis/script.bash') except docker.errors.ContainerError as err: return False, err exit = container.wait() if exit: return False, container.logs(stream=False, stderr=True, stdout=True) return True, '' docker_tags = env.list('PYMOR_DOCKER_TAG', default=['3.5', '3.6', '3.7-rc']) pytest_marker = env.list('PYMOR_PYTEST_MARKER', default=["None", 'PIP_ONLY', 'MPI']) commit = subprocess.check_output(['git', 'rev-parse', 'HEAD']).decode().strip() variations = list(product(docker_tags, pytest_marker)) if '3.6' in docker_tags and len(pytest_marker) > 1: variations += [('3.6', 'NUMPY')] with TemporaryDirectory() as clone_tmp: clone_dir = os.path.join(clone_tmp, 'pymor') subprocess.check_call(['git', 'clone', os.getcwd(), clone_dir], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) run_configs = partial(_run_config, clone_dir=clone_dir, commit=commit) results = dict() for tm in variations: results[tm] = run_configs(tm) for tm, (success, msg) in results.items(): print('Variation {0[0]} - {0[1]}: {1}'.format(tm, 'success' if success else 'failed')) for tm, (success, msg) in results.items():
import os from envparse import env # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) FRONTEND_DIR = os.path.join(BASE_DIR, "..", "frontend") SECRET_KEY = env.str( "DJANGO_SECRET_KEY", default="wlk9!mepu*mp$^yj-bo2on4)4fj60#(zbzw+@te54xu((b(dfp") DEBUG = env.bool("DJANGO_DEBUG", default=False) ALLOWED_HOSTS = env.list("DJANGO_ALLOWED_HOSTS", default=[]) INSTALLED_APPS = [ "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", "django.contrib.sessions", "django.contrib.messages", "django.contrib.staticfiles", # third party "social_django", "django_rq", "rest_framework", "webpack_loader", "django_filters", "django_extensions", # internal "feedzero.users", "feedzero.feeds",
- Add corsheaders as app """ import os from .base import * # noqa from envparse import env # DEBUG # ------------------------------------------------------------------------------ DEBUG = True TEMPLATES[0]['OPTIONS']['debug'] = DEBUG # SITE CONFIGURATION # ------------------------------------------------------------------------------ # Hosts/domain names that are valid for this site # See https://docs.djangoproject.com/en/dev/ref/settings/#allowed-hosts ALLOWED_HOSTS = env.list('DJANGO_ALLOWED_HOSTS', default=['*']) INTERNAL_IPS = ['127.0.0.1', '10.60.3.4', '10.90.0.165'] RUNSERVERPLUS_SERVER_ADDRESS_PORT = '0.0.0.0:8080' # SECRET CONFIGURATION # ------------------------------------------------------------------------------ # See: https://docs.djangoproject.com/en/dev/ref/settings/#secret-key # Note: This key only used for development and testing. SECRET_KEY = '9gen&o^m2-dj&_nnmlcuwtnde(11bb+9+c+0-!-xf$q#0fu*!3' # Mail settings # ------------------------------------------------------------------------------ EMAIL_HOST = '' EMAIL_HOST_USER = ''
from envparse import env from . import BASE_DIR from .common_celery import * from .common_mtdj import * from .common_spotify import * SECRET_KEY = env.str('DJANGO_SECRET_KEY', default='') DEBUG = env.bool('DJANGO_DEBUG', default=False) SITE_HOSTNAME = env.str('MTDJ_SITE_HOSTNAME', default='moodytunes.localhost') INTERNAL_IPS = ('127.0.0.1', ) ALLOWED_HOSTS = env.list( 'DJANGO_ALLOWED_HOSTS', default=[SITE_HOSTNAME, 'admin.{}'.format(SITE_HOSTNAME)]) # Admins are defined in cradle with the `name, email;` pattern ADMINS = [] admin_config = env.str('DJANGO_ADMINS', default='') if admin_config: admins = admin_config.split(';') for admin in admins: name, email = admin.split(',') ADMINS.append((name.strip(), email.strip())) APPEND_SLASH = True
from envparse import env CHARSET = env.str("CHARSET", default="UTF-8") AWS_REGION = env.str("AWS_REGION", default="us-east-1") SENDING_ADDRESS = env.str("SENDING_ADDRESS", default="*****@*****.**") RECEIVING_ADDRESSES = env.list("RECEIVING_ADDRESSES", default=[]) # mailgun stuff MAILGUN_URL = env.str("MAILGUN_URL", default='') MAILGUN_API_KEY = env.str("MAILGUN_API_KEY", default='')
class Config(object): ############################################################################################################# # COMMON CONFIG # ############################################################################################################# BASEDIR = env.str("BASEDIR", default=os.path.dirname(os.path.realpath(__file__))) PORT = env.int("PORT", default=9001) DATABASE = env.str( "DATABASE", default="postgresql+psycopg2://vmmaster:vmmaster@localhost/testdb") # screenshots SCREENSHOTS_DIR = env.str("SCREENSHOTS_DIR", default=os.sep.join([BASEDIR, "screenshots"])) # logging LOG_TYPE = env.str("LOG_TYPE", default="logstash") LOG_LEVEL = env.str("LOG_LEVEL", default="DEBUG") FLASK_THREAD_POOL_MAX = env.int("FLASK_THREAD_POOL_MAX", default=100) REACTOR_THREAD_POOL_MAX = env.int("REACTOR_THREAD_POOL_MAX", default=FLASK_THREAD_POOL_MAX) DEFAULT_ARTIFACTS = { "selenium_server.log": "/var/log/selenium_server.log", } # selenium DEFAULT_PORTS = {"selenium": "4455", "agent": "9000", "vnc": "5900"} """ Platforms settings Allowed platforms: ANDROID, LINUX, UNIX, MAC, WINDOWS, XP, VISTA Allowed browserNames: android, chrome, firefox, htmlunit, internet explorer, iPhone, iPad, opera, safari (source: https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities) Example: PLATFORMS = { "LINUX": { "ubuntu-14.04": { "browsers": { "chrome": "48", "firefox": "25" }, "ports": { "selenium": "4444" }, "artifacts": { "selenium_server.log": "/var/log/selenium_server.log", "stf_connect.log": "/var/log/stf_connect.log", }, }, "ubuntu-16.04": { "browsers": { "chrome": "48", "firefox": "25" }, # if ports was undefined then will uses DEFAULT_PORTS } }, "WINDOWS": { "windows-8": { "browsers": { "internet explorer": "9" } } }, "MAC": {}, "ANDROID": {} } """ PLATFORMS = { "LINUX": {}, "MAC": {}, "WINDOWS": {}, "ANDROID": {}, } ############################################################################################################# # HEAD CONFIG # ############################################################################################################# # vm pool GET_VM_TIMEOUT = env.int("GET_VM_TIMEOUT", default=180) MAKE_REQUEST_ATTEMPTS_AMOUNT = env.int("MAKE_REQUEST_ATTEMPTS_AMOUNT", default=5) WAIT_ACTIVE_SESSIONS = env.bool("WAIT_ACTIVE_SESSIONS", default=False) ############################################################################################################# # PROVIDER CONFIG # ############################################################################################################# PUBLIC_IP = env.str("PUBLIC_IP", default="127.0.0.1") PROVIDER_NAME = env.str("PROVIDER_NAME", default="noname") SCREENCAST_RESOLUTION = env.tuple("SCREENCAST_RESOLUTION", default=(800, 600)) ENDPOINT_THREADPOOL_PROCESSES = env.int("ENDPOINT_THREADPOOL_PROCESSES", default=2) # openstack USE_OPENSTACK = env.bool("USE_OPENSTACK", default=False) OPENSTACK_MAX_VM_COUNT = env.int("OPENSTACK_MAX_VM_COUNT", default=1) OPENSTACK_ENDPOINT_PREFIX = env.str("OPENSTACK_ENDPOINT_PREFIX", default="noprefix") OPENSTACK_PRELOADED = env.json("OPENSTACK_PRELOADED", default={}) OPENSTACK_AUTH_URL = env.str("OPENSTACK_AUTH_URL", default="localhost") OPENSTACK_PORT = env.int("OPENSTACK_PORT", default=5000) OPENSTACK_CLIENT_VERSION = env.str("OPENSTACK_CLIENT_VERSION", default="v3") OPENSTACK_USERNAME = env.str("OPENSTACK_USERNAME", default="user") OPENSTACK_PASSWORD = env.str("OPENSTACK_PASSWORD", default="password") OPENSTACK_TENANT_NAME = env.str("OPENSTACK_TENANT_NAME", default="test") OPENSTACK_TENANT_ID = env.str("OPENSTACK_TENANT_ID", default="") OPENSTACK_ZONE_FOR_VM_CREATE = env.str("OPENSTACK_ZONE_FOR_VM_CREATE", default="") OPENSTACK_PLATFORM_NAME_PREFIX = env.str("OPENSTACK_PLATFORM_NAME_PREFIX", default="origin-") OPENSTACK_DEFAULT_FLAVOR = env.str("OPENSTACK_DEFAULT_FLAVOR", default='') OPENSTACK_NETWORK_ID = env.str("OPENSTACK_NETWORK_ID", default='') OPENSTACK_NETWORK_NAME = env.str("OPENSTACK_NETWORK_NAME", default='') OPENSTACK_DOMAIN_NAME = env.str("OPENSTACK_DOMAIN_NAME", default='') OPENASTACK_VM_META_DATA = env.json("OPENASTACK_VM_META_DATA", default={'admin_pass': '******'}) # docker USE_DOCKER = env.bool("USE_DOCKER", default=False) BIND_LOCALHOST_PORTS = env.bool("BIND_LOCALHOST_PORTS", default=True) DOCKER_MAX_COUNT = env.int("DOCKER_MAX_COUNT", default=3) DOCKER_PRELOADED = env.json("DOCKER_PRELOADED", default={}) DOCKER_BASE_URL = env.str("DOCKER_BASE_URL", default='unix://var/run/docker.sock') DOCKER_TIMEOUT = env.int("DOCKER_TIMEOUT", default=120) DOCKER_NUM_POOLS = env.int("DOCKER_NUM_POOLS", default=100) DOCKER_NETWORK_NAME = env.str("DOCKER_NETWORK_NAME", default="vmmaster_network") DOCKER_SUBNET = env.str("DOCKER_SUBNET", default="192.168.1.0/24") DOCKER_GATEWAY = env.str("DOCKER_GATEWAY", default="192.168.1.254") DOCKER_IMAGE_NAME_PREFIX = env.str("DOCKER_IMAGE_NAME_PREFIX", default="") DOCKER_CONTAINER_MEMORY_LIMIT = env.str("DOCKER_CONTAINER_MEMORY_LIMIT", default="1g") DOCKER_CONTAINER_CPU_PERIOD = env.int("DOCKER_CONTAINER_CPU_PERIOD", default=100000) DOCKER_CONTAINER_CPU_QUOTA = env.int("DOCKER_CONTAINER_CPU_QUOTA", default=50000) DOCKER_CONTAINER_VOLUMES = env.dict("DOCKER_CONTAINER_VOLUMES", default={ "/dev/shm": { "bind": "/dev/shm", "mode": "rw" }, }) DOCKER_CONTAINER_ENVIRONMENT = env.dict("DOCKER_CONTAINER_ENVIRONMENT", default={}) DNS_LIST = env.list("DNS_LIST", default=[]) DNS_SEARCH_LIST = env.list("DNS_SEARCH_LIST", default=[]) VM_PING_RETRY_COUNT = env.int("VM_PING_RETRY_COUNT", default=3) VM_CREATE_CHECK_PAUSE = env.int("VM_CREATE_CHECK_PAUSE", default=5) VM_CREATE_CHECK_ATTEMPTS = env.int("VM_CREATE_CHECK_ATTEMPTS", default=1000) PRELOADER_FREQUENCY = env.int("PRELOADER_FREQUENCY", default=3) SESSION_TIMEOUT = env.int("SESSION_TIMEOUT", default=360) PING_TIMEOUT = env.int("PING_TIMEOUT", default=180)
env.read_envfile() # Base path BASE_PATH = pathlib.Path(__file__).parent.parent # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/2.1/howto/deployment/checklist/ SECRET_KEY = env('SECRET_KEY', cast=str, default='f)x_76pg46@omifv%=f0evs(4fiqkbr_k1p%nld2qtey8dyoc(') DEBUG = env('DEBUG', cast=bool, default=False) ALLOWED_HOSTS = env.list('ALLOWED_HOSTS', default=['*']) # Application definition DJANGO_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ] THIRD_PARTY_APPS = [ 'django_celery_beat', 'django_celery_results',
env.read_envfile(os.path.expanduser('env/env.env')) # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = env.str('DJANGO_SECRET_KEY') # SECURITY WARNING: don't run with debug turned on in production! DEBUG = env.bool('DJANGO_DEBUG') ALLOWED_HOSTS = env.list('DJANGO_ALLOWED_HOSTS') # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'corsheaders', 'polls.apps.PollsConfig' ] MIDDLEWARE = [ 'corsheaders.middleware.CorsMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware',