Skip to content
This repository was archived by the owner on Apr 17, 2019. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 2 additions & 16 deletions iris/core/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
import os
from os import path
from sys import prefix, argv
from pkg_resources import iter_entry_points
from django.conf import global_settings

# ConfigParser was renamed to configparser in Python 3
Expand Down Expand Up @@ -73,16 +72,8 @@
)

TEMPLATE_DIRS = (

)

for plugin in iter_entry_points(group='iris.app'):
template_dirs = plugin.load().get('template_dirs', ())
TEMPLATE_DIRS += template_dirs

print('Loaded application template directories: ')
print(template_dirs)

STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
Expand Down Expand Up @@ -110,15 +101,10 @@
'django.contrib.humanize',
'south',
'iris.core',
'iris.packagedb',
'iris.submissions',
)

for plugin in iter_entry_points(group='iris.app'):
installed_apps = plugin.load().get('installed_apps', ())
INSTALLED_APPS += installed_apps

print('Loaded applications: ')
print(installed_apps)

SECRET_KEY = '(e0wp@h7-@_p_&u99vi9&$jju+#=b&yyv9@0uqp!8#z#fiyb1!'
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer'
AUTH_PROFILE_MODULE = 'iris.core.models.UserProfile'
Expand Down
2 changes: 1 addition & 1 deletion iris/core/templates/core/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ <h2>IRIS Portal</h2>
<div class="col-xs-12">
{% for app in apps %}
<div class="col-lg-4 col-md-6 col-sm-6 col-xs-12">
<a class="btn btn-primary btn-lg col-xs-12" href="{{ app.url }}">
<a class="btn btn-primary btn-lg col-xs-12" href="{% url app.url %}">
{{ app.header }} »
</a>
<br />
Expand Down
31 changes: 8 additions & 23 deletions iris/core/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
# pylint: disable=C0103

from logging import getLogger
from pkg_resources import iter_entry_points
from django.conf import settings
from django.conf.urls import patterns, include, url
from django.contrib import admin
Expand All @@ -40,6 +39,14 @@
url(r'^users(?:/(?P<pkid>\d+))?/$', 'users', name='users'),
)

urlpatterns += patterns(
'',
url(r'^app/packagedb/', include('iris.packagedb.urls')),
url(r'^api/packagedb/', include('iris.packagedb.apiurls')),
url(r'^app/submissions/', include('iris.submissions.urls')),
url(r'^api/submissions/', include('iris.submissions.apiurls')),
)

LOGGER = getLogger('iris')

if settings.REST_API_AVAILABLE:
Expand All @@ -49,25 +56,3 @@
)

LOGGER.info('Loaded REST API documentation under /api/doc')

# Please refer to documentation regarding plugins
for plugin in iter_entry_points('iris.app'):
urlinfo = plugin.load().get('urlpatterns', {})

baseurl = urlinfo.get('baseurl')
viewpatterns = urlinfo.get('patterns')

if baseurl and patterns:
urlpatterns += patterns('', url(baseurl, include(viewpatterns)))

LOGGER.info('Loaded base URL as %s', baseurl)
LOGGER.info('Loaded patterns as %s', viewpatterns)

apiurl = urlinfo.get('apiurl')
apipatterns = urlinfo.get('apipatterns')

if settings.REST_API_AVAILABLE and apiurl and apipatterns:
urlpatterns += patterns('', url(apiurl, include(apipatterns)))

LOGGER.info('Loaded API URL as %s', apiurl)
LOGGER.info('Loaded API patterns as %s', apipatterns)
39 changes: 20 additions & 19 deletions iris/core/views/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
"""

import logging
from pkg_resources import iter_entry_points

from django.shortcuts import render, redirect, get_object_or_404
from django.contrib import messages
Expand All @@ -27,6 +26,18 @@

log = logging.getLogger(__name__)

APPS = [{
'url': 'packagedb',
'intro': 'IRIS Package Database. Contains metadata about packages, '
'such as maintainers, developers, reviewers, versioning.',
'header': 'Package Database',
}, {
'url': 'submissions',
'intro': 'IRIS Submissions. Contains metadata aboutCI and build system '
'statuses and package integration.',
'header': 'Submissions',
}]


def error(request):
"""
Expand All @@ -40,26 +51,16 @@ def index(request):
"""
Returns page index.
"""

apps = []

# Get button info for accessible apps to front page:
for plugin in iter_entry_points(group='iris.app'):
fields = plugin.load()

try:
app = {
# URL is filtered because it's in regexp format of r'^url/'
'url': fields['urlpatterns']['baseurl'].replace('^', ''),
'intro': fields['intro'],
'header': fields['header']
}

apps.append(app)

except KeyError as field:
log.warn('Plugin error, entrypoint field "%s" missing!' % field)

for fields in APPS:
app = {
# URL is filtered because it's in regexp format of r'^url/'
'url': fields['url'],
'intro': fields['intro'],
'header': fields['header']
}
apps.append(app)
return render(request, 'core/index.html', {
'apps': apps,
})
Expand Down
2 changes: 1 addition & 1 deletion iris/packagedb/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

urlpatterns = patterns(
'iris.packagedb.views.base',
url(r'^(?i)$', 'index', name='packagedb'),
url(r'^$', 'index', name='packagedb'),
)

urlpatterns += patterns(
Expand Down
2 changes: 1 addition & 1 deletion iris/submissions/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

urlpatterns = patterns(
'iris.submissions.views.read',
url(r'^$', 'index', name='submissions_index'),
url(r'^$', 'index', name='submissions'),
url(r'^mine/$', 'mine', name='my_submissions'),
url(r'^snapshots/(?P<pkid>\d+)/$', 'snapshot', name='snapshot_detail'),
url(r'^snapshots/product/(?P<product_id>\d+)/$', 'snapshot_by_product', name='snapshot_by_product'),
Expand Down
12 changes: 0 additions & 12 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,6 @@
iris_packagedb.egg-info and iris_submissions.egg-info folders,
respectively, to broadcast their existence to the core app.

Apart from this egg setup, they build from the same binary
as the core application does, and come plugged only when
their plugins are registered under the [iris.app] entrypoint.

This convenience is for RPM packaging purposes and to avoid
setting up multiple setup.py files doing essentially the same thing.
"""
Expand Down Expand Up @@ -87,10 +83,6 @@ def get_version():
namespace_packages=['iris'],
packages=['iris.packagedb'],
include_package_data=True,
entry_points="""
[iris.app]
packagedb=iris.packagedb.plugin:APPINFO
""",
license='GPL-2.0',
description='IRIS Package Database plugin',
)
Expand All @@ -103,10 +95,6 @@ def get_version():
namespace_packages=['iris'],
packages=['iris.submissions'],
include_package_data=True,
entry_points="""
[iris.app]
submissions=iris.submissions.plugin:APPINFO
""",
license='GPL-2.0',
description='IRIS Submissions plugin',
)