Commit 142de26e by George Babey

Support for enterprise-data-api endpoint

parent 0a9affa5
......@@ -10,3 +10,4 @@ John Jarvis <jarv@edx.org>
Dmitry Viskov <dmitry.viskov@webenterprise.ru>
Eric Fischer <efischer@edx.org>
Kyle McCormick <kylemccor@gmail.com>
George Babey <gbabey@edx.org>
......@@ -6,11 +6,14 @@ ELASTICSEARCH_VERSION = 1.5.2
ELASTICSEARCH_PORT = 9223
TEST_SETTINGS = analyticsdataserver.settings.test
.PHONY: requirements develop clean diff.report view.diff.report quality
.PHONY: requirements develop clean diff.report view.diff.report quality static
requirements:
pip install -q -r requirements/base.txt
production-requirements:
pip install -r requirements.txt
test.install_elasticsearch:
curl -L -O https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-$(ELASTICSEARCH_VERSION).zip
unzip elasticsearch-$(ELASTICSEARCH_VERSION).zip
......@@ -56,7 +59,13 @@ quality:
validate: test.requirements test quality
static:
python manage.py collectstatic --noinput
migrate:
./manage.py migrate --noinput --run-syncdb --database=default
migrate-all:
$(foreach db_name,$(DATABASES),./manage.py migrate --noinput --run-syncdb --database=$(db_name);)
loaddata: migrate
......
......@@ -7,7 +7,7 @@ class AnalyticsApiRouter(object):
return self._get_database(model._meta.app_label)
def _get_database(self, app_label):
if app_label == 'v0':
if app_label in ('v0', 'enterprise_data'):
return getattr(settings, 'ANALYTICS_DATABASE', 'default')
return None
......
......@@ -197,7 +197,8 @@ THIRD_PARTY_APPS = (
'rest_framework.authtoken',
'rest_framework_swagger',
'django_countries',
'storages'
'storages',
'enterprise_data'
)
LOCAL_APPS = (
......@@ -242,6 +243,11 @@ LOGGING = {
'level': 'DEBUG',
'propagate': True
},
'enterprise_data': {
'handlers': ['console'],
'level': 'INFO',
'propagate': True
},
# See https://elasticutils.readthedocs.io/en/latest/debugging.html
# INFO-level logs tell us when nodes fail and are resurrected.
'elasticsearch': {
......@@ -256,7 +262,7 @@ LOGGING = {
'elasticsearch.trace': {
'handlers': ['null'],
'propagate': False
}
},
},
}
########## END LOGGING CONFIGURATION
......@@ -297,6 +303,8 @@ DATABASE_ROUTERS = ['analyticsdataserver.router.AnalyticsApiRouter']
ENABLE_ADMIN_SITE = False
LMS_BASE_URL = None
# base url to generate link to user api
LMS_USER_ACCOUNT_BASE_URL = None
......@@ -319,6 +327,14 @@ AGGREGATE_PAGE_SIZE = 10
# to course_summaries/
DATA_UPLOAD_MAX_NUMBER_FIELDS = None
JWT_AUTH = {
'JWT_ALGORITHM': 'HS256',
'JWT_AUDIENCE': 'lms-key',
'JWT_ISSUER': 'http://127.0.0.1:8000/oauth2',
'JWT_DECODE_HANDLER': 'edx_rest_framework_extensions.utils.jwt_decode_handler',
'JWT_VERIFY_AUDIENCE': False,
}
########## END ANALYTICS DATA API CONFIGURATION
......
......@@ -74,4 +74,11 @@ COURSE_BLOCK_API_AUTH_TOKEN = 'paste auth token here' # see README for instruct
# hosts.
ALLOWED_HOSTS = ['localhost', '127.0.0.1', '::1', 'analyticsapi']
JWT_AUTH.update({
'JWT_SECRET_KEY': 'lms-secret',
'JWT_ISSUER': 'http://edx.devstack.lms:18000/oauth2',
'JWT_AUDIENCE': None,
'JWT_VERIFY_AUDIENCE': False,
})
########## END ANALYTICS DATA API CONFIGURATION
......@@ -33,6 +33,9 @@ with open(CONFIG_FILE) as f:
REPORT_DOWNLOAD_BACKEND = config_from_yaml.pop('REPORT_DOWNLOAD_BACKEND', {})
JWT_AUTH_CONFIG = config_from_yaml.pop('JWT_AUTH', {})
JWT_AUTH.update(JWT_AUTH_CONFIG)
vars().update(config_from_yaml)
vars().update(REPORT_DOWNLOAD_BACKEND)
......
......@@ -21,6 +21,8 @@ INSTALLED_APPS += (
'django_nose',
)
LMS_BASE_URL = 'http://lms-host'
LMS_USER_ACCOUNT_BASE_URL = 'http://lms-host'
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
......
......@@ -24,5 +24,7 @@ if settings.ENABLE_ADMIN_SITE: # pragma: no cover
admin.autodiscover()
urlpatterns.append(url(r'^site/admin/', include(admin.site.urls)))
urlpatterns.append(url(r'', include('enterprise_data.urls')))
handler500 = 'analyticsdataserver.views.handle_internal_server_error' # pylint: disable=invalid-name
handler404 = 'analyticsdataserver.views.handle_missing_resource_error' # pylint: disable=invalid-name
......@@ -17,3 +17,5 @@ edx-ccx-keys==0.2.1
edx-django-release-util==0.3.0
edx-opaque-keys==0.4.0
edx-rest-api-client==1.4.0 # Apache 2.0
edx-drf-extensions==1.2.4
edx-enterprise-data==0.1.0
......@@ -4,5 +4,6 @@
MySQL-python==1.2.5 # GPL License
PyYAML==3.11 # MIT
gevent==1.0.2
gunicorn==19.6.0 # MIT
path.py==8.2.1 # MIT
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment