Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-analytics-data-api
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-analytics-data-api
Commits
dd2bc1e4
Unverified
Commit
dd2bc1e4
authored
Apr 23, 2018
by
George Babey
Committed by
GitHub
Apr 23, 2018
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #186 from edx/gbabey/enterprise-api
Add back the support for enterprise-data endpoint
parents
5d017361
a67e7387
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
47 additions
and
4 deletions
+47
-4
AUTHORS
+1
-0
Makefile
+10
-1
analyticsdataserver/router.py
+1
-1
analyticsdataserver/settings/base.py
+18
-2
analyticsdataserver/settings/local.py
+7
-0
analyticsdataserver/settings/production.py
+3
-0
analyticsdataserver/settings/test.py
+2
-0
analyticsdataserver/urls.py
+2
-0
requirements/base.txt
+2
-0
requirements/production.txt
+1
-0
No files found.
AUTHORS
View file @
dd2bc1e4
...
@@ -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>
Makefile
View file @
dd2bc1e4
...
@@ -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
...
...
analyticsdataserver/router.py
View file @
dd2bc1e4
...
@@ -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
...
...
analyticsdataserver/settings/base.py
View file @
dd2bc1e4
...
@@ -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
...
...
analyticsdataserver/settings/local.py
View file @
dd2bc1e4
...
@@ -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
analyticsdataserver/settings/production.py
View file @
dd2bc1e4
...
@@ -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
)
...
...
analyticsdataserver/settings/test.py
View file @
dd2bc1e4
...
@@ -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'
...
...
analyticsdataserver/urls.py
View file @
dd2bc1e4
...
@@ -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
requirements/base.txt
View file @
dd2bc1e4
...
@@ -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
requirements/production.txt
View file @
dd2bc1e4
...
@@ -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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment