Skip to content

Commit

Permalink
ext: create flask extension
Browse files Browse the repository at this point in the history
Signed-off-by: Jacopo Notarstefano <jacopo.notarstefano@cern.ch>
  • Loading branch information
Jacopo Notarstefano authored and jacquerie committed Jul 26, 2017
1 parent 258ae49 commit c811b57
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 1 deletion.
56 changes: 56 additions & 0 deletions invenio_xrootd/ext.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# -*- coding: utf-8 -*-
#
# This file is part of Invenio.
# Copyright (C) 2017 CERN.
#
# Invenio is free software; you can redistribute it
# and/or modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# Invenio is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Invenio; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307, USA.
#
# In applying this license, CERN does not
# waive the privileges and immunities granted to it by virtue of its status
# as an Intergovernmental Organization or submit itself to any jurisdiction.

"""Flask extension for Invenio-XRootD."""

from __future__ import absolute_import, print_function

from pkg_resources import DistributionNotFound, get_distribution

try:
# Import XRootDPyFS if available so that its
# opener gets registered on PyFilesystem.
get_distribution('xrootdpyfs')
import xrootdpyfs
XROOTD_ENABLED = True
except DistributionNotFound:
XROOTD_ENABLED = False
xrootdpyfs = None


class InvenioXRootD(object):
"""Invenio-XRootD extension."""

def __init__(self, app=None):
"""Extension initialization."""
if app:
self.init_app(app)

def init_app(self, app):
"""Extension registration and configuration."""
app.config['XROOTD_ENABLED'] = XROOTD_ENABLED
if XROOTD_ENABLED:
app.config['FILES_REST_STORAGE_FACTORY'] = \
'invenio_xrootd:eos_storage_factory'
app.extensions['inspire-xrootd'] = self
8 changes: 7 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
#
# This file is part of Invenio.
# Copyright (C) 2016 CERN.
# Copyright (C) 2016, 2017 CERN.
#
# Invenio is free software; you can redistribute it
# and/or modify it under the terms of the GNU General Public License as
Expand Down Expand Up @@ -86,6 +86,12 @@
include_package_data=True,
platforms='any',
entry_points={
'invenio_base.api_apps': [
'invenio_xrootd = invenio_xrootd.ext:InvenioXRootD',
],
'invenio_base.apps': [
'invenio_xrootd = invenio_xrootd.ext:InvenioXRootD',
],
},
extras_require=extras_require,
install_requires=install_requires,
Expand Down

0 comments on commit c811b57

Please sign in to comment.