mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-25 01:41:34 -05:00
Merge pull request #3204 from alphagov/broadcast-envars
Broadcast envars
This commit is contained in:
@@ -106,10 +106,6 @@ def check_provider_message_should_send(broadcast_event, provider):
|
||||
@notify_celery.task(name="send-broadcast-event")
|
||||
@statsd(namespace="tasks")
|
||||
def send_broadcast_event(broadcast_event_id):
|
||||
if not current_app.config['CBC_PROXY_ENABLED']:
|
||||
current_app.logger.info(f'CBC Proxy disabled, not sending broadcast_event {broadcast_event_id}')
|
||||
return
|
||||
|
||||
broadcast_event = dao_get_broadcast_event_by_id(broadcast_event_id)
|
||||
|
||||
if (
|
||||
@@ -149,6 +145,13 @@ def send_broadcast_event(broadcast_event_id):
|
||||
@notify_celery.task(bind=True, name="send-broadcast-provider-message", max_retries=None)
|
||||
@statsd(namespace="tasks")
|
||||
def send_broadcast_provider_message(self, broadcast_event_id, provider):
|
||||
if not current_app.config['CBC_PROXY_ENABLED']:
|
||||
current_app.logger.info(
|
||||
"CBC Proxy disabled, not sending broadcast_provider_message for "
|
||||
f"broadcast_event_id {broadcast_event_id} with provider {provider}"
|
||||
)
|
||||
return
|
||||
|
||||
broadcast_event = dao_get_broadcast_event_by_id(broadcast_event_id)
|
||||
|
||||
check_provider_message_should_send(broadcast_event, provider)
|
||||
|
||||
@@ -365,13 +365,10 @@ class Config(object):
|
||||
|
||||
AWS_REGION = 'eu-west-1'
|
||||
|
||||
# CBC Proxy
|
||||
# if the access keys are empty then noop client is used
|
||||
CBC_PROXY_ENABLED = True
|
||||
CBC_PROXY_AWS_ACCESS_KEY_ID = os.environ.get('CBC_PROXY_AWS_ACCESS_KEY_ID', '')
|
||||
CBC_PROXY_AWS_SECRET_ACCESS_KEY = os.environ.get('CBC_PROXY_AWS_SECRET_ACCESS_KEY', '')
|
||||
|
||||
CBC_PROXY_ENABLED = bool(CBC_PROXY_AWS_ACCESS_KEY_ID)
|
||||
|
||||
ENABLED_CBCS = {BroadcastProvider.EE, BroadcastProvider.THREE, BroadcastProvider.O2, BroadcastProvider.VODAFONE}
|
||||
|
||||
# as defined in api db migration 0331_add_broadcast_org.py
|
||||
@@ -422,6 +419,8 @@ class Development(Config):
|
||||
API_RATE_LIMIT_ENABLED = True
|
||||
DVLA_EMAIL_ADDRESSES = ['success@simulator.amazonses.com']
|
||||
|
||||
CBC_PROXY_ENABLED = False
|
||||
|
||||
|
||||
class Test(Development):
|
||||
NOTIFY_EMAIL_DOMAIN = 'test.notify.com'
|
||||
|
||||
@@ -65,7 +65,11 @@
|
||||
'notify-delivery-worker-retry-tasks': {},
|
||||
'notify-delivery-worker-internal': {},
|
||||
'notify-delivery-worker-broadcasts': {
|
||||
'additional_env_vars': {
|
||||
'CELERYD_PREFETCH_MULTIPLIER': 1,
|
||||
'CBC_PROXY_AWS_ACCESS_KEY_ID': CBC_PROXY_AWS_ACCESS_KEY_ID,
|
||||
'CBC_PROXY_AWS_SECRET_ACCESS_KEY': CBC_PROXY_AWS_SECRET_ACCESS_KEY,
|
||||
}
|
||||
},
|
||||
'notify-delivery-worker-receipts': {},
|
||||
'notify-delivery-worker-service-callbacks': {'disk_quota': '2G'},
|
||||
@@ -125,11 +129,6 @@ applications:
|
||||
AWS_ACCESS_KEY_ID: '{{ AWS_ACCESS_KEY_ID }}'
|
||||
AWS_SECRET_ACCESS_KEY: '{{ AWS_SECRET_ACCESS_KEY }}'
|
||||
|
||||
{% if CBC_PROXY_AWS_ACCESS_KEY_ID is defined %}
|
||||
CBC_PROXY_AWS_ACCESS_KEY_ID: '{{ CBC_PROXY_AWS_ACCESS_KEY_ID }}'
|
||||
CBC_PROXY_AWS_SECRET_ACCESS_KEY: '{{ CBC_PROXY_AWS_SECRET_ACCESS_KEY }}'
|
||||
{% endif %}
|
||||
|
||||
STATSD_HOST: "notify-statsd-exporter-{{ environment }}.apps.internal"
|
||||
|
||||
ZENDESK_API_KEY: '{{ ZENDESK_API_KEY }}'
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import uuid
|
||||
from datetime import datetime
|
||||
from unittest.mock import ANY, call
|
||||
from unittest.mock import ANY, Mock, call
|
||||
|
||||
import pytest
|
||||
from celery.exceptions import Retry
|
||||
@@ -98,18 +98,6 @@ def test_send_broadcast_event_does_nothing_if_provider_set_on_service_isnt_enabl
|
||||
assert mock_send_broadcast_provider_message.apply_async.called is False
|
||||
|
||||
|
||||
def test_send_broadcast_event_does_nothing_if_cbc_proxy_disabled(mocker, notify_api):
|
||||
mock_send_broadcast_provider_message = mocker.patch(
|
||||
'app.celery.broadcast_message_tasks.send_broadcast_provider_message',
|
||||
)
|
||||
|
||||
event_id = uuid.uuid4()
|
||||
with set_config(notify_api, 'ENABLED_CBCS', ['ee', 'vodafone']), set_config(notify_api, 'CBC_PROXY_ENABLED', False):
|
||||
send_broadcast_event(event_id)
|
||||
|
||||
assert mock_send_broadcast_provider_message.apply_async.called is False
|
||||
|
||||
|
||||
def test_send_broadcast_event_creates_zendesk_p1(mocker, notify_api, sample_broadcast_service):
|
||||
template = create_template(sample_broadcast_service, BROADCAST_TYPE)
|
||||
broadcast_message = create_broadcast_message(
|
||||
@@ -747,3 +735,18 @@ def test_check_provider_message_should_send_raises_if_current_event_already_has_
|
||||
create_broadcast_provider_message(current_event, provider='ee', status=existing_message_status)
|
||||
|
||||
check_provider_message_should_send(current_event, 'ee')
|
||||
|
||||
|
||||
def test_send_broadcast_provider_message_does_nothing_if_cbc_proxy_disabled(mocker, notify_api, sample_template):
|
||||
mock_proxy_client_getter = mocker.patch(
|
||||
'app.celery.broadcast_message_tasks.cbc_proxy_client',
|
||||
)
|
||||
mock_client = Mock()
|
||||
mock_proxy_client_getter.get_proxy.return_value = mock_client
|
||||
|
||||
broadcast_message = create_broadcast_message(sample_template)
|
||||
broadcast_event = create_broadcast_event(broadcast_message, message_type='alert')
|
||||
with set_config(notify_api, 'ENABLED_CBCS', ['ee', 'vodafone']), set_config(notify_api, 'CBC_PROXY_ENABLED', False):
|
||||
send_broadcast_provider_message(broadcast_event.id, 'ee')
|
||||
|
||||
assert mock_client.create_and_send_broadcast.called is False
|
||||
|
||||
Reference in New Issue
Block a user