コード例 #1
0
ファイル: settings.py プロジェクト: viktortat/olx-parser
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')
コード例 #2
0
ファイル: config.py プロジェクト: THESANSKARILADKA/DaisyX
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 []
コード例 #3
0
ファイル: test_casts.py プロジェクト: karatheodory/envparse
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))
コード例 #4
0
ファイル: test_casts.py プロジェクト: rconradharris/envparse
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))
コード例 #5
0
    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
コード例 #6
0
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)
コード例 #7
0
##########################################################
# 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,
コード例 #8
0
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
    ],
コード例 #9
0
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",
コード例 #10
0
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({
コード例 #11
0
                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:
コード例 #12
0
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
コード例 #13
0
ファイル: pointtcl.py プロジェクト: EpocDotFr/PointTCL
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')
コード例 #14
0
ファイル: run_travis_builders.py プロジェクト: renemilk/pyMor
        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():
コード例 #15
0
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",
コード例 #16
0
- 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 = ''
コード例 #17
0
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
コード例 #18
0
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='')
コード例 #19
0
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)
コード例 #20
0
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',
コード例 #21
0
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',