Commit a67e7387 by George Babey

Add back the enterprise-data endpoint

This reverts commit 5d017361, reversing
changes made to 56b2558b.
parent 5d017361
...@@ -10,3 +10,4 @@ John Jarvis <jarv@edx.org> ...@@ -10,3 +10,4 @@ John Jarvis <jarv@edx.org>
Dmitry Viskov <dmitry.viskov@webenterprise.ru> Dmitry Viskov <dmitry.viskov@webenterprise.ru>
Eric Fischer <efischer@edx.org> Eric Fischer <efischer@edx.org>
Kyle McCormick <kylemccor@gmail.com> Kyle McCormick <kylemccor@gmail.com>
George Babey <gbabey@edx.org>
...@@ -6,11 +6,14 @@ ELASTICSEARCH_VERSION = 1.5.2 ...@@ -6,11 +6,14 @@ ELASTICSEARCH_VERSION = 1.5.2
ELASTICSEARCH_PORT = 9223 ELASTICSEARCH_PORT = 9223
TEST_SETTINGS = analyticsdataserver.settings.test 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: requirements:
pip install -q -r requirements/base.txt pip install -q -r requirements/base.txt
production-requirements:
pip install -r requirements.txt
test.install_elasticsearch: test.install_elasticsearch:
curl -L -O https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-$(ELASTICSEARCH_VERSION).zip curl -L -O https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-$(ELASTICSEARCH_VERSION).zip
unzip elasticsearch-$(ELASTICSEARCH_VERSION).zip unzip elasticsearch-$(ELASTICSEARCH_VERSION).zip
...@@ -56,7 +59,13 @@ quality: ...@@ -56,7 +59,13 @@ quality:
validate: test.requirements test quality validate: test.requirements test quality
static:
python manage.py collectstatic --noinput
migrate: migrate:
./manage.py migrate --noinput --run-syncdb --database=default
migrate-all:
$(foreach db_name,$(DATABASES),./manage.py migrate --noinput --run-syncdb --database=$(db_name);) $(foreach db_name,$(DATABASES),./manage.py migrate --noinput --run-syncdb --database=$(db_name);)
loaddata: migrate loaddata: migrate
......
...@@ -7,7 +7,7 @@ class AnalyticsApiRouter(object): ...@@ -7,7 +7,7 @@ class AnalyticsApiRouter(object):
return self._get_database(model._meta.app_label) return self._get_database(model._meta.app_label)
def _get_database(self, 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 getattr(settings, 'ANALYTICS_DATABASE', 'default')
return None return None
......
...@@ -197,7 +197,8 @@ THIRD_PARTY_APPS = ( ...@@ -197,7 +197,8 @@ THIRD_PARTY_APPS = (
'rest_framework.authtoken', 'rest_framework.authtoken',
'rest_framework_swagger', 'rest_framework_swagger',
'django_countries', 'django_countries',
'storages' 'storages',
'enterprise_data'
) )
LOCAL_APPS = ( LOCAL_APPS = (
...@@ -242,6 +243,11 @@ LOGGING = { ...@@ -242,6 +243,11 @@ LOGGING = {
'level': 'DEBUG', 'level': 'DEBUG',
'propagate': True 'propagate': True
}, },
'enterprise_data': {
'handlers': ['console'],
'level': 'INFO',
'propagate': True
},
# See https://elasticutils.readthedocs.io/en/latest/debugging.html # See https://elasticutils.readthedocs.io/en/latest/debugging.html
# INFO-level logs tell us when nodes fail and are resurrected. # INFO-level logs tell us when nodes fail and are resurrected.
'elasticsearch': { 'elasticsearch': {
...@@ -256,7 +262,7 @@ LOGGING = { ...@@ -256,7 +262,7 @@ LOGGING = {
'elasticsearch.trace': { 'elasticsearch.trace': {
'handlers': ['null'], 'handlers': ['null'],
'propagate': False 'propagate': False
} },
}, },
} }
########## END LOGGING CONFIGURATION ########## END LOGGING CONFIGURATION
...@@ -297,6 +303,8 @@ DATABASE_ROUTERS = ['analyticsdataserver.router.AnalyticsApiRouter'] ...@@ -297,6 +303,8 @@ DATABASE_ROUTERS = ['analyticsdataserver.router.AnalyticsApiRouter']
ENABLE_ADMIN_SITE = False ENABLE_ADMIN_SITE = False
LMS_BASE_URL = None
# base url to generate link to user api # base url to generate link to user api
LMS_USER_ACCOUNT_BASE_URL = None LMS_USER_ACCOUNT_BASE_URL = None
...@@ -319,6 +327,14 @@ AGGREGATE_PAGE_SIZE = 10 ...@@ -319,6 +327,14 @@ AGGREGATE_PAGE_SIZE = 10
# to course_summaries/ # to course_summaries/
DATA_UPLOAD_MAX_NUMBER_FIELDS = None 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 ########## END ANALYTICS DATA API CONFIGURATION
......
...@@ -74,4 +74,11 @@ COURSE_BLOCK_API_AUTH_TOKEN = 'paste auth token here' # see README for instruct ...@@ -74,4 +74,11 @@ COURSE_BLOCK_API_AUTH_TOKEN = 'paste auth token here' # see README for instruct
# hosts. # hosts.
ALLOWED_HOSTS = ['localhost', '127.0.0.1', '::1', 'analyticsapi'] 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 ########## END ANALYTICS DATA API CONFIGURATION
...@@ -33,6 +33,9 @@ with open(CONFIG_FILE) as f: ...@@ -33,6 +33,9 @@ with open(CONFIG_FILE) as f:
REPORT_DOWNLOAD_BACKEND = config_from_yaml.pop('REPORT_DOWNLOAD_BACKEND', {}) 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(config_from_yaml)
vars().update(REPORT_DOWNLOAD_BACKEND) vars().update(REPORT_DOWNLOAD_BACKEND)
......
...@@ -21,6 +21,8 @@ INSTALLED_APPS += ( ...@@ -21,6 +21,8 @@ INSTALLED_APPS += (
'django_nose', 'django_nose',
) )
LMS_BASE_URL = 'http://lms-host'
LMS_USER_ACCOUNT_BASE_URL = 'http://lms-host' LMS_USER_ACCOUNT_BASE_URL = 'http://lms-host'
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner' TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
......
...@@ -24,5 +24,7 @@ if settings.ENABLE_ADMIN_SITE: # pragma: no cover ...@@ -24,5 +24,7 @@ if settings.ENABLE_ADMIN_SITE: # pragma: no cover
admin.autodiscover() admin.autodiscover()
urlpatterns.append(url(r'^site/admin/', include(admin.site.urls))) 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 handler500 = 'analyticsdataserver.views.handle_internal_server_error' # pylint: disable=invalid-name
handler404 = 'analyticsdataserver.views.handle_missing_resource_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 ...@@ -17,3 +17,5 @@ edx-ccx-keys==0.2.1
edx-django-release-util==0.3.0 edx-django-release-util==0.3.0
edx-opaque-keys==0.4.0 edx-opaque-keys==0.4.0
edx-rest-api-client==1.4.0 # Apache 2.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 @@ ...@@ -4,5 +4,6 @@
MySQL-python==1.2.5 # GPL License MySQL-python==1.2.5 # GPL License
PyYAML==3.11 # MIT PyYAML==3.11 # MIT
gevent==1.0.2
gunicorn==19.6.0 # MIT gunicorn==19.6.0 # MIT
path.py==8.2.1 # 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