Merge pull request #65 from ComputerScienceHouse/extending_timeout

Extending gunicorn timeout
This commit is contained in:
Devin Matte 2020-12-21 23:15:40 -05:00 committed by GitHub
commit 36f52e5938
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 29 deletions

View file

@ -11,24 +11,17 @@ SERVER_NAME = environ.get('PROXSTAR_SERVER_NAME', 'proxstar.csh.rit.edu')
SECRET_KEY = environ.get('PROXSTAR_SECRET_KEY', '') SECRET_KEY = environ.get('PROXSTAR_SECRET_KEY', '')
# OIDC # OIDC
OIDC_ISSUER = environ.get('PROXSTAR_OIDC_ISSUER', OIDC_ISSUER = environ.get('PROXSTAR_OIDC_ISSUER', 'https://sso.csh.rit.edu/auth/realms/csh')
'https://sso.csh.rit.edu/auth/realms/csh')
OIDC_CLIENT_CONFIG = { OIDC_CLIENT_CONFIG = {
'client_id': 'client_id': environ.get('PROXSTAR_CLIENT_ID', 'proxstar'),
environ.get('PROXSTAR_CLIENT_ID', 'proxstar'), 'client_secret': environ.get('PROXSTAR_CLIENT_SECRET', ''),
'client_secret':
environ.get('PROXSTAR_CLIENT_SECRET', ''),
'post_logout_redirect_uris': [ 'post_logout_redirect_uris': [
environ.get('PROXSTAR_REDIRECT_URI', environ.get('PROXSTAR_REDIRECT_URI', 'https://proxstar.csh.rit.edu/logout')
'https://proxstar.csh.rit.edu/logout') ],
]
} }
# Proxmox # Proxmox
PROXMOX_HOSTS = [ PROXMOX_HOSTS = [host.strip() for host in environ.get('PROXSTAR_PROXMOX_HOSTS', '').split(',')]
host.strip()
for host in environ.get('PROXSTAR_PROXMOX_HOSTS', '').split(',')
]
PROXMOX_USER = environ.get('PROXSTAR_PROXMOX_USER', '') PROXMOX_USER = environ.get('PROXSTAR_PROXMOX_USER', '')
PROXMOX_PASS = environ.get('PROXSTAR_PROXMOX_PASS', '') PROXMOX_PASS = environ.get('PROXSTAR_PROXMOX_PASS', '')
PROXMOX_ISO_STORAGE = environ.get('PROXSTAR_PROXMOX_ISO_STORAGE', 'nfs-iso') PROXMOX_ISO_STORAGE = environ.get('PROXSTAR_PROXMOX_ISO_STORAGE', 'nfs-iso')
@ -57,10 +50,8 @@ RQ_DASHBOARD_REDIS_HOST = environ.get('PROXSTAR_REDIS_HOST', 'localhost')
REDIS_PORT = int(environ.get('PROXSTAR_REDIS_PORT', '6379')) REDIS_PORT = int(environ.get('PROXSTAR_REDIS_PORT', '6379'))
# VNC # VNC
WEBSOCKIFY_PATH = environ.get('PROXSTAR_WEBSOCKIFY_PATH', WEBSOCKIFY_PATH = environ.get('PROXSTAR_WEBSOCKIFY_PATH', '/opt/app-root/bin/websockify')
'/opt/app-root/bin/websockify') WEBSOCKIFY_TARGET_FILE = environ.get('PROXSTAR_WEBSOCKIFY_TARGET_FILE', '/opt/app-root/src/targets')
WEBSOCKIFY_TARGET_FILE = environ.get('PROXSTAR_WEBSOCKIFY_TARGET_FILE',
'/opt/app-root/src/targets')
# SENTRY # SENTRY
# If you set the sentry dsn locally, make sure you use the local-dev or some # If you set the sentry dsn locally, make sure you use the local-dev or some
@ -68,3 +59,6 @@ WEBSOCKIFY_TARGET_FILE = environ.get('PROXSTAR_WEBSOCKIFY_TARGET_FILE',
SENTRY_DSN = environ.get('PROXSTAR_SENTRY_DSN', '') SENTRY_DSN = environ.get('PROXSTAR_SENTRY_DSN', '')
RQ_SENTRY_DSN = environ.get('PROXSTAR_SENTRY_DSN', '') RQ_SENTRY_DSN = environ.get('PROXSTAR_SENTRY_DSN', '')
SENTRY_ENV = environ.get('PROXSTAR_SENTRY_ENV', 'local-dev') SENTRY_ENV = environ.get('PROXSTAR_SENTRY_ENV', 'local-dev')
# GUNICORN
TIMEOUT = environ.get('PROXSTAR_TIMEOUT', 120)

View file

@ -4,26 +4,31 @@ import subprocess
from flask import Flask from flask import Flask
app = Flask(__name__) app = Flask(__name__)
if os.path.exists( if os.path.exists(os.path.join(app.config.get('ROOT_DIR', os.getcwd()), "config.local.py")):
os.path.join( config = os.path.join(app.config.get('ROOT_DIR', os.getcwd()), "config.local.py")
app.config.get('ROOT_DIR', os.getcwd()), "config.local.py")):
config = os.path.join(
app.config.get('ROOT_DIR', os.getcwd()), "config.local.py")
else: else:
config = os.path.join(app.config.get('ROOT_DIR', os.getcwd()), "config.py") config = os.path.join(app.config.get('ROOT_DIR', os.getcwd()), "config.py")
app.config.from_pyfile(config) app.config.from_pyfile(config)
timeout = config.TIMEOUT
def start_websockify(websockify_path, target_file): def start_websockify(websockify_path, target_file):
result = subprocess.run(['pgrep', 'websockify'], stdout=subprocess.PIPE) result = subprocess.run(['pgrep', 'websockify'], stdout=subprocess.PIPE)
if not result.stdout: if not result.stdout:
subprocess.call([ subprocess.call(
websockify_path, '8081', '--token-plugin', 'TokenFile', [
'--token-source', target_file, '-D' websockify_path,
], '8081',
stdout=subprocess.PIPE) '--token-plugin',
'TokenFile',
'--token-source',
target_file,
'-D',
],
stdout=subprocess.PIPE,
)
def on_starting(server): def on_starting(server):
start_websockify(app.config['WEBSOCKIFY_PATH'], start_websockify(app.config['WEBSOCKIFY_PATH'], app.config['WEBSOCKIFY_TARGET_FILE'])
app.config['WEBSOCKIFY_TARGET_FILE'])