oncall-engine/engine
Joey Orlando eb0f465970
add get_cached_oncall_users_for_multiple_schedules method + add DELETE /alertgroups/<id> internal API endpoint (#3280)
# What this PR does

This PR:
- adds a new method
`apps.schedules.ical_utils.get_cached_oncall_users_for_multiple_schedules`.
In short this method basically adds a layer of caching on top of
`apps.schedules.ical_utils.get_oncall_users_for_multiple_schedules`. We
store one cache value for each schedule. Cache results are stored for 15
minutes. To me this feels like a good balance between improving
performance + returning stale results. Cache values are stored as:
  - key = `f"schedule_{schedule.public_primary_key}_oncall_users"`
- value = `[user.public_primary_key for user in
schedule.currently_oncall_users]`
- adds a `DELETE /alertgroups/<id>` internal API endpoint (needed by
Grafana Incident for the Add Responders integration)
- updates the `is_currently_oncall` query parameter for the `GET /users`
internal API endpoint to return ALL users when the query param value `==
"all"`

## Which issue(s) this PR fixes

https://github.com/grafana/oncall-private/issues/2264

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-11-06 15:30:32 -05:00
..
apps add get_cached_oncall_users_for_multiple_schedules method + add DELETE /alertgroups/<id> internal API endpoint (#3280) 2023-11-06 15:30:32 -05:00
common Use started_at for alert group order in paginator (#3271) 2023-11-03 17:29:21 +00:00
config_integrations Improve template to handle empty group labels (#2794) 2023-08-17 07:52:05 +00:00
engine Simplify integrations cache on startupprobe (#3274) 2023-11-06 18:03:46 +00:00
settings Improve performance of GET /users and GET /teams endpoints used by add responders popup (#3241) 2023-11-03 12:40:54 -04:00
static/images remove django admin panel (#2731) 2023-08-02 14:26:50 -04:00
type_stubs/icalendar continue addressing mypy violations (#2170) 2023-06-27 10:23:08 +00:00
.dockerignore One startup command to rule them all (#760) 2022-11-07 16:34:43 +01:00
.gitignore modify push notification settings + use fcm-django library (#998) 2022-12-20 12:41:34 +01:00
celery_with_exporter.sh Add flag to debug logs (#912) 2022-11-29 11:16:42 +08:00
conftest.py Move cache clear to fixtures, fix some deprecation notices (#3269) 2023-11-06 16:52:50 +00:00
Dockerfile Fix tilt file cache_from, optimise dockerfile (#3264) 2023-11-06 12:37:07 +08:00
manage.py World, meet OnCall! 2022-06-03 08:09:47 -06:00
pyproject.toml Re-enable a few mypy rules + fix existing errors (#2725) 2023-08-03 09:43:03 +00:00
requirements-dev.txt re-enable mypy GitHub Actions CI job (#2390) 2023-06-29 14:01:52 +00:00
requirements.txt Bump django from 4.2.6 to 4.2.7 in /engine (#3263) 2023-11-03 13:22:38 +00:00
tox.ini Minor formatting changes (#2641) 2023-07-26 14:45:44 +01:00
uwsgi.ini Use Tilt for local development (#1396) 2023-09-07 19:38:19 +08:00
wait_for_test_mysql_start.sh Revert "Revert "speed up ci builds from 15 to <7 minutes"" (#1643) 2023-03-28 09:34:03 +02:00