Change waffle flag for enrollment throttle to switch

This commit is contained in:
christopher lee
2018-06-08 10:58:06 -04:00
parent 1765c99a5a
commit 443aa7977c
2 changed files with 25 additions and 25 deletions

View File

@@ -1,10 +1,10 @@
"""
Enrollment API helpers and settings
"""
from openedx.core.djangoapps.waffle_utils import (WaffleFlag, WaffleFlagNamespace)
from openedx.core.djangoapps.waffle_utils import (WaffleSwitch, WaffleSwitchNamespace)
WAFFLE_FLAG_NAMESPACE = WaffleFlagNamespace(name='enrollment_api_rate_limit')
WAFFLE_SWITCH_NAMESPACE = WaffleSwitchNamespace(name='enrollment_api_rate_limit')
USE_RATE_LIMIT_400_FOR_STAFF_FOR_ENROLLMENT_API = WaffleFlag(WAFFLE_FLAG_NAMESPACE, 'staff_rate_limit_400')
USE_RATE_LIMIT_100_FOR_STAFF_FOR_ENROLLMENT_API = WaffleFlag(WAFFLE_FLAG_NAMESPACE, 'staff_rate_limit_100')
USE_RATE_LIMIT_40_FOR_ENROLLMENT_API = WaffleFlag(WAFFLE_FLAG_NAMESPACE, 'rate_limit_40')
USE_RATE_LIMIT_400_FOR_STAFF_FOR_ENROLLMENT_API = WaffleSwitch(WAFFLE_SWITCH_NAMESPACE, 'staff_rate_limit_400')
USE_RATE_LIMIT_100_FOR_STAFF_FOR_ENROLLMENT_API = WaffleSwitch(WAFFLE_SWITCH_NAMESPACE, 'staff_rate_limit_100')
USE_RATE_LIMIT_40_FOR_ENROLLMENT_API = WaffleSwitch(WAFFLE_SWITCH_NAMESPACE, 'rate_limit_40')

View File

@@ -87,28 +87,28 @@ class EnrollmentUserThrottle(UserRateThrottle, ApiKeyPermissionMixIn):
# service. These calls are no longer made and the plan is to set the
# rate limit back to its original state. LEARNER-5148
if USE_RATE_LIMIT_400_FOR_STAFF_FOR_ENROLLMENT_API.is_enabled():
THROTTLE_RATES = {
'user': '40/minute',
'staff': '400/minute',
}
elif USE_RATE_LIMIT_100_FOR_STAFF_FOR_ENROLLMENT_API.is_enabled():
THROTTLE_RATES = {
'user': '40/minute',
'staff': '100/minute',
}
elif USE_RATE_LIMIT_40_FOR_ENROLLMENT_API.is_enabled():
THROTTLE_RATES = {
'user': '40/minute',
'staff': '40/minute',
}
else:
THROTTLE_RATES = {
'user': '40/minute',
'staff': '2000/minute',
}
THROTTLE_RATES = {
'user': '40/minute',
'staff': '2000/minute',
}
def allow_request(self, request, view):
if USE_RATE_LIMIT_400_FOR_STAFF_FOR_ENROLLMENT_API.is_enabled():
self.THROTTLE_RATES = {
'user': '40/minute',
'staff': '400/minute',
}
elif USE_RATE_LIMIT_100_FOR_STAFF_FOR_ENROLLMENT_API.is_enabled():
self.THROTTLE_RATES = {
'user': '40/minute',
'staff': '100/minute',
}
elif USE_RATE_LIMIT_40_FOR_ENROLLMENT_API.is_enabled():
self.THROTTLE_RATES = {
'user': '40/minute',
'staff': '40/minute',
}
# Use a special scope for staff to allow for a separate throttle rate
user = request.user
if user.is_authenticated and (user.is_staff or user.is_superuser):