retrace: update from upstream

This commit is contained in:
Miroslav Suchý 2017-05-03 15:02:26 +02:00
parent 811da4160d
commit 159b0a3779
6 changed files with 352 additions and 0 deletions

View file

@ -0,0 +1,10 @@
[group_abrt-faf-el7]
name=Copr repo for faf-el7 owned by @abrt
baseurl=https://copr-be.cloud.fedoraproject.org/results/@abrt/faf-el7/epel-7-$basearch/
type=rpm-md
skip_if_unavailable=True
gpgcheck=1
gpgkey=https://copr-be.cloud.fedoraproject.org/results/@abrt/faf-el7/pubkey.gpg
repo_gpgcheck=0
enabled=1
enabled_metadata=1

View file

@ -0,0 +1,31 @@
#{{ ansible_managed }}
# Faf site-wide configuration file
[Main]
PluginsDir = /etc/faf/plugins/
TemplatesDir = /etc/faf/templates/
AutoEnablePlugins = False
[Storage]
ConnectString = {{ faf_db_connectstring }}
LobDir = {{ faf_spool_dir }}/lob
# Using platform-specific location by default.
# Uncomment and change if needed.
# TmpDir = /tmp
[Mail]
# where to send notification emails, comma separated list
Admins = {{ faf_admin_mail }}
Server = {{ smtp_server }}
Port = {{ smtp_port }}
Username = {{ smtp_username|default("", true) }}
Password = {{ smtp_password|default("", true) }}
[uReport]
# The directory that holds 'reports' and 'attachments' subdirectories
Directory = {{ faf_spool_dir }}
CreateComponents = False
# attachments accepted by this server
# allowed values: fedora-bugzilla rhel-bugzilla centos-mantisb comment email url
# or * to allow all attachments
AcceptAttachments = fedora-bugzilla rhel-bugzilla centos-mantisbt

View file

@ -0,0 +1,50 @@
#{{ ansible_managed }}
[hub]
debug = {{ faf_web_debug }}
proxy_setup = {{ faf_web_proxy_setup }}
secret_key = {{ faf_web_secret_key }}
{% if faf_web_on_root %}
url = https://{{ domain }}/
{% else %}
url = https://{{ domain }}/faf/
{% endif %}
server_name = {{ faf_server_name }}
brand_title = {{ faf_web_brand_title }}
brand_subtitle = {{ faf_web_brand_subtitle }}
{% if faf_web_fedmenu_url %}
fedmenu_url = {{ faf_web_fedmenu_url }}
fedmenu_data_url = {{ faf_web_fedmenu_data_url }}
{% endif %}
# When OpenID login is disabled, this option can be used to override permission
# checks and make everyone a package maintainer.
# In that case no login is necessary to access maintainer-only actions.
everyone_is_maintainer = {{ faf_web_everyone_is_admin }}
# When OpenID login is disabled, this option can be used to override permission
# checks and make everyone an admin.
# In that case no login is necessary to access admin-only actions.
everyone_is_admin = {{ faf_web_everyone_is_maintainer }}
[openid]
enabled = {{ faf_web_openid }}
{% if faf_web_openid_privileged_teams %}
privileged_teams = {{ faf_web_openid_privileged_teams }}
{% endif %}
[DumpDir]
CacheDirectory = {{ faf_spool_dir }}/dumpdirs
CacheDirectoryCountQuota = 100
CacheDirectorySizeQuota = 107374182400
MaxDumpDirSize = 1073741824
[cache]
#types:
# null - no caching
# simple - process-local memory cache
# memcached - requires pylibmc
type = {{ faf_web_cache_type }}
memcached_host = localhost
memcached_port = {{ memcached_port }}
memcached_key_prefix = webfaf

View file

@ -0,0 +1,52 @@
#{{ ansible_managed }}
# WSGI handler
WSGIPythonOptimize 1
WSGISocketPrefix {{ faf_spool_dir }} /wsgi
WSGIDaemonProcess faf user=faf group=faf processes=3 threads=5
{% set python = 'python2.7' %}
WSGIScriptAlias /{{ url_suffix }} /usr/lib/{{ python }}/site-packages/webfaf/hub.wsgi process-group=faf application-group=%{GLOBAL}
<Location /{{ url_suffix }} >
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order allow,deny
Allow from all
</IfModule>
</Location>
# project main
<Directory "/usr/lib/{{ python }}/site-packages/webfaf/">
Options Indexes
IndexOptions FancyIndexing
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order allow,deny
Allow from all
</IfModule>
</Directory>
# static
Alias {{ url_suffix }}/static "/usr/share/faf/web/static"
<Directory "/usr/share/faf/web/static">
Options Indexes
IndexOptions FancyIndexing
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order allow,deny
Allow from all
</IfModule>
</Directory>

View file

@ -0,0 +1,162 @@
#{{ ansible_managed }}
[retrace]
# Which group is used for authentication
# Do not change AuthGroup if you really don't need to!
# When using non-default group "foo", you also need to
# 1) Set group=foo in WSGIDaemonProcess in /etc/httpd/conf.d/retrace-server-httpd.conf
# 2) Make LogDir, SaveDir and RepoDir readable and writable for foo
# 3) Execute all retrace-server-* scripts (including cron jobs!) with foo membership
AuthGroup = {{ rs_auth_group }}
# Force to use HTTPS - only disable on trusted network
RequireHTTPS = {{ rs_require_https|int }}
# Allow to delete task data via HTTP API (https://server/<task_id>/delete)
AllowAPIDelete = {{ rs_allow_api_delete|int }}
# Allow interactive tasks (security risk, do not use on public systems)
AllowInteractive = {{ rs_allow_interactive|int }}
# Allow X-CoreFileDirectory header
AllowExternalDir = {{ rs_allow_external_dir|int }}
# Allow to create tasks owned by task manager (security risk)
AllowTaskManager = {{ rs_allow_task_manager|int }}
# Allow to create VMCore tasks in the task manager
AllowVMCoreTask = {{ rs_allow_vmcore_task|int }}
# Allow to create Userspace core tasks in the task manager
AllowUsrCoreTask = {{ rs_allow_usrcore_task|int }}
# If white list is disabled, anyone can delete tasks
TaskManagerAuthDelete = {{ rs_task_manager_auth_delete|int }}
# Whitespace-separated list of users allowed to delete tasks
TaskManagerDeleteUsers = {{ rs_task_manager_delete_users|default('', true) }}
# If set to non-empty string, makes the case number clickable in task manager
# The string is expanded by python, with the case number passed
# as the only argument, do not forget %d
CaseNumberURL = {{ rs_case_number_url|default('', true) }}
# Verify GPG signatures of installed packages
RequireGPGCheck = {{ rs_require_gpg_check|int }}
# Maximum tasks running at one moment
MaxParallelTasks = {{ rs_max_parallel_tasks|int }}
# Maximum size of archive uploaded by user (MB)
MaxPackedSize = {{ rs_max_packed_size|int }}
# Maximum size of archive contents (MB)
MaxUnpackedSize = {{ rs_max_unpacked_size|int }}
# Minimal storage left on WorkDir FS after unpacking archive (MB)
MinStorageLeft = {{ rs_min_storage_left|int }}
# Delete old tasks after (hours); <= 0 means never
# This is mutually exclusive with ArchiveTasksAfter (see below)
# The one that occurs first removes the task from the system
# In case DeleteTaskAfter = ArchiveTaskAfter, archiving executes first
DeleteTaskAfter = {{ rs_delete_task_after|int }}
# Delete old failed tasks after (hours); <= 0 means never
# This is useful for cleanup of failed tasks before the standard
# mechanisms do (DeleteTaskAfter or ArchiveTaskAfter)
# In case DeleteFailedTaskAfter > DeleteTaskAfter
# or DeleteFailedTaskAfter > ArchiveTaskAfter, this option does nothing
DeleteFailedTaskAfter = {{ rs_delete_failed_task_after|int }}
# Archive old task after (hours); <= 0 means never
# This is mutually exclusive with DeleteTasksAfter (see above)
# The one that occurs first removes the task from the system
# In case DeleteTaskAfter = ArchiveTaskAfter, archiving executes first
ArchiveTaskAfter = {{ rs_archive_task_after|int }}
# SQLite statistics DB filename
DBFile = {{ rs_db_file }}
# Log directory
LogDir = {{ rs_log_dir }}
# Local repos directory
# if changed, you also need to update httpd config
RepoDir = {{ rs_repo_dir }}
# Directory where the crashes and results are saved
SaveDir = {{ rs_save_dir }}
# Directory where old tasks are moved
DropDir = {{ rs_drop_dir }}
# Whether to use explicit working directory, otherwise default mock settings are used
UseWorkDir = {{ rs_use_work_dir|int }}
# Working directory
WorkDir = {{ rs_work_dir }}
# Whether to use createrepo's --update option (faster, but requires a lot of memory)
UseCreaterepoUpdate = {{ rs_use_createrepo_update|int }}
# How many latest packages to keep for rawhide
KeepRawhideLatest = {{ rs_keep_rawhide_latest|int }}
# Repo used to install chroot for vmcores
KernelChrootRepo = {{ rs_kernel_chroot_repo }}
# Koji directory structure can be used to search for kernel debuginfo
KojiRoot = {{ rs_koji_root }}
# Whether task manager should look to an external FTP for task data
UseFTPTasks = {{ rs_use_ftp_tasks|int }}
# FTP connection parameters
FTPSSL = {{ rs_ftp_ssl|int }}
FTPHost = {{ rs_ftp_host|default('', true) }}
FTPUser = {{ rs_ftp_user|default('', true) }}
FTPPass = {{ rs_ftp_password|default('', true) }}
FTPDir = {{ rs_ftp_dir|default('', true) }}
# Size of buffer for downloading from FTP (MB)
FTPBufferSize = {{ rs_ftp_buffer_size|int }}
# Whether to use wget as a fallback to finding kernel debuginfos
WgetKernelDebuginfos = {{ rs_wget_kernel_debuginfos|int }}
# Where to download kernel debuginfos from
# $VERSION $RELEASE and $ARCH are replaced by the appropriate value
# kernel-debuginfo-VRA.rpm is appended to the end
KernelDebuginfoURL = {{ rs_kernel_debuginfo_url }}
# Run makedumpfile with specified dumplevel; <= 0 or >= 32 means disabled
VmcoreDumpLevel = {{ rs_vmcore_dump_level|int }}
# Whether to run kmem command by default (this may take a long time on large vmcores)
# 1 => run 'kmem -f'; 2 => run 'kmem -f' with 'set hash off'; 3 => run 'kmem -z'; anything else => do not run kmem
VmcoreRunKmem = {{ rs_vmcore_run_kmem|int }}
# EXPERIMENTAL! Use ABRT Server's storage to map build-ids
# into debuginfo packages and resolve dependencies
# Requires support from ABRT Server
UseFafPackages = {{ rs_use_faf_packages|int }}
# Where to hardlink faf packages
FafLinkDir = {{ rs_faf_link_dir }}
# Whether to enable e-mail notifications
EmailNotify = {{ rs_email_notify|int }}
# Who sends the e-mail notifications
EmailNotifyFrom = {{ rs_email_notify_from_user }}@{{ hostname }}
[archhosts]
{% for a in rs_archhosts %}
{{ a.arch }} = {{ a.url|default('', true) }}
{% endfor %}
[hookscripts]
{% for h in rs_hookscripts %}
{{ h.hook }} = {{ h.cmd|default('', true) }}
{% endfor %}

View file

@ -0,0 +1,47 @@
#{{ ansible_managed }}
WSGISocketPrefix /var/run/retrace
WSGIDaemonProcess retrace user=retrace group=retrace processes=5 threads=3
WSGIScriptAliasMatch ^/manager(/.*)?$ /usr/share/retrace-server/manager.wsgi
WSGIScriptAliasMatch ^/settings$ /usr/share/retrace-server/settings.wsgi
WSGIScriptAliasMatch ^/create$ /usr/share/retrace-server/create.wsgi
WSGIScriptAliasMatch ^/stats$ /usr/share/retrace-server/stats.wsgi
WSGIScriptAliasMatch ^/checkpackage$ /usr/share/retrace-server/checkpackage.wsgi
WSGIScriptAliasMatch ^/[0-9]+/?$ /usr/share/retrace-server/status.wsgi
WSGIScriptAliasMatch ^/[0-9]+/delete$ /usr/share/retrace-server/delete.wsgi
WSGIScriptAliasMatch ^/[0-9]+/log$ /usr/share/retrace-server/log.wsgi
WSGIScriptAliasMatch ^/[0-9]+/backtrace$ /usr/share/retrace-server/backtrace.wsgi
WSGIScriptAliasMatch ^/[0-9]+/exploitable$ /usr/share/retrace-server/exploitable.wsgi
WSGIScriptAliasMatch ^/[0-9]+/start$ /usr/share/retrace-server/start.wsgi
WSGIScriptAliasMatch ^/$ /usr/share/retrace-server/index.wsgi
<Directory "/var/cache/retrace-server">
Options Indexes FollowSymLinks
AllowOverride None
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order allow,deny
Allow from all
</IfModule>
</Directory>
<LocationMatch "^/(manager(/.*)?|settings|create|stats|checkpackage|[0-9]+(/(log|backtrace|delete))?)?$">
WSGIProcessGroup retrace
Options -Indexes -FollowSymLinks
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order allow,deny
Allow from all
</IfModule>
</LocationMatch>
Alias /repos /var/cache/retrace-server