The behavior of the MariaDB backend has changed behavior for UUIDField
from a `CharField(32)` to an actual `uuid` type. This is not converted
automatically, which results in all writes to the affected columns to
error with a message about the data being too long. This is because the
actual tring being written is a UUID with the `-` included, resulting in
a 36 character value which can't be inserted into a 32 character column.
In the context of edx-platform django settings,
devstack_docker is an alias to devstack. Both
are deprecated, technically, but we currently
want to remove all devstack-related settings files
except devstack.py (which tutor still uses). So,
in order to remove devstack_docker.py, we update
its references to devstack.py
* chore: update API endpoints to support default JWT auth
The default DRF Auth classes were recently updated to allow for both JWT and Session auth by default. Any endpoint that overrides the AUTHENTICATION_CLASSES but has just session, just JWT or just both of those should be updated to remove the override.
Details in https://github.com/openedx/edx-platform/issues/33662
We are lacking information in Flower about our Celery tasks that are
marked as successful but are actually failing.
Attempt to remove ignore_result=True to see if this is suppressing
valuable debugging information.
On running the management command, we get the folowing error:
kombu.exceptions.EncodeError: Object of type User is not JSON serializable
Pass a string of the username instead in the parameters of the tasks
created by the expire_and_create_entitlements management command.
* fix: EntitlementSupportDetail.action is EXPIRE, not EXPIRED
* fix: pass list of entitlement ids, not QuerySet subset for Celery json parser
On running the management command, we get the folowing error:
kombu.exceptions.EncodeError: Object of type CourseEntitlement is not JSON serializable
Pass a list of ints instead of a QuerySet object in the parameters of
the tasks created by the expire_and_create_entitlements management
command.
Not much of an optimization, but might shave a couple seconds if the
number of entitlements on production are large.
Django will use the _result_cache if the QuerySet has already been
retrieved:
107865780a/django/db/models/query.py (L597-L598)
* feat: allow course entitlements REST API to be filtered on course_uuid
* feat: add field to filter out entitlements with null expired_at values
* chore: update tests