mirror of
https://github.com/ansible/awx.git
synced 2026-03-10 14:09:28 -02:30
use existing logging infrastructure
This commit is contained in:
@@ -8,25 +8,8 @@ from collections import defaultdict
|
|||||||
from awx.main.utils import getattrd
|
from awx.main.utils import getattrd
|
||||||
from awx.main.models.rbac import Role, batch_role_ancestor_rebuilding
|
from awx.main.models.rbac import Role, batch_role_ancestor_rebuilding
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger('rbac_migrations')
|
||||||
|
|
||||||
def log_migration(wrapped):
|
|
||||||
'''setup the logging mechanism for each migration method
|
|
||||||
as it runs, Django resets this, so we use a decorator
|
|
||||||
to re-add the handler for each method.
|
|
||||||
'''
|
|
||||||
handler = logging.FileHandler("/var/log/tower/tower_rbac_migrations.log", mode="a", encoding="UTF-8")
|
|
||||||
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
|
||||||
handler.setLevel(logging.DEBUG)
|
|
||||||
handler.setFormatter(formatter)
|
|
||||||
|
|
||||||
def wrapper(*args, **kwargs):
|
|
||||||
logger.handlers = []
|
|
||||||
logger.addHandler(handler)
|
|
||||||
return wrapped(*args, **kwargs)
|
|
||||||
return wrapper
|
|
||||||
|
|
||||||
@log_migration
|
|
||||||
def create_roles(apps, schema_editor):
|
def create_roles(apps, schema_editor):
|
||||||
'''
|
'''
|
||||||
Implicit role creation happens in our post_save hook for all of our
|
Implicit role creation happens in our post_save hook for all of our
|
||||||
@@ -56,7 +39,6 @@ def create_roles(apps, schema_editor):
|
|||||||
obj.save()
|
obj.save()
|
||||||
|
|
||||||
|
|
||||||
@log_migration
|
|
||||||
def migrate_users(apps, schema_editor):
|
def migrate_users(apps, schema_editor):
|
||||||
User = apps.get_model('auth', "User")
|
User = apps.get_model('auth', "User")
|
||||||
Role = apps.get_model('main', "Role")
|
Role = apps.get_model('main', "Role")
|
||||||
@@ -89,7 +71,6 @@ def migrate_users(apps, schema_editor):
|
|||||||
sa_role.members.add(user)
|
sa_role.members.add(user)
|
||||||
logger.warning(smart_text(u"added superuser: {}".format(user.username)))
|
logger.warning(smart_text(u"added superuser: {}".format(user.username)))
|
||||||
|
|
||||||
@log_migration
|
|
||||||
def migrate_organization(apps, schema_editor):
|
def migrate_organization(apps, schema_editor):
|
||||||
Organization = apps.get_model('main', "Organization")
|
Organization = apps.get_model('main', "Organization")
|
||||||
for org in Organization.objects.iterator():
|
for org in Organization.objects.iterator():
|
||||||
@@ -100,7 +81,6 @@ def migrate_organization(apps, schema_editor):
|
|||||||
org.member_role.members.add(user)
|
org.member_role.members.add(user)
|
||||||
logger.info(smart_text(u"added member: {}, {}".format(org.name, user.username)))
|
logger.info(smart_text(u"added member: {}, {}".format(org.name, user.username)))
|
||||||
|
|
||||||
@log_migration
|
|
||||||
def migrate_team(apps, schema_editor):
|
def migrate_team(apps, schema_editor):
|
||||||
Team = apps.get_model('main', 'Team')
|
Team = apps.get_model('main', 'Team')
|
||||||
for t in Team.objects.iterator():
|
for t in Team.objects.iterator():
|
||||||
@@ -172,7 +152,6 @@ def _discover_credentials(instances, cred, orgfunc):
|
|||||||
|
|
||||||
_update_credential_parents(org, cred)
|
_update_credential_parents(org, cred)
|
||||||
|
|
||||||
@log_migration
|
|
||||||
def migrate_credential(apps, schema_editor):
|
def migrate_credential(apps, schema_editor):
|
||||||
Credential = apps.get_model('main', "Credential")
|
Credential = apps.get_model('main', "Credential")
|
||||||
JobTemplate = apps.get_model('main', 'JobTemplate')
|
JobTemplate = apps.get_model('main', 'JobTemplate')
|
||||||
@@ -210,7 +189,6 @@ def migrate_credential(apps, schema_editor):
|
|||||||
logger.warning(smart_text(u"orphaned credential found Credential(name={}, kind={}, host={}), superuser only".format(cred.name, cred.kind, cred.host, )))
|
logger.warning(smart_text(u"orphaned credential found Credential(name={}, kind={}, host={}), superuser only".format(cred.name, cred.kind, cred.host, )))
|
||||||
|
|
||||||
|
|
||||||
@log_migration
|
|
||||||
def migrate_inventory(apps, schema_editor):
|
def migrate_inventory(apps, schema_editor):
|
||||||
Inventory = apps.get_model('main', 'Inventory')
|
Inventory = apps.get_model('main', 'Inventory')
|
||||||
Permission = apps.get_model('main', 'Permission')
|
Permission = apps.get_model('main', 'Permission')
|
||||||
@@ -254,7 +232,6 @@ def migrate_inventory(apps, schema_editor):
|
|||||||
execrole.members.add(perm.user)
|
execrole.members.add(perm.user)
|
||||||
logger.info(smart_text(u'added User({}) access to Inventory({})'.format(perm.user.username, inventory.name)))
|
logger.info(smart_text(u'added User({}) access to Inventory({})'.format(perm.user.username, inventory.name)))
|
||||||
|
|
||||||
@log_migration
|
|
||||||
def migrate_projects(apps, schema_editor):
|
def migrate_projects(apps, schema_editor):
|
||||||
'''
|
'''
|
||||||
I can see projects when:
|
I can see projects when:
|
||||||
@@ -368,7 +345,6 @@ def migrate_projects(apps, schema_editor):
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
@log_migration
|
|
||||||
def migrate_job_templates(apps, schema_editor):
|
def migrate_job_templates(apps, schema_editor):
|
||||||
'''
|
'''
|
||||||
NOTE: This must be run after orgs, inventory, projects, credential, and
|
NOTE: This must be run after orgs, inventory, projects, credential, and
|
||||||
@@ -499,7 +475,6 @@ def migrate_job_templates(apps, schema_editor):
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
@log_migration
|
|
||||||
def rebuild_role_hierarchy(apps, schema_editor):
|
def rebuild_role_hierarchy(apps, schema_editor):
|
||||||
logger.info('Computing role roots..')
|
logger.info('Computing role roots..')
|
||||||
start = time()
|
start = time()
|
||||||
|
|||||||
@@ -9,25 +9,8 @@ from awx.fact.utils.dbtransform import KeyTransform
|
|||||||
from mongoengine.connection import ConnectionError
|
from mongoengine.connection import ConnectionError
|
||||||
from pymongo.errors import OperationFailure
|
from pymongo.errors import OperationFailure
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger('system_tracking_migrations')
|
||||||
|
|
||||||
def log_migration(wrapped):
|
|
||||||
'''setup the logging mechanism for each migration method
|
|
||||||
as it runs, Django resets this, so we use a decorator
|
|
||||||
to re-add the handler for each method.
|
|
||||||
'''
|
|
||||||
handler = logging.FileHandler("/var/log/tower/tower_system_tracking_migrations.log", mode="a", encoding="UTF-8")
|
|
||||||
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
|
||||||
handler.setLevel(logging.DEBUG)
|
|
||||||
handler.setFormatter(formatter)
|
|
||||||
|
|
||||||
def wrapper(*args, **kwargs):
|
|
||||||
logger.handlers = []
|
|
||||||
logger.addHandler(handler)
|
|
||||||
return wrapped(*args, **kwargs)
|
|
||||||
return wrapper
|
|
||||||
|
|
||||||
@log_migration
|
|
||||||
def migrate_facts(apps, schema_editor):
|
def migrate_facts(apps, schema_editor):
|
||||||
Fact = apps.get_model('main', "Fact")
|
Fact = apps.get_model('main', "Fact")
|
||||||
Host = apps.get_model('main', "Host")
|
Host = apps.get_model('main', "Host")
|
||||||
|
|||||||
@@ -2,25 +2,8 @@
|
|||||||
import logging
|
import logging
|
||||||
from django.utils.encoding import smart_text
|
from django.utils.encoding import smart_text
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger('rbac_migrations')
|
||||||
|
|
||||||
def log_migration(wrapped):
|
|
||||||
'''setup the logging mechanism for each migration method
|
|
||||||
as it runs, Django resets this, so we use a decorator
|
|
||||||
to re-add the handler for each method.
|
|
||||||
'''
|
|
||||||
handler = logging.FileHandler("/var/log/tower/tower_rbac_migrations.log", mode="a", encoding="UTF-8")
|
|
||||||
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
|
||||||
handler.setLevel(logging.DEBUG)
|
|
||||||
handler.setFormatter(formatter)
|
|
||||||
|
|
||||||
def wrapper(*args, **kwargs):
|
|
||||||
logger.handlers = []
|
|
||||||
logger.addHandler(handler)
|
|
||||||
return wrapped(*args, **kwargs)
|
|
||||||
return wrapper
|
|
||||||
|
|
||||||
@log_migration
|
|
||||||
def migrate_team(apps, schema_editor):
|
def migrate_team(apps, schema_editor):
|
||||||
'''If an orphan team exists that is still active, delete it.'''
|
'''If an orphan team exists that is still active, delete it.'''
|
||||||
Team = apps.get_model('main', 'Team')
|
Team = apps.get_model('main', 'Team')
|
||||||
|
|||||||
@@ -941,7 +941,34 @@ LOGGING = {
|
|||||||
'maxBytes': 1024 * 1024 * 5, # 5 MB
|
'maxBytes': 1024 * 1024 * 5, # 5 MB
|
||||||
'backupCount': 5,
|
'backupCount': 5,
|
||||||
'formatter':'simple',
|
'formatter':'simple',
|
||||||
}
|
},
|
||||||
|
'fact_receiver': {
|
||||||
|
'level': 'WARNING',
|
||||||
|
'class':'logging.handlers.RotatingFileHandler',
|
||||||
|
'filters': ['require_debug_false'],
|
||||||
|
'filename': os.path.join(LOG_ROOT, 'fact_receiver.log'),
|
||||||
|
'maxBytes': 1024 * 1024 * 5, # 5 MB
|
||||||
|
'backupCount': 5,
|
||||||
|
'formatter':'simple',
|
||||||
|
},
|
||||||
|
'system_tracking_migrations': {
|
||||||
|
'level': 'WARNING',
|
||||||
|
'class':'logging.handlers.RotatingFileHandler',
|
||||||
|
'filters': ['require_debug_false'],
|
||||||
|
'filename': os.path.join(LOG_ROOT, 'tower_system_tracking_migrations.log'),
|
||||||
|
'maxBytes': 1024 * 1024 * 5, # 5 MB
|
||||||
|
'backupCount': 5,
|
||||||
|
'formatter':'simple',
|
||||||
|
},
|
||||||
|
'rbac_migrations': {
|
||||||
|
'level': 'WARNING',
|
||||||
|
'class':'logging.handlers.RotatingFileHandler',
|
||||||
|
'filters': ['require_debug_false'],
|
||||||
|
'filename': os.path.join(LOG_ROOT, 'tower_rbac_migrations.log'),
|
||||||
|
'maxBytes': 1024 * 1024 * 5, # 5 MB
|
||||||
|
'backupCount': 5,
|
||||||
|
'formatter':'simple',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
'loggers': {
|
'loggers': {
|
||||||
'django': {
|
'django': {
|
||||||
@@ -1000,6 +1027,14 @@ LOGGING = {
|
|||||||
'handlers': ['console', 'file', 'tower_warnings'],
|
'handlers': ['console', 'file', 'tower_warnings'],
|
||||||
'level': 'DEBUG',
|
'level': 'DEBUG',
|
||||||
},
|
},
|
||||||
|
'system_tracking_migrations': {
|
||||||
|
'handlers': ['console', 'file', 'tower_warnings'],
|
||||||
|
'level': 'DEBUG',
|
||||||
|
},
|
||||||
|
'rbac_migrations': {
|
||||||
|
'handlers': ['console', 'file', 'tower_warnings'],
|
||||||
|
'level': 'DEBUG',
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,56 +49,13 @@ ANSIBLE_VENV_PATH = "/var/lib/awx/venv/ansible"
|
|||||||
TOWER_USE_VENV = True
|
TOWER_USE_VENV = True
|
||||||
TOWER_VENV_PATH = "/var/lib/awx/venv/tower"
|
TOWER_VENV_PATH = "/var/lib/awx/venv/tower"
|
||||||
|
|
||||||
LOGGING['handlers']['tower_warnings'] = {
|
LOGGING['handlers']['tower_warnings']['filename'] = '/var/log/tower/tower.log'
|
||||||
'level': 'WARNING',
|
LOGGING['handlers']['callback_receiver']['filename'] = '/var/log/tower/callback_receiver.log'
|
||||||
'class':'logging.handlers.RotatingFileHandler',
|
LOGGING['handlers']['socketio_service']['filename'] = '/var/log/tower/socketio_service.log'
|
||||||
'filters': ['require_debug_false'],
|
LOGGING['handlers']['task_system']['filename'] = '/var/log/tower/task_system.log'
|
||||||
'filename': '/var/log/tower/tower.log',
|
LOGGING['handlers']['fact_receiver']['filename'] = '/var/log/tower/fact_receiver.log'
|
||||||
'maxBytes': 1024 * 1024 * 5, # 5 MB
|
LOGGING['handlers']['system_tracking_migrations']['filename'] = '/var/log/tower/tower_system_tracking_migrations.log'
|
||||||
'backupCount': 5,
|
LOGGING['handlers']['rbac_migrations']['filename'] = '/var/log/tower/tower_rbac_migrations.log',
|
||||||
'formatter':'simple',
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
LOGGING['handlers']['callback_receiver'] = {
|
|
||||||
'level': 'WARNING',
|
|
||||||
'class':'logging.handlers.RotatingFileHandler',
|
|
||||||
'filters': ['require_debug_false'],
|
|
||||||
'filename': '/var/log/tower/callback_receiver.log',
|
|
||||||
'maxBytes': 1024 * 1024 * 5, # 5 MB
|
|
||||||
'backupCount': 5,
|
|
||||||
'formatter':'simple',
|
|
||||||
}
|
|
||||||
|
|
||||||
LOGGING['handlers']['socketio_service'] = {
|
|
||||||
'level': 'WARNING',
|
|
||||||
'class':'logging.handlers.RotatingFileHandler',
|
|
||||||
'filters': ['require_debug_false'],
|
|
||||||
'filename': '/var/log/tower/socketio_service.log',
|
|
||||||
'maxBytes': 1024 * 1024 * 5, # 5 MB
|
|
||||||
'backupCount': 5,
|
|
||||||
'formatter':'simple',
|
|
||||||
}
|
|
||||||
|
|
||||||
LOGGING['handlers']['task_system'] = {
|
|
||||||
'level': 'INFO',
|
|
||||||
'class':'logging.handlers.RotatingFileHandler',
|
|
||||||
'filters': ['require_debug_false'],
|
|
||||||
'filename': '/var/log/tower/task_system.log',
|
|
||||||
'maxBytes': 1024 * 1024 * 5, # 5 MB
|
|
||||||
'backupCount': 5,
|
|
||||||
'formatter':'simple',
|
|
||||||
}
|
|
||||||
|
|
||||||
LOGGING['handlers']['fact_receiver'] = {
|
|
||||||
'level': 'WARNING',
|
|
||||||
'class':'logging.handlers.RotatingFileHandler',
|
|
||||||
'filters': ['require_debug_false'],
|
|
||||||
'filename': '/var/log/tower/fact_receiver.log',
|
|
||||||
'maxBytes': 1024 * 1024 * 5, # 5 MB
|
|
||||||
'backupCount': 5,
|
|
||||||
'formatter':'simple',
|
|
||||||
}
|
|
||||||
|
|
||||||
# Load settings from any .py files in the global conf.d directory specified in
|
# Load settings from any .py files in the global conf.d directory specified in
|
||||||
# the environment, defaulting to /etc/tower/conf.d/.
|
# the environment, defaulting to /etc/tower/conf.d/.
|
||||||
|
|||||||
@@ -10,9 +10,6 @@ ansible -i "127.0.0.1," -c local -v -m wait_for -a "host=redis port=6379" all
|
|||||||
ansible -i "127.0.0.1," -c local -v -m postgresql_user -U postgres -a "name=awx-dev password=AWXsome1 login_user=postgres login_host=postgres" all
|
ansible -i "127.0.0.1," -c local -v -m postgresql_user -U postgres -a "name=awx-dev password=AWXsome1 login_user=postgres login_host=postgres" all
|
||||||
ansible -i "127.0.0.1," -c local -v -m postgresql_db -U postgres -a "name=awx-dev owner=awx-dev login_user=postgres login_host=postgres" all
|
ansible -i "127.0.0.1," -c local -v -m postgresql_db -U postgres -a "name=awx-dev owner=awx-dev login_user=postgres login_host=postgres" all
|
||||||
|
|
||||||
# For migration log
|
|
||||||
mkdir -p /var/log/tower/
|
|
||||||
|
|
||||||
# Move to the source directory so we can bootstrap
|
# Move to the source directory so we can bootstrap
|
||||||
if [ -f "/tower_devel/manage.py" ]; then
|
if [ -f "/tower_devel/manage.py" ]; then
|
||||||
cd /tower_devel
|
cd /tower_devel
|
||||||
|
|||||||
Reference in New Issue
Block a user