feat: remove manual sends of events (#33642)
This commit is contained in:
@@ -13,14 +13,7 @@ from django.dispatch import receiver
|
||||
from edx_toggles.toggles import SettingToggle
|
||||
from opaque_keys.edx.keys import CourseKey
|
||||
from openedx_events.content_authoring.data import CourseCatalogData, CourseScheduleData
|
||||
from openedx_events.content_authoring.signals import (
|
||||
COURSE_CATALOG_INFO_CHANGED,
|
||||
XBLOCK_DELETED,
|
||||
XBLOCK_DUPLICATED,
|
||||
XBLOCK_PUBLISHED,
|
||||
)
|
||||
from openedx.core.lib.events import determine_producer_config_for_signal_and_topic
|
||||
from openedx_events.event_bus import get_producer
|
||||
from openedx_events.content_authoring.signals import COURSE_CATALOG_INFO_CHANGED
|
||||
from pytz import UTC
|
||||
|
||||
from cms.djangoapps.contentstore.courseware_index import (
|
||||
@@ -160,85 +153,6 @@ def listen_for_course_publish(sender, course_key, **kwargs): # pylint: disable=
|
||||
transaction.on_commit(lambda: emit_catalog_info_changed_signal(course_key))
|
||||
|
||||
|
||||
@receiver(COURSE_CATALOG_INFO_CHANGED)
|
||||
def listen_for_course_catalog_info_changed(sender, signal, **kwargs):
|
||||
"""
|
||||
Publish COURSE_CATALOG_INFO_CHANGED signals onto the event bus.
|
||||
"""
|
||||
# temporary: defer to EVENT_BUS_PRODUCER_CONFIG if present
|
||||
producer_config_setting = determine_producer_config_for_signal_and_topic(COURSE_CATALOG_INFO_CHANGED,
|
||||
'course-catalog-info-changed')
|
||||
if producer_config_setting is True:
|
||||
log.info("Producing course-catalog-info-changed event via config")
|
||||
return
|
||||
log.info("Producing course-catalog-info-changed event via manual send")
|
||||
get_producer().send(
|
||||
signal=COURSE_CATALOG_INFO_CHANGED, topic='course-catalog-info-changed',
|
||||
event_key_field='catalog_info.course_key', event_data={'catalog_info': kwargs['catalog_info']},
|
||||
event_metadata=kwargs['metadata'],
|
||||
)
|
||||
|
||||
|
||||
@receiver(XBLOCK_PUBLISHED)
|
||||
def listen_for_xblock_published(sender, signal, **kwargs):
|
||||
"""
|
||||
Publish XBLOCK_PUBLISHED signals onto the event bus.
|
||||
"""
|
||||
# temporary: defer to EVENT_BUS_PRODUCER_CONFIG if present
|
||||
topic = getattr(settings, "EVENT_BUS_XBLOCK_LIFECYCLE_TOPIC", "course-authoring-xblock-lifecycle")
|
||||
producer_config_setting = determine_producer_config_for_signal_and_topic(XBLOCK_PUBLISHED, topic)
|
||||
if producer_config_setting is True:
|
||||
log.info("Producing xblock-published event via config")
|
||||
return
|
||||
if settings.FEATURES.get("ENABLE_SEND_XBLOCK_EVENTS_OVER_BUS"):
|
||||
log.info("Producing xblock-published event via manual send")
|
||||
get_producer().send(
|
||||
signal=XBLOCK_PUBLISHED, topic=topic,
|
||||
event_key_field='xblock_info.usage_key', event_data={'xblock_info': kwargs['xblock_info']},
|
||||
event_metadata=kwargs['metadata'],
|
||||
)
|
||||
|
||||
|
||||
@receiver(XBLOCK_DELETED)
|
||||
def listen_for_xblock_deleted(sender, signal, **kwargs):
|
||||
"""
|
||||
Publish XBLOCK_DELETED signals onto the event bus.
|
||||
"""
|
||||
# temporary: defer to EVENT_BUS_PRODUCER_CONFIG if present
|
||||
topic = getattr(settings, "EVENT_BUS_XBLOCK_LIFECYCLE_TOPIC", "course-authoring-xblock-lifecycle")
|
||||
producer_config_setting = determine_producer_config_for_signal_and_topic(XBLOCK_DELETED, topic)
|
||||
if producer_config_setting is True:
|
||||
log.info("Producing xblock-deleted event via config")
|
||||
return
|
||||
if settings.FEATURES.get("ENABLE_SEND_XBLOCK_EVENTS_OVER_BUS"):
|
||||
log.info("Producing xblock-deleted event via manual send")
|
||||
get_producer().send(
|
||||
signal=XBLOCK_DELETED, topic=topic,
|
||||
event_key_field='xblock_info.usage_key', event_data={'xblock_info': kwargs['xblock_info']},
|
||||
event_metadata=kwargs['metadata'],
|
||||
)
|
||||
|
||||
|
||||
@receiver(XBLOCK_DUPLICATED)
|
||||
def listen_for_xblock_duplicated(sender, signal, **kwargs):
|
||||
"""
|
||||
Publish XBLOCK_DUPLICATED signals onto the event bus.
|
||||
"""
|
||||
# temporary: defer to EVENT_BUS_PRODUCER_CONFIG if present
|
||||
topic = getattr(settings, "EVENT_BUS_XBLOCK_LIFECYCLE_TOPIC", "course-authoring-xblock-lifecycle")
|
||||
producer_config_setting = determine_producer_config_for_signal_and_topic(XBLOCK_DUPLICATED, topic)
|
||||
if producer_config_setting is True:
|
||||
log.info("Producing xblock-duplicated event via config")
|
||||
return
|
||||
if settings.FEATURES.get("ENABLE_SEND_XBLOCK_EVENTS_OVER_BUS"):
|
||||
log.info("Producing xblock-duplicated event via manual send")
|
||||
get_producer().send(
|
||||
signal=XBLOCK_DUPLICATED, topic=topic,
|
||||
event_key_field='xblock_info.usage_key', event_data={'xblock_info': kwargs['xblock_info']},
|
||||
event_metadata=kwargs['metadata'],
|
||||
)
|
||||
|
||||
|
||||
@receiver(SignalHandler.course_deleted)
|
||||
def listen_for_course_delete(sender, course_key, **kwargs): # pylint: disable=unused-argument
|
||||
"""
|
||||
|
||||
@@ -301,24 +301,22 @@ CREDENTIALS_INTERNAL_SERVICE_URL = 'http://localhost:18150'
|
||||
CREDENTIALS_PUBLIC_SERVICE_URL = 'http://localhost:18150'
|
||||
|
||||
#################### Event bus backend ########################
|
||||
# .. toggle_name: FEATURES['ENABLE_SEND_XBLOCK_EVENTS_OVER_BUS']
|
||||
# .. toggle_implementation: DjangoSetting
|
||||
# .. toggle_default: False
|
||||
# .. toggle_description: Temporary configuration which enables sending xblock events over the event bus.
|
||||
# .. toggle_use_cases: open_edx
|
||||
# .. toggle_creation_date: 2023-02-21
|
||||
# .. toggle_warning: For consistency in user experience, keep the value in sync with the setting of the same name
|
||||
# in the LMS and CMS.
|
||||
# This will be deprecated in favor of ENABLE_SEND_XBLOCK_LIFECYCLE_EVENTS_OVER_BUS
|
||||
# .. toggle_tickets: 'https://github.com/openedx/edx-platform/pull/31813'
|
||||
FEATURES['ENABLE_SEND_XBLOCK_EVENTS_OVER_BUS'] = True
|
||||
FEATURES['ENABLE_SEND_ENROLLMENT_EVENTS_OVER_BUS'] = True
|
||||
|
||||
EVENT_BUS_PRODUCER = 'edx_event_bus_redis.create_producer'
|
||||
EVENT_BUS_REDIS_CONNECTION_URL = 'redis://:password@edx.devstack.redis:6379/'
|
||||
EVENT_BUS_TOPIC_PREFIX = 'dev'
|
||||
EVENT_BUS_CONSUMER = 'edx_event_bus_redis.RedisEventConsumer'
|
||||
EVENT_BUS_XBLOCK_LIFECYCLE_TOPIC = 'course-authoring-xblock-lifecycle'
|
||||
EVENT_BUS_ENROLLMENT_LIFECYCLE_TOPIC = 'course-authoring-enrollment-lifecycle'
|
||||
|
||||
course_catalog_event_setting = EVENT_BUS_PRODUCER_CONFIG['org.openedx.content_authoring.course.catalog_info.changed.v1']
|
||||
course_catalog_event_setting['course-catalog-info-changed']['enabled'] = True
|
||||
|
||||
xblock_published_event_setting = EVENT_BUS_PRODUCER_CONFIG['org.openedx.content_authoring.xblock.published.v1']
|
||||
xblock_published_event_setting['course-authoring-xblock-lifecycle']['enabled'] = True
|
||||
xblock_deleted_event_setting = EVENT_BUS_PRODUCER_CONFIG['org.openedx.content_authoring.xblock.deleted.v1']
|
||||
xblock_deleted_event_setting['course-authoring-xblock-lifecycle']['enabled'] = True
|
||||
xblock_duplicated_event_setting = EVENT_BUS_PRODUCER_CONFIG['org.openedx.content_authoring.xblock.duplicated.v1']
|
||||
xblock_duplicated_event_setting['course-authoring-xblock-lifecycle']['enabled'] = True
|
||||
|
||||
|
||||
################# New settings must go ABOVE this line #################
|
||||
########################################################################
|
||||
|
||||
Reference in New Issue
Block a user