Refactor ara-server into namespaced python modules
This is a structure that will allow us to install everything under "ara" as separate packages but inside the same module. For example, installing ara-server will provide ara.server and ara.api. Installing ara-clients will provide ara.clients, ara-plugins will supply ara.plugins, etc. Change-Id: I27ee431c4e5d946f558befc12937ba2f3c0d020b
This commit is contained in:
parent
68cbbe24bc
commit
1abe276bae
|
@ -91,6 +91,6 @@ ENV/
|
|||
# Rope project settings
|
||||
.ropeproject
|
||||
|
||||
/db.sqlite3
|
||||
.*/db.sqlite3
|
||||
www/
|
||||
data/
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
__import__('pkg_resources').declare_namespace(__name__)
|
|
@ -1,4 +1,4 @@
|
|||
from api import models
|
||||
from ara.api import models
|
||||
from django.contrib import admin
|
||||
from django.contrib.auth.models import Group
|
||||
|
|
@ -2,4 +2,4 @@ from django.apps import AppConfig
|
|||
|
||||
|
||||
class ApiConfig(AppConfig):
|
||||
name = 'api'
|
||||
name = 'ara.api'
|
|
@ -19,13 +19,13 @@ import json
|
|||
import hashlib
|
||||
import logging
|
||||
import zlib
|
||||
from api import models
|
||||
from ara.api import models
|
||||
from django.utils import timezone
|
||||
from rest_framework import serializers
|
||||
|
||||
DATE_FORMAT = "(iso-8601: 2016-05-06T17:20:25.749489-04:00)"
|
||||
DURATION_FORMAT = "([DD] [HH:[MM:]]ss[.uuuuuu])"
|
||||
logger = logging.getLogger('api.serializers')
|
||||
logger = logging.getLogger('ara.api.serializers')
|
||||
|
||||
|
||||
class CompressedTextField(serializers.CharField):
|
|
@ -1,6 +1,6 @@
|
|||
import factory
|
||||
|
||||
from api import models
|
||||
from ara.api import models
|
||||
|
||||
|
||||
class FileContentFactory(factory.DjangoModelFactory):
|
|
@ -1,7 +1,7 @@
|
|||
from rest_framework.test import APITestCase
|
||||
|
||||
from api import models, serializers
|
||||
from api.tests import factories
|
||||
from ara.api import models, serializers
|
||||
from ara.api.tests import factories
|
||||
|
||||
|
||||
class FileTestCase(APITestCase):
|
|
@ -1,7 +1,7 @@
|
|||
from rest_framework.test import APITestCase
|
||||
|
||||
from api import serializers, models
|
||||
from api.tests import factories
|
||||
from ara.api import serializers, models
|
||||
from ara.api.tests import factories
|
||||
|
||||
|
||||
class FileContentTestCase(APITestCase):
|
|
@ -2,8 +2,8 @@ import datetime
|
|||
from django.utils import timezone
|
||||
from rest_framework.test import APITestCase
|
||||
|
||||
from api import models, serializers
|
||||
from api.tests import factories
|
||||
from ara.api import models, serializers
|
||||
from ara.api.tests import factories
|
||||
|
||||
|
||||
class PlaybookTestCase(APITestCase):
|
|
@ -1,8 +1,8 @@
|
|||
import time
|
||||
from rest_framework.test import APITestCase
|
||||
|
||||
from api import models
|
||||
from api.tests import factories
|
||||
from ara.api import models
|
||||
from ara.api.tests import factories
|
||||
|
||||
|
||||
class PlaybookFileTestCase(APITestCase):
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
from django.conf.urls import url
|
||||
from rest_framework.urlpatterns import format_suffix_patterns
|
||||
from api import views
|
||||
from ara.api import views
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', views.api_root),
|
|
@ -18,7 +18,7 @@ from rest_framework.decorators import api_view, detail_route
|
|||
from rest_framework.response import Response
|
||||
from rest_framework.reverse import reverse
|
||||
|
||||
from api import models, serializers
|
||||
from ara.api import models, serializers
|
||||
|
||||
from rest_framework import generics, status
|
||||
|
|
@ -0,0 +1 @@
|
|||
__import__('pkg_resources').declare_namespace(__name__)
|
|
@ -4,7 +4,7 @@ import random
|
|||
import sys
|
||||
from envparse import env
|
||||
|
||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||
|
||||
|
||||
def get_secret_key(secret_key):
|
||||
|
@ -29,7 +29,7 @@ INSTALLED_APPS = [
|
|||
'django.contrib.messages',
|
||||
'django.contrib.staticfiles',
|
||||
'rest_framework',
|
||||
'api'
|
||||
'ara.api'
|
||||
]
|
||||
|
||||
MIDDLEWARE = [
|
||||
|
@ -44,7 +44,7 @@ MIDDLEWARE = [
|
|||
|
||||
CORS_ORIGIN_ALLOW_ALL = True
|
||||
|
||||
ROOT_URLCONF = 'ara.urls'
|
||||
ROOT_URLCONF = 'ara.server.urls'
|
||||
|
||||
TEMPLATES = [
|
||||
{
|
||||
|
@ -62,7 +62,7 @@ TEMPLATES = [
|
|||
},
|
||||
]
|
||||
|
||||
WSGI_APPLICATION = 'ara.wsgi.application'
|
||||
WSGI_APPLICATION = 'ara.server.wsgi.application'
|
||||
|
||||
DATABASES = {
|
||||
'default': {
|
|
@ -7,7 +7,7 @@ admin.site.site_header = 'Administration'
|
|||
admin.site.index_title = 'Administration Ara'
|
||||
|
||||
routes = [
|
||||
url(r'^api/v1/', include('api.urls')),
|
||||
url(r'^api/v1/', include('ara.api.urls')),
|
||||
url(r'^admin/', admin.site.urls),
|
||||
]
|
||||
urlpatterns = routes + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
|
@ -2,6 +2,6 @@ import os
|
|||
|
||||
from django.core.wsgi import get_wsgi_application
|
||||
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ara.settings")
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ara.server.settings")
|
||||
|
||||
application = get_wsgi_application()
|
|
@ -3,7 +3,7 @@ import os
|
|||
import sys
|
||||
|
||||
if __name__ == "__main__":
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ara.settings")
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ara.server.settings")
|
||||
|
||||
from django.core.management import execute_from_command_line
|
||||
|
||||
|
|
12
setup.cfg
12
setup.cfg
|
@ -1,11 +1,11 @@
|
|||
[metadata]
|
||||
name = ara-backend
|
||||
summary = ARA Records Ansible backend
|
||||
name = ara-server
|
||||
summary = ARA Records Ansible API and Server components
|
||||
description-file =
|
||||
README.rst
|
||||
author = OpenStack Community
|
||||
author-email = openstack-dev@lists.openstack.org
|
||||
home-page = https://github.com/openstack/ara-backend
|
||||
home-page = https://github.com/openstack/ara-server
|
||||
classifier =
|
||||
Environment :: OpenStack
|
||||
Intended Audience :: Information Technology
|
||||
|
@ -26,8 +26,11 @@ setup-hooks =
|
|||
pbr.hooks.setup_hook
|
||||
|
||||
[files]
|
||||
namespace_packages =
|
||||
ara.api
|
||||
ara.server
|
||||
packages =
|
||||
ara-backend
|
||||
ara
|
||||
|
||||
[build_sphinx]
|
||||
source-dir = doc/source
|
||||
|
@ -41,7 +44,6 @@ upload-dir = docs/html
|
|||
ignore_errors = True
|
||||
include =
|
||||
ara/*
|
||||
api/*
|
||||
omit =
|
||||
/usr*
|
||||
setup.py
|
||||
|
|
10
tox.ini
10
tox.ini
|
@ -19,11 +19,11 @@ commands = sphinx-build -W -b html doc/source doc/build/html
|
|||
|
||||
[testenv:pep8]
|
||||
commands =
|
||||
flake8 ara api
|
||||
bandit -r ara api
|
||||
flake8 ara
|
||||
bandit -r ara
|
||||
|
||||
[testenv:py35]
|
||||
commands = python manage.py test
|
||||
commands = python manage.py test ara
|
||||
|
||||
[testenv:runserver]
|
||||
commands =
|
||||
|
@ -44,8 +44,8 @@ setenv =
|
|||
[testenv:cover]
|
||||
commands =
|
||||
coverage erase
|
||||
coverage run {toxinidir}/manage.py test ara
|
||||
coverage run -a {toxinidir}/manage.py test api
|
||||
coverage run {toxinidir}/manage.py test ara/server
|
||||
coverage run -a {toxinidir}/manage.py test ara/api
|
||||
coverage html
|
||||
|
||||
[flake8]
|
||||
|
|
Loading…
Reference in New Issue