mirror of
https://github.com/ansible/awx.git
synced 2026-04-10 12:39:22 -02:30
Remove admin alerts, there are better mechanisms for this
This commit is contained in:
@@ -54,15 +54,6 @@ register(
|
|||||||
category_slug='system',
|
category_slug='system',
|
||||||
)
|
)
|
||||||
|
|
||||||
register(
|
|
||||||
'TOWER_ADMIN_ALERTS',
|
|
||||||
field_class=fields.BooleanField,
|
|
||||||
label=_('Enable Administrator Alerts'),
|
|
||||||
help_text=_('Email Admin users for system events that may require attention.'),
|
|
||||||
category=_('System'),
|
|
||||||
category_slug='system',
|
|
||||||
)
|
|
||||||
|
|
||||||
register(
|
register(
|
||||||
'TOWER_URL_BASE',
|
'TOWER_URL_BASE',
|
||||||
field_class=fields.URLField,
|
field_class=fields.URLField,
|
||||||
|
|||||||
@@ -34,7 +34,6 @@ from django.db import transaction, DatabaseError, IntegrityError
|
|||||||
from django.db.models.fields.related import ForeignKey
|
from django.db.models.fields.related import ForeignKey
|
||||||
from django.utils.timezone import now, timedelta
|
from django.utils.timezone import now, timedelta
|
||||||
from django.utils.encoding import smart_str
|
from django.utils.encoding import smart_str
|
||||||
from django.core.mail import send_mail
|
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from django.core.cache import cache
|
from django.core.cache import cache
|
||||||
@@ -72,7 +71,6 @@ from awx.main.isolated import manager as isolated_manager
|
|||||||
from awx.main.dispatch.publish import task
|
from awx.main.dispatch.publish import task
|
||||||
from awx.main.dispatch import get_local_queuename, reaper
|
from awx.main.dispatch import get_local_queuename, reaper
|
||||||
from awx.main.utils import (get_ssh_version, update_scm_url,
|
from awx.main.utils import (get_ssh_version, update_scm_url,
|
||||||
get_licenser,
|
|
||||||
ignore_inventory_computed_fields,
|
ignore_inventory_computed_fields,
|
||||||
ignore_inventory_group_removal, extract_ansible_vars, schedule_task_manager,
|
ignore_inventory_group_removal, extract_ansible_vars, schedule_task_manager,
|
||||||
get_awx_version)
|
get_awx_version)
|
||||||
@@ -92,7 +90,7 @@ from rest_framework.exceptions import PermissionDenied
|
|||||||
__all__ = ['RunJob', 'RunSystemJob', 'RunProjectUpdate', 'RunInventoryUpdate',
|
__all__ = ['RunJob', 'RunSystemJob', 'RunProjectUpdate', 'RunInventoryUpdate',
|
||||||
'RunAdHocCommand', 'handle_work_error', 'handle_work_success', 'apply_cluster_membership_policies',
|
'RunAdHocCommand', 'handle_work_error', 'handle_work_success', 'apply_cluster_membership_policies',
|
||||||
'update_inventory_computed_fields', 'update_host_smart_inventory_memberships',
|
'update_inventory_computed_fields', 'update_host_smart_inventory_memberships',
|
||||||
'send_notifications', 'run_administrative_checks', 'purge_old_stdout_files']
|
'send_notifications', 'purge_old_stdout_files']
|
||||||
|
|
||||||
HIDDEN_PASSWORD = '**********'
|
HIDDEN_PASSWORD = '**********'
|
||||||
|
|
||||||
@@ -356,28 +354,6 @@ def gather_analytics():
|
|||||||
os.remove(tgz)
|
os.remove(tgz)
|
||||||
|
|
||||||
|
|
||||||
@task()
|
|
||||||
def run_administrative_checks():
|
|
||||||
logger.warn("Running administrative checks.")
|
|
||||||
if not settings.TOWER_ADMIN_ALERTS:
|
|
||||||
return
|
|
||||||
validation_info = get_licenser().validate()
|
|
||||||
if validation_info['license_type'] != 'open' and validation_info.get('instance_count', 0) < 1:
|
|
||||||
return
|
|
||||||
used_percentage = float(validation_info.get('current_instances', 0)) / float(validation_info.get('instance_count', 100))
|
|
||||||
tower_admin_emails = User.objects.filter(is_superuser=True).values_list('email', flat=True)
|
|
||||||
if (used_percentage * 100) > 90:
|
|
||||||
send_mail("Ansible Tower host usage over 90%",
|
|
||||||
_("Ansible Tower host usage over 90%"),
|
|
||||||
tower_admin_emails,
|
|
||||||
fail_silently=True)
|
|
||||||
if validation_info.get('date_warning', False):
|
|
||||||
send_mail("Ansible Tower license will expire soon",
|
|
||||||
_("Ansible Tower license will expire soon"),
|
|
||||||
tower_admin_emails,
|
|
||||||
fail_silently=True)
|
|
||||||
|
|
||||||
|
|
||||||
@task(queue=get_local_queuename)
|
@task(queue=get_local_queuename)
|
||||||
def purge_old_stdout_files():
|
def purge_old_stdout_files():
|
||||||
nowtime = time.time()
|
nowtime = time.time()
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ from datetime import timedelta
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("job_name,function_path", [
|
@pytest.mark.parametrize("job_name,function_path", [
|
||||||
('admin_checks', 'awx.main.tasks.run_administrative_checks'),
|
|
||||||
('tower_scheduler', 'awx.main.tasks.awx_periodic_scheduler'),
|
('tower_scheduler', 'awx.main.tasks.awx_periodic_scheduler'),
|
||||||
])
|
])
|
||||||
def test_CELERYBEAT_SCHEDULE(mocker, job_name, function_path):
|
def test_CELERYBEAT_SCHEDULE(mocker, job_name, function_path):
|
||||||
|
|||||||
@@ -49,12 +49,6 @@ else:
|
|||||||
DEBUG = True
|
DEBUG = True
|
||||||
SQL_DEBUG = DEBUG
|
SQL_DEBUG = DEBUG
|
||||||
|
|
||||||
ADMINS = (
|
|
||||||
# ('Your Name', 'your_email@domain.com'),
|
|
||||||
)
|
|
||||||
|
|
||||||
MANAGERS = ADMINS
|
|
||||||
|
|
||||||
DATABASES = {
|
DATABASES = {
|
||||||
'default': {
|
'default': {
|
||||||
'ENGINE': 'django.db.backends.sqlite3',
|
'ENGINE': 'django.db.backends.sqlite3',
|
||||||
@@ -382,34 +376,6 @@ AUTH_BASIC_ENABLED = True
|
|||||||
# If set, serve only minified JS for UI.
|
# If set, serve only minified JS for UI.
|
||||||
USE_MINIFIED_JS = False
|
USE_MINIFIED_JS = False
|
||||||
|
|
||||||
# Email address that error messages come from.
|
|
||||||
SERVER_EMAIL = 'root@localhost'
|
|
||||||
|
|
||||||
# Default email address to use for various automated correspondence from
|
|
||||||
# the site managers.
|
|
||||||
DEFAULT_FROM_EMAIL = 'tower@localhost'
|
|
||||||
|
|
||||||
# Subject-line prefix for email messages send with django.core.mail.mail_admins
|
|
||||||
# or ...mail_managers. Make sure to include the trailing space.
|
|
||||||
EMAIL_SUBJECT_PREFIX = '[Tower] '
|
|
||||||
|
|
||||||
# The email backend to use. For possible shortcuts see django.core.mail.
|
|
||||||
# The default is to use the SMTP backend.
|
|
||||||
# Third-party backends can be specified by providing a Python path
|
|
||||||
# to a module that defines an EmailBackend class.
|
|
||||||
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
|
|
||||||
|
|
||||||
# Host for sending email.
|
|
||||||
EMAIL_HOST = 'localhost'
|
|
||||||
|
|
||||||
# Port for sending email.
|
|
||||||
EMAIL_PORT = 25
|
|
||||||
|
|
||||||
# Optional SMTP authentication information for EMAIL_HOST.
|
|
||||||
EMAIL_HOST_USER = ''
|
|
||||||
EMAIL_HOST_PASSWORD = ''
|
|
||||||
EMAIL_USE_TLS = False
|
|
||||||
|
|
||||||
# Default to skipping isolated host key checking (the initial connection will
|
# Default to skipping isolated host key checking (the initial connection will
|
||||||
# hang on an interactive "The authenticity of host example.org can't be
|
# hang on an interactive "The authenticity of host example.org can't be
|
||||||
# established" message)
|
# established" message)
|
||||||
@@ -457,10 +423,6 @@ CELERYBEAT_SCHEDULE = {
|
|||||||
'schedule': timedelta(seconds=30),
|
'schedule': timedelta(seconds=30),
|
||||||
'options': {'expires': 20,}
|
'options': {'expires': 20,}
|
||||||
},
|
},
|
||||||
'admin_checks': {
|
|
||||||
'task': 'awx.main.tasks.run_administrative_checks',
|
|
||||||
'schedule': timedelta(days=30)
|
|
||||||
},
|
|
||||||
'cluster_heartbeat': {
|
'cluster_heartbeat': {
|
||||||
'task': 'awx.main.tasks.cluster_node_heartbeat',
|
'task': 'awx.main.tasks.cluster_node_heartbeat',
|
||||||
'schedule': timedelta(seconds=60),
|
'schedule': timedelta(seconds=60),
|
||||||
@@ -980,9 +942,6 @@ FACT_CACHE_PORT = 6564
|
|||||||
ORG_ADMINS_CAN_SEE_ALL_USERS = True
|
ORG_ADMINS_CAN_SEE_ALL_USERS = True
|
||||||
MANAGE_ORGANIZATION_AUTH = True
|
MANAGE_ORGANIZATION_AUTH = True
|
||||||
|
|
||||||
# Note: This setting may be overridden by database settings.
|
|
||||||
TOWER_ADMIN_ALERTS = True
|
|
||||||
|
|
||||||
# Note: This setting may be overridden by database settings.
|
# Note: This setting may be overridden by database settings.
|
||||||
TOWER_URL_BASE = "https://towerhost"
|
TOWER_URL_BASE = "https://towerhost"
|
||||||
|
|
||||||
@@ -1063,11 +1022,6 @@ LOGGING = {
|
|||||||
'formatter': 'json',
|
'formatter': 'json',
|
||||||
'filters': ['external_log_enabled', 'dynamic_level_filter'],
|
'filters': ['external_log_enabled', 'dynamic_level_filter'],
|
||||||
},
|
},
|
||||||
'mail_admins': {
|
|
||||||
'level': 'ERROR',
|
|
||||||
'filters': ['require_debug_false'],
|
|
||||||
'class': 'django.utils.log.AdminEmailHandler',
|
|
||||||
},
|
|
||||||
'tower_warnings': {
|
'tower_warnings': {
|
||||||
# don't define a level here, it's set by settings.LOG_AGGREGATOR_LEVEL
|
# don't define a level here, it's set by settings.LOG_AGGREGATOR_LEVEL
|
||||||
'class': 'logging.handlers.RotatingFileHandler',
|
'class': 'logging.handlers.RotatingFileHandler',
|
||||||
|
|||||||
@@ -15,12 +15,6 @@ import os
|
|||||||
import urllib.parse
|
import urllib.parse
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
ADMINS = (
|
|
||||||
# ('Your Name', 'your_email@domain.com'),
|
|
||||||
)
|
|
||||||
|
|
||||||
MANAGERS = ADMINS
|
|
||||||
|
|
||||||
# Enable the following lines and install the browser extension to use Django debug toolbar
|
# Enable the following lines and install the browser extension to use Django debug toolbar
|
||||||
# if your deployment method is not VMWare of Docker-for-Mac you may
|
# if your deployment method is not VMWare of Docker-for-Mac you may
|
||||||
# need a different IP address from request.META['REMOTE_ADDR']
|
# need a different IP address from request.META['REMOTE_ADDR']
|
||||||
@@ -117,38 +111,6 @@ PROXY_IP_WHITELIST = []
|
|||||||
# If set, use -vvv for project updates instead of -v for more output.
|
# If set, use -vvv for project updates instead of -v for more output.
|
||||||
# PROJECT_UPDATE_VVV=True
|
# PROJECT_UPDATE_VVV=True
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# EMAIL SETTINGS
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
# Email address that error messages come from.
|
|
||||||
SERVER_EMAIL = 'root@localhost'
|
|
||||||
|
|
||||||
# The email backend to use. For possible shortcuts see django.core.mail.
|
|
||||||
# The default is to use the SMTP backend.
|
|
||||||
# Third-party backends can be specified by providing a Python path
|
|
||||||
# to a module that defines an EmailBackend class.
|
|
||||||
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
|
|
||||||
|
|
||||||
# Host for sending email.
|
|
||||||
EMAIL_HOST = 'localhost'
|
|
||||||
|
|
||||||
# Port for sending email.
|
|
||||||
EMAIL_PORT = 25
|
|
||||||
|
|
||||||
# Optional SMTP authentication information for EMAIL_HOST.
|
|
||||||
EMAIL_HOST_USER = ''
|
|
||||||
EMAIL_HOST_PASSWORD = ''
|
|
||||||
EMAIL_USE_TLS = False
|
|
||||||
|
|
||||||
# Default email address to use for various automated correspondence from
|
|
||||||
# the site managers.
|
|
||||||
DEFAULT_FROM_EMAIL = 'webmaster@localhost'
|
|
||||||
|
|
||||||
# Subject-line prefix for email messages send with django.core.mail.mail_admins
|
|
||||||
# or ...mail_managers. Make sure to include the trailing space.
|
|
||||||
EMAIL_SUBJECT_PREFIX = '[AWX] '
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# LOGGING SETTINGS
|
# LOGGING SETTINGS
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|||||||
@@ -12,12 +12,6 @@
|
|||||||
# MISC PROJECT SETTINGS
|
# MISC PROJECT SETTINGS
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
ADMINS = (
|
|
||||||
# ('Your Name', 'your_email@domain.com'),
|
|
||||||
)
|
|
||||||
|
|
||||||
MANAGERS = ADMINS
|
|
||||||
|
|
||||||
# Database settings to use PostgreSQL for development.
|
# Database settings to use PostgreSQL for development.
|
||||||
DATABASES = {
|
DATABASES = {
|
||||||
'default': {
|
'default': {
|
||||||
@@ -97,38 +91,6 @@ PROXY_IP_WHITELIST = []
|
|||||||
# If set, use -vvv for project updates instead of -v for more output.
|
# If set, use -vvv for project updates instead of -v for more output.
|
||||||
# PROJECT_UPDATE_VVV=True
|
# PROJECT_UPDATE_VVV=True
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# EMAIL SETTINGS
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
# Email address that error messages come from.
|
|
||||||
SERVER_EMAIL = 'root@localhost'
|
|
||||||
|
|
||||||
# The email backend to use. For possible shortcuts see django.core.mail.
|
|
||||||
# The default is to use the SMTP backend.
|
|
||||||
# Third-party backends can be specified by providing a Python path
|
|
||||||
# to a module that defines an EmailBackend class.
|
|
||||||
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
|
|
||||||
|
|
||||||
# Host for sending email.
|
|
||||||
EMAIL_HOST = 'localhost'
|
|
||||||
|
|
||||||
# Port for sending email.
|
|
||||||
EMAIL_PORT = 25
|
|
||||||
|
|
||||||
# Optional SMTP authentication information for EMAIL_HOST.
|
|
||||||
EMAIL_HOST_USER = ''
|
|
||||||
EMAIL_HOST_PASSWORD = ''
|
|
||||||
EMAIL_USE_TLS = False
|
|
||||||
|
|
||||||
# Default email address to use for various automated correspondence from
|
|
||||||
# the site managers.
|
|
||||||
DEFAULT_FROM_EMAIL = 'webmaster@localhost'
|
|
||||||
|
|
||||||
# Subject-line prefix for email messages send with django.core.mail.mail_admins
|
|
||||||
# or ...mail_managers. Make sure to include the trailing space.
|
|
||||||
EMAIL_SUBJECT_PREFIX = '[AWX] '
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# LOGGING SETTINGS
|
# LOGGING SETTINGS
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|||||||
@@ -15,9 +15,6 @@ export default ['i18n', function(i18n) {
|
|||||||
type: 'text',
|
type: 'text',
|
||||||
reset: 'TOWER_URL_BASE',
|
reset: 'TOWER_URL_BASE',
|
||||||
},
|
},
|
||||||
TOWER_ADMIN_ALERTS: {
|
|
||||||
type: 'toggleSwitch',
|
|
||||||
},
|
|
||||||
ORG_ADMINS_CAN_SEE_ALL_USERS: {
|
ORG_ADMINS_CAN_SEE_ALL_USERS: {
|
||||||
type: 'toggleSwitch',
|
type: 'toggleSwitch',
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user