Package coprs
[hide private]
[frames] | no frames]

Source Code for Package coprs

  1  from __future__ import with_statement 
  2   
  3  import os 
  4  import flask 
  5   
  6  from flask_sqlalchemy import SQLAlchemy 
  7  from flask_openid import OpenID 
  8  from flask_whooshee import Whooshee 
  9  from openid_teams.teams import TeamsResponse 
 10   
 11  from coprs.redis_session import RedisSessionInterface 
 12   
 13  app = flask.Flask(__name__) 
 14  if "COPRS_ENVIRON_PRODUCTION" in os.environ: 
 15      app.config.from_object("coprs.config.ProductionConfig") 
 16  elif "COPRS_ENVIRON_UNITTEST" in os.environ: 
 17      app.config.from_object("coprs.config.UnitTestConfig") 
 18  else: 
 19      app.config.from_object("coprs.config.DevelopmentConfig") 
 20  if os.environ.get("COPR_CONFIG"): 
 21      app.config.from_envvar("COPR_CONFIG") 
 22  else: 
 23      app.config.from_pyfile("/etc/copr/copr.conf", silent=True) 
 24   
 25  app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True 
 26   
 27  oid = OpenID( 
 28      app, app.config["OPENID_STORE"], 
 29      safe_roots=[], 
 30      extension_responses=[TeamsResponse] 
 31  ) 
 32   
 33  db = SQLAlchemy(app) 
 34  whooshee = Whooshee(app) 
 35   
 36   
 37  import coprs.filters 
 38  import coprs.log 
 39  from coprs.log import setup_log 
 40  import coprs.models 
 41  import coprs.whoosheers 
 42   
 43  from coprs.helpers import RedisConnectionProvider 
 44  rcp = RedisConnectionProvider(config=app.config) 
 45  app.session_interface = RedisSessionInterface(rcp.get_connection()) 
 46   
 47  from coprs.views import admin_ns 
 48  from coprs.views.admin_ns import admin_general 
 49  from coprs.views import api_ns 
 50  from coprs.views.api_ns import api_general 
 51  from coprs.views import apiv3_ns 
 52  from coprs.views.apiv3_ns import (apiv3_general, apiv3_builds, apiv3_packages, apiv3_projects, apiv3_project_chroots, 
 53                                    apiv3_modules, apiv3_build_chroots) 
 54  from coprs.views import coprs_ns 
 55  from coprs.views.coprs_ns import coprs_builds 
 56  from coprs.views.coprs_ns import coprs_general 
 57  from coprs.views.coprs_ns import coprs_chroots 
 58  from coprs.views.coprs_ns import coprs_packages 
 59  from coprs.views import backend_ns 
 60  from coprs.views.backend_ns import backend_general 
 61  from coprs.views import misc 
 62  from coprs.views import status_ns 
 63  from coprs.views.status_ns import status_general 
 64  from coprs.views import recent_ns 
 65  from coprs.views.recent_ns import recent_general 
 66  from coprs.views.stats_ns import stats_receiver 
 67  from coprs.views import tmp_ns 
 68  from coprs.views.tmp_ns import tmp_general 
 69  from coprs.views.groups_ns import groups_ns 
 70  from coprs.views.groups_ns import groups_general 
 71  from coprs.views.user_ns import user_ns 
 72  from coprs.views.user_ns import user_general 
 73  from coprs.views.webhooks_ns import webhooks_ns 
 74  from coprs.views.webhooks_ns import webhooks_general 
 75   
 76   
 77  from .context_processors import include_banner, inject_fedmenu 
 78   
 79  setup_log() 
 80   
 81  app.register_blueprint(api_ns.api_ns) 
 82  app.register_blueprint(apiv3_ns.apiv3_ns) 
 83  app.register_blueprint(admin_ns.admin_ns) 
 84  app.register_blueprint(coprs_ns.coprs_ns) 
 85  app.register_blueprint(misc.misc) 
 86  app.register_blueprint(backend_ns.backend_ns) 
 87  app.register_blueprint(status_ns.status_ns) 
 88  app.register_blueprint(recent_ns.recent_ns) 
 89  app.register_blueprint(stats_receiver.stats_rcv_ns) 
 90  app.register_blueprint(tmp_ns.tmp_ns) 
 91  app.register_blueprint(groups_ns) 
 92  app.register_blueprint(user_ns) 
 93  app.register_blueprint(webhooks_ns) 
 94   
 95  app.add_url_rule("/", "coprs_ns.coprs_show", coprs_general.coprs_show) 
 96   
 97  app.jinja_env.trim_blocks = True 
 98  app.jinja_env.lstrip_blocks = True 
 99   
100  from coprs.rest_api import rest_api_bp, register_api_error_handler, URL_PREFIX 
101  register_api_error_handler(app) 
102  app.register_blueprint(rest_api_bp, url_prefix=URL_PREFIX) 
103  # register_api(app, db) 
104   
105  from flask_sqlalchemy import models_committed 
106  models_committed.connect(coprs.whoosheers.CoprWhoosheer.on_commit, sender=app) 
107 108 # Serve static files from system-wide RPM files 109 @app.route('/system_static/<component>/<path:filename>') 110 @app.route('/system_static/<path:filename>') 111 -def system_static(filename, component=""):
112 """ 113 :param component: name of the javascript component provided by a RPM package 114 do not confuse with a name of the RPM package itself 115 (e.g. 'jquery' component is provided by 'js-jquery1' package) 116 :param filename: path to a file relative to the component root directory 117 :return: content of a static file 118 """ 119 path = os.path.join("/usr/share/javascript", component) 120 return flask.send_from_directory(path, filename)
121