diff --git a/iris/core/settings.py b/iris/core/settings.py index 67a91c1..d7e61f6 100644 --- a/iris/core/settings.py +++ b/iris/core/settings.py @@ -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 @@ -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', @@ -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' diff --git a/iris/core/templates/core/index.html b/iris/core/templates/core/index.html index 1e22be0..cd57087 100644 --- a/iris/core/templates/core/index.html +++ b/iris/core/templates/core/index.html @@ -22,7 +22,7 @@

IRIS Portal

{% for app in apps %}
- + {{ app.header }} »
diff --git a/iris/core/urls.py b/iris/core/urls.py index d954336..933eb23 100644 --- a/iris/core/urls.py +++ b/iris/core/urls.py @@ -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 @@ -40,6 +39,14 @@ url(r'^users(?:/(?P\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: @@ -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) diff --git a/iris/core/views/base.py b/iris/core/views/base.py index ea1f67f..3c13cf5 100644 --- a/iris/core/views/base.py +++ b/iris/core/views/base.py @@ -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 @@ -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): """ @@ -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, }) diff --git a/iris/packagedb/urls.py b/iris/packagedb/urls.py index ea76485..c7e5167 100644 --- a/iris/packagedb/urls.py +++ b/iris/packagedb/urls.py @@ -21,7 +21,7 @@ urlpatterns = patterns( 'iris.packagedb.views.base', - url(r'^(?i)$', 'index', name='packagedb'), + url(r'^$', 'index', name='packagedb'), ) urlpatterns += patterns( diff --git a/iris/submissions/urls.py b/iris/submissions/urls.py index 66c15df..5153259 100644 --- a/iris/submissions/urls.py +++ b/iris/submissions/urls.py @@ -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\d+)/$', 'snapshot', name='snapshot_detail'), url(r'^snapshots/product/(?P\d+)/$', 'snapshot_by_product', name='snapshot_by_product'), diff --git a/setup.py b/setup.py index 2a80e09..29d9857 100644 --- a/setup.py +++ b/setup.py @@ -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. """ @@ -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', ) @@ -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', )