Commit Graph

75 Commits

Author SHA1 Message Date
Josh McLaughlin
73fd2ed849 Update default for override to avoid setting duplication 2020-09-25 21:50:11 -07:00
Alan Evangelista
b9559fc934 Move Celery check task to the high priority queue
Currently, LMS uses 3 Celery workers: lms_default_1, lms_high_1 and
lms_high_mem_1. Each Celery worker sends messages to a single queue:
edx.core.default, edx.core.high and edx.core.high_mem, respectively.
The number of child processes per Celery worker is set to 1. Due to
this configuration, any task in a queue blocks all other tasks.

Currently, the Celery check task submitted by the /heartbeat?extended
LMS HTTP API endpoint runs in the default queue. When some slow task
(eg course grades creation) is sent to the default queue, it will
block the Celery check task, which will expire and the heartbeat endpoint
will fail. This patch moves the task to another queue which has
only shorter tasks and in which this problem will not occur.

Use a Django setting for the Celery check task routing key so that
it can be overriden by individual OpenEDX instances via JSON
env files.
2020-09-24 01:27:08 -07:00
Soban Javed
b7ca6d5619 Upgrade celery to 4.4.7
Replace django-celery with django-celery-results
Upgrade redis to latest
2020-09-22 16:20:45 +05:00
Saleem Latif
9b72042bf4 Merge pull request #24854 from edx/saleem-latif/3336
ENT-3336: Added default for new enterprise setting INTEGRATED_CHANNELS_API_CHUNK_TRANSMISSION_LIMIT
2020-08-28 14:04:15 +05:00
Saleem Latif
c5502057b1 Added default for new enterprise setting INTEGRATED_CHANNELS_API_CHUNK_TRANSMISSION_LIMIT 2020-08-28 13:17:49 +05:00
Soban Javed
e945013b39 Make redis broker compatible with celery 4.0 2020-08-27 18:46:33 +05:00
Troy Sankey
6e8a114b96 Merge pull request #24823 from edx/pwnage101/cleanup-unused-config-root
Cleanup unused CONFIG_ROOT variable and dead code.
2020-08-26 10:20:55 -04:00
Sid Verma
8d33a5a3e1 Add indexing support for blockstore content libraries 2020-08-24 10:45:01 -04:00
Troy Sankey
3b6b066c72 Cleanup unused CONFIG_ROOT variable and dead code.
From what I've gleaned, CONFIG_FILE (and LMS_CFG and STUDIO_CFG
environment variables) supercedes CONFIG_ROOT.  There's no code anymore
that reads the value of the CONFIG_ROOT django setting, and in turn the
CONFIG_ROOT environment variable.

Tangentially related to DENG-369
2020-08-20 16:30:33 -04:00
uzairr
7bc17c7dd9 Ratelimit the registration endpoint
PROD-880
2020-08-20 18:38:26 +05:00
Manjinder Singh
c76ed6ae45 Extracting plugin app from edx-platform (#24678)
* Moving plugins infrastructure to edx-django-utils
This PR extracts the code that enables plugins in edx-platform and puts it in edx-django-utils. This is done to allow other IDAS to add plugin functionality.
2020-08-12 07:48:53 -04:00
Simon Chen
198c4ad9a0 MST-331 Add cors header configs to CMS so it can be turned on (#24571)
* MST-331 Add cors header configs to CMS so it can be turned on

* feedback
2020-07-24 08:09:41 -04:00
Sid Verma
c609451d2e [BD-14] Limit number of blocks allowed in content libraries (#24276)
* Enforce limit on number of blocks allowed in library (blockstore)

* Enforce limit on number of blocks allowed in library (modulestore)

* Changes from review feedback
2020-07-13 15:49:47 -04:00
Feanil Patel
278b747918 Don't fail to provision if we can't find the revision_config_file. 2020-06-08 16:21:30 -04:00
Aarif
98af9ce418 remove useless-supression warnings 2020-05-01 19:42:15 +05:00
Feanil Patel
db4fd4525e Don't explicitly set the email backend in production.py
We shouldn't be explicitly setting this here. It's already set in all of
our override files and not everyone who wants to use production.py wants
to use SES so we shouldn't hardcode it here.

Also move the other settings to above the config loading so that all
config can be overridden by the config file.
2020-04-22 11:20:46 -04:00
Feanil Patel
791666fb7e Remove redundant settings.
Now that we autoload most keys directly from the yaml file into the
settings context.  We don't need boilerplate of the form:

KEY = ENV_TOKENS.get('KEY', KEY)
KEY = AUTH_TOKENS.get('KEY', KEY)

which tries to get the value of KEY from the config file but if it's not
there it pulls it from the defaults found in common.py
2020-04-17 15:55:12 -04:00
Awais Jibran
804fac9358 Adds retry logic for software secure 2020-04-13 14:14:11 +05:00
Feanil Patel
bf320f038b Find more vars that are partially updated. 2020-04-09 15:27:28 -04:00
Feanil Patel
75f663791e Account for dicts that don't get replaced wholesale.
Right now we have a few settings that are not whoesale replaced but
piecemeal updated. So we remove them from the mass update.
2020-04-09 15:27:28 -04:00
Feanil Patel
7c0c71ca69 Auto load any keys/values from the yaml config file.
This should allow us to remove all the boilerplate code in this file
where a name is pulled from the config dict and put into the top level
namespace of the settings module.

We do this first so that any logic that adds more complex or dynamic
keys will still run and is safe.

Now that this is here we can start removing any simple boilerplate.
2020-04-09 15:27:28 -04:00
Waheed Ahmed
3dc3e10819 Revert "Adds retry logic for software secure." 2020-04-07 20:40:06 +05:00
Awais Jibran
4ead215665 Adds retry logic for ss.
1. Created a new celery queue with key `SOFTWARE_SECURE_VERIFICATION_ROUTING_KEY`.
2. Added a celery task with retry logic.
3. sorted imports with isort.
4. Changed deprecated `log.warn` => `log.warning`.
2020-04-06 15:16:56 +05:00
Awais Qureshi
0f002bafb8 BOM-1399
checking django-wiki and fixing deprecation warnings.
2020-03-16 14:37:18 +05:00
Samuel Walladge
badd608136 Allow overriding broker heartbeat (#21567)
BROKER_HEARTBEAT appears to interfere with the celery worker
configuration. If we want to disable or change the heartbeat interval,
It must be from these configuration options.

Just setting --without-heartbeat and/or --heartbeat-interval on the
workers does not fully work. Eg. --without-heartbeat disables sending
heartbeats, but BROKER_HEARTBEAT = 60 means that the connection will get
a 60s heartbeat interval negotiated.
2020-03-11 09:28:38 -04:00
Manjinder Singh
7d2ff9cd3f Removing all settings that have OIDC in name (#23251)
* Removing all settings that have OIDC in name

* Removing ENABLE_DOP_ADAPTER

* changes JWT_ISSUER value in devstack
2020-03-04 09:06:29 -05:00
Giovanni Cimolin da Silva
6305fbdfb6 Add mktg links override capability
This commit adds a feature that allows overriding any marketing URL, either by configuration on lms.env.json or SiteConfiguration, regardless if a marketing website is set up.
The links can be set by passing MKTG_URL_OVERRIDES to either `lms.env.json` or `SiteConfiguration`.
2020-02-25 13:51:58 -03:00
Ayub-khan
d3a02bc3e5 BOM-1121
-Updated middleware setting to use use middleware insted of
middleware_classes
-github install of django-method-override fork to support
new style middleware in django1.11
2020-02-11 14:35:26 +05:00
Ahtisham Shahid
0ce89b70eb Merge pull request #22873 from edx/ahtisham/PROD-1126
created separate const for search_index_update queue
2020-01-21 11:45:46 +05:00
Brandon Baker
4fc19f5d8c Add enterprise catalog url settings to CMS (#22895) 2020-01-17 14:26:42 -05:00
Ahtisham Shahid
7a026b7850 created const for update_search_index 2020-01-17 14:29:30 +05:00
Calen Pennington
dd5f85c870 Read STATICFILES_STORAGE_KWARGS from config to allow separate storage configuration for static assets 2020-01-07 14:03:37 -05:00
Calen Pennington
e654036d54 Load any AWS_ prefixed settings from ENV_TOKENS to allow S3Boto3Storage to be correctly configured 2020-01-03 11:16:03 -05:00
Calen Pennington
151b309225 Convert custom storage subclasses into mixins so that we can store to either the filesystem or S3 2020-01-02 14:49:19 -05:00
Feanil Patel
6e3fe00fff Fix all E303 pep8 errors. 2019-12-30 12:25:38 -05:00
Feanil Patel
9cf2f9f298 Run 2to3 -f future . -w
This will remove imports from __future__ that are no longer needed.

https://docs.python.org/3.5/library/2to3.html#2to3fixer-future
2019-12-30 10:35:30 -05:00
Calen Pennington
11e163d420 Read the current edx-platform git revision from a file on disk 2019-12-17 07:44:28 -05:00
Robert Raposa
2202545aec remove studio signin and signup pages
This completes the work started in https://github.com/edx/edx-platform/pull/19453
to use the LMS login and registration for Studio, rather than Studio
providing its own implementation.

LMS login/registration are being used for the following reasons:
1. LMS logistration properly handles all SSO integrations.
2. A single logistration is simpler to maintain and understand.
3. Allows Studio to work more like all other IDAs that use LMS
logistration.

The original switch to use LMS logistration for Studio also added the
toggle `DISABLE_STUDIO_SSO_OVER_LMS` to provide the community some
additional time for switching. This commit removes this toggle, which
at this point means all deployments will use the LMS logistration.

This change requires sharing cookies across LMS and Studio. Should that
prove to be a problem for certain Open edX instances, there are
discussions of possible alternative solutions.
See https://github.com/edx/edx-platform/pull/19845#issuecomment-559154256

Detailed changes:
* Fix some Studio links that still went to old Studio signin and signup.
* Remove DISABLE_STUDIO_SSO_OVER_LMS feature toggle.
* Remove old studio signin and signup pages and templates.
* Fix url name "login", which had different meanings for Studio and LMS.
* Use the following settings: LOGIN_URL, FRONTEND_LOGIN_URL,
FRONTEND_LOGOUT_URL, and FRONTEND_REGISTER_URL.
* Redirect /signin and /signup to the LMS logistration.
* Add custom metric `uses_pattern_library`.
* Add custom metric `student_activate_account`.
* Add Django Settings to allow /signin, /signup, and /login_post to be
disabled once ready.

This work also relates to ARCH-218 and DEPR-6.

ARCH-1253
2019-12-04 02:36:36 -05:00
Matt Tuchfarber
59ac1b009a Add manual enrollment role choices to CMS
Required these be added to CMS since enterprise is installed in the CMS
and there are import failures when these keys don't exist
2019-11-14 11:42:37 -05:00
Braden MacDonald
05d7592eda Read CMS_BASE from the environment, define it explicitly as public host 2019-10-31 16:17:08 -07:00
Ned Batchelder
d585a8f71d URLs and settings for OpenAPI generation
API docs are now always available, no more toggle to enable them.
2019-09-17 16:54:27 -04:00
Albert (AJ) St. Aubin
9eabc2a8f9 Added FERNET_KEY information to the CMS configuration (#21561)
[ENT-2191]
2019-09-04 12:20:56 -04:00
Feanil Patel
3205cdab5f Merge pull request #21536 from edx/feanil/get_runserver_working
Fix errors when running runserver in python 3.
2019-09-03 11:06:25 -04:00
Feanil Patel
ca9cfb128c Fix errors when running runserver in python 3.
- The fields need to be unicode not bytes.  In python 2 it was auto
converting.
- The static url base has been allowed to be a unicode string for a
while.
2019-09-03 09:10:58 -04:00
Braden MacDonald
d3f6ed09d8 Learning Contexts, New XBlock Runtime, Blockstore API Client + Content Libraries
https://github.com/edx/edx-platform/pull/20645

This introduces:
* A new XBlock runtime that can read and write XBlocks that are persisted using
  Blockstore instead of Modulestore. The new runtime is currently isolated so
  that it can be tested without risk to the current courseware/runtime.
* Content Libraries v2, which store XBlocks in Blockstore not modulestore
* An API Client for Blockstore
* "Learning Context" plugin API. A learning context is a more abstract concept
  than a course; it's a collection of XBlocks that serves some learning purpose.
2019-08-30 10:31:15 -07:00
Feanil Patel
9925aaadb9 Be able to override this setting from yaml. 2019-08-16 15:09:13 -04:00
Diana Huang
bf7dad15e4 Remove microsite djangoapp except migrations and configuration. 2019-08-16 09:42:57 -04:00
Cory Lee
a8fd936d27 Delete enterprise reporting secret because I believe it is not used anywhere (#21309) 2019-08-08 13:00:57 -04:00
Ayub khan
65efedc912 INCR-347 python3 compatibility 2019-07-19 13:52:49 +05:00
Kyle McCormick
35d88ae0e2 Load COURSE_CATALOG_API_URL setting from env in Studio 2019-07-17 11:05:44 -04:00