| |
@@ -1,172 +0,0 @@
|
| |
- # -*- coding: utf-8 -*-
|
| |
- # SPDX-License-Identifier: MIT
|
| |
- from os import environ, path
|
| |
-
|
| |
- # FIXME: workaround for this moment till confdir, dbdir (installdir etc.) are
|
| |
- # declared properly somewhere/somehow
|
| |
- confdir = path.abspath(path.dirname(__file__))
|
| |
- # use parent dir as dbdir else fallback to current dir
|
| |
- dbdir = path.abspath(path.join(confdir, "..")) if confdir.endswith("conf") else confdir
|
| |
-
|
| |
-
|
| |
- class BaseConfiguration(object):
|
| |
- DEBUG = False
|
| |
- # Make this random (used to generate session keys)
|
| |
- SECRET_KEY = "74d9e9f9cd40e66fc6c4c2e9987dce48df3ce98542529fd0"
|
| |
- SQLALCHEMY_DATABASE_URI = "sqlite:///{0}".format(path.join(dbdir, "module_build_service.db"))
|
| |
- SQLALCHEMY_TRACK_MODIFICATIONS = True
|
| |
- # Where we should run when running "manage.py run" directly.
|
| |
- HOST = "0.0.0.0"
|
| |
- PORT = 5000
|
| |
-
|
| |
- # Global network-related values, in seconds
|
| |
- NET_TIMEOUT = 120
|
| |
- NET_RETRY_INTERVAL = 30
|
| |
-
|
| |
- SYSTEM = "koji"
|
| |
- MESSAGING = "fedmsg" # or amq
|
| |
- MESSAGING_TOPIC_PREFIX = ["org.fedoraproject.prod"]
|
| |
- KOJI_CONFIG = "/etc/module-build-service/koji.conf"
|
| |
- KOJI_PROFILE = "koji"
|
| |
- ARCHES = ["i686", "armv7hl", "x86_64"]
|
| |
- ALLOW_ARCH_OVERRIDE = False
|
| |
- KOJI_REPOSITORY_URL = "https://kojipkgs.fedoraproject.org/repos"
|
| |
- KOJI_TAG_PREFIXES = ["module", "scrmod"]
|
| |
- KOJI_ENABLE_CONTENT_GENERATOR = True
|
| |
- CHECK_FOR_EOL = False
|
| |
- PDC_URL = "https://pdc.fedoraproject.org/rest_api/v1"
|
| |
- PDC_INSECURE = False
|
| |
- PDC_DEVELOP = True
|
| |
- SCMURLS = ["https://src.fedoraproject.org/modules/"]
|
| |
- YAML_SUBMIT_ALLOWED = False
|
| |
-
|
| |
- # How often should we resort to polling, in seconds
|
| |
- # Set to zero to disable polling
|
| |
- POLLING_INTERVAL = 600
|
| |
-
|
| |
- # Determines how many builds that can be submitted to the builder
|
| |
- # and be in the build state at a time. Set this to 0 for no restrictions
|
| |
- NUM_CONCURRENT_BUILDS = 5
|
| |
-
|
| |
- ALLOW_CUSTOM_SCMURLS = False
|
| |
-
|
| |
- RPMS_DEFAULT_REPOSITORY = "https://src.fedoraproject.org/rpms/"
|
| |
- RPMS_ALLOW_REPOSITORY = False
|
| |
- RPMS_DEFAULT_CACHE = "http://pkgs.fedoraproject.org/repo/pkgs/"
|
| |
- RPMS_ALLOW_CACHE = False
|
| |
-
|
| |
- MODULES_DEFAULT_REPOSITORY = "https://src.fedoraproject.org/modules/"
|
| |
- MODULES_ALLOW_REPOSITORY = False
|
| |
- MODULES_ALLOW_SCRATCH = False
|
| |
-
|
| |
- ALLOWED_GROUPS = {"packager"}
|
| |
-
|
| |
- ALLOWED_GROUPS_TO_IMPORT_MODULE = set()
|
| |
-
|
| |
- # Available backends are: console and file
|
| |
- LOG_BACKEND = "console"
|
| |
-
|
| |
- # Path to log file when LOG_BACKEND is set to "file".
|
| |
- LOG_FILE = "module_build_service.log"
|
| |
-
|
| |
- # Available log levels are: debug, info, warn, error.
|
| |
- LOG_LEVEL = "info"
|
| |
-
|
| |
- # Settings for Kerberos
|
| |
- KRB_KEYTAB = None
|
| |
- KRB_PRINCIPAL = None
|
| |
-
|
| |
- # AMQ prefixed variables are required only while using 'amq' as messaging backend
|
| |
- # Addresses to listen to
|
| |
- AMQ_RECV_ADDRESSES = [
|
| |
- "amqps://messaging.mydomain.com/Consumer.m8y.VirtualTopic.eng.koji",
|
| |
- "amqps://messaging.mydomain.com/Consumer.m8y.VirtualTopic.eng.module_build_service",
|
| |
- ]
|
| |
- # Address for sending messages
|
| |
- AMQ_DEST_ADDRESS = \
|
| |
- "amqps://messaging.mydomain.com/Consumer.m8y.VirtualTopic.eng.module_build_service"
|
| |
- AMQ_CERT_FILE = "/etc/module_build_service/msg-m8y-client.crt"
|
| |
- AMQ_PRIVATE_KEY_FILE = "/etc/module_build_service/msg-m8y-client.key"
|
| |
- AMQ_TRUSTED_CERT_FILE = "/etc/module_build_service/Root-CA.crt"
|
| |
-
|
| |
- # Disable Client Authorization
|
| |
- NO_AUTH = False
|
| |
-
|
| |
- # Configs for running tasks asynchronously with Celery
|
| |
- # For details of Celery configs, refer to Celery documentation:
|
| |
- # https://docs.celeryproject.org/en/latest/userguide/configuration.html
|
| |
- #
|
| |
- # Each config name consists of namespace CELERY_ and the new Celery config
|
| |
- # name converted to upper case. For example the broker url, Celery config
|
| |
- # name is broker_url, then as you can below, the corresponding config name
|
| |
- # in MBS is CELERY_BROKER_URL.
|
| |
- CELERY_BROKER_URL = ""
|
| |
- CELERY_RESULT_BACKEND = ""
|
| |
- CELERY_IMPORTS = []
|
| |
-
|
| |
-
|
| |
- class TestConfiguration(BaseConfiguration):
|
| |
- BUILD_LOGS_DIR = "/tmp"
|
| |
- BUILD_LOGS_NAME_FORMAT = "build-{id}.log"
|
| |
- LOG_BACKEND = "console"
|
| |
- LOG_LEVEL = "debug"
|
| |
- SQLALCHEMY_DATABASE_URI = environ.get(
|
| |
- "DATABASE_URI", "sqlite:///{0}".format(path.join(dbdir, "mbstest.db")))
|
| |
- DEBUG = True
|
| |
- MESSAGING = "in_memory"
|
| |
- PDC_URL = "https://pdc.fedoraproject.org/rest_api/v1"
|
| |
-
|
| |
- # Global network-related values, in seconds
|
| |
- NET_TIMEOUT = 3
|
| |
- NET_RETRY_INTERVAL = 1
|
| |
- # SCM network-related values, in seconds
|
| |
- SCM_NET_TIMEOUT = 0.1
|
| |
- SCM_NET_RETRY_INTERVAL = 0.1
|
| |
-
|
| |
- KOJI_CONFIG = "./conf/koji.conf"
|
| |
- KOJI_PROFILE = "staging"
|
| |
- SERVER_NAME = "localhost"
|
| |
-
|
| |
- KOJI_REPOSITORY_URL = "https://kojipkgs.stg.fedoraproject.org/repos"
|
| |
- SCMURLS = ["https://src.stg.fedoraproject.org/modules/"]
|
| |
- AUTH_METHOD = "oidc"
|
| |
- RESOLVER = "db"
|
| |
-
|
| |
- ALLOWED_GROUPS_TO_IMPORT_MODULE = {"mbs-import-module"}
|
| |
-
|
| |
- # Greenwave configuration
|
| |
- GREENWAVE_URL = "https://greenwave.example.local/api/v1.0/"
|
| |
- GREENWAVE_DECISION_CONTEXT = "test_dec_context"
|
| |
- GREENWAVE_SUBJECT_TYPE = "some-module"
|
| |
-
|
| |
- STREAM_SUFFIXES = {r"^el\d+\.\d+\.\d+\.z$": 0.1}
|
| |
-
|
| |
-
|
| |
- class ProdConfiguration(BaseConfiguration):
|
| |
- pass
|
| |
-
|
| |
-
|
| |
- class LocalBuildConfiguration(BaseConfiguration):
|
| |
- CACHE_DIR = "~/modulebuild/cache"
|
| |
- LOG_LEVEL = "debug"
|
| |
- MESSAGING = "in_memory"
|
| |
-
|
| |
- ARCH_AUTODETECT = True
|
| |
- ARCH_FALLBACK = "x86_64"
|
| |
-
|
| |
- ALLOW_CUSTOM_SCMURLS = True
|
| |
- RESOLVER = "mbs"
|
| |
- RPMS_ALLOW_REPOSITORY = True
|
| |
- MODULES_ALLOW_REPOSITORY = True
|
| |
-
|
| |
-
|
| |
- class OfflineLocalBuildConfiguration(LocalBuildConfiguration):
|
| |
- RESOLVER = "local"
|
| |
-
|
| |
-
|
| |
- class DevConfiguration(LocalBuildConfiguration):
|
| |
- DEBUG = True
|
| |
- LOG_BACKEND = "console"
|
| |
-
|
| |
- CELERY_BROKER_URL = "redis://localhost:6379/0"
|
| |
- CELERY_RESULT_BACKEND = "redis://localhost:6379/0"
|
| |
When flask app is provided, create a config object for frontend and
configure the flask app, otherwise create a config object for backend
workers. Frontend and backend loads configuration from different
config files.
Before calling init_config, checking sys.argv to determine whether
it's running as backend, if 'fedmsg-hub-*' is present, it's running
as backend.