mirror of
https://github.com/ansible/awx.git
synced 2026-01-21 06:28:01 -03:30
Coalesce host and group A.S. deletion entries
This commit is contained in:
parent
2c5f209996
commit
5562e636ea
@ -24,6 +24,17 @@ register(
|
||||
feature_required='activity_streams',
|
||||
)
|
||||
|
||||
register(
|
||||
'ACTIVITY_STREAM_COALESCE_ENTRIES',
|
||||
field_class=fields.BooleanField,
|
||||
label=_('Coalesce Select Activity Stream Entries'),
|
||||
help_text=_('For certain processes, combine multiple entries into one. '
|
||||
'This replaces many similar entries with a single summary entry.'),
|
||||
category=_('System'),
|
||||
category_slug='system',
|
||||
feature_required='activity_streams',
|
||||
)
|
||||
|
||||
register(
|
||||
'ACTIVITY_STREAM_ENABLED_FOR_INVENTORY_SYNC',
|
||||
field_class=fields.BooleanField,
|
||||
|
||||
@ -487,12 +487,22 @@ def activity_stream_delete(sender, instance, **kwargs):
|
||||
# If we trigger this handler there we may fall into db-integrity-related race conditions.
|
||||
# So we add flag verification to prevent normal signal handling. This funciton will be
|
||||
# explicitly called with flag on in Inventory.schedule_deletion.
|
||||
if isinstance(instance, Inventory) and not kwargs.get('inventory_delete_flag', False):
|
||||
return
|
||||
changes = {}
|
||||
if isinstance(instance, Inventory):
|
||||
if not kwargs.get('inventory_delete_flag', False):
|
||||
return
|
||||
if settings.ACTIVITY_STREAM_COALESCE_ENTRIES:
|
||||
# Add additional data about child hosts / groups that will be deleted
|
||||
changes['coalesce_data'] = {
|
||||
'hosts_deleted': instance.hosts.count(),
|
||||
'groups_deleted': instance.groups.count()
|
||||
}
|
||||
elif isinstance(instance, (Host, Group)) and instance.inventory.pending_deletion and settings.ACTIVITY_STREAM_COALESCE_ENTRIES:
|
||||
return # accounted for by inventory entry, above
|
||||
_type = type(instance)
|
||||
if getattr(_type, '_deferred', False):
|
||||
return
|
||||
changes = model_to_dict(instance)
|
||||
changes.update(model_to_dict(instance))
|
||||
object1 = camelcase_to_underscore(instance.__class__.__name__)
|
||||
if type(instance) == OAuth2AccessToken:
|
||||
changes['token'] = CENSOR_VALUE
|
||||
|
||||
@ -919,6 +919,7 @@ SCM_EXCLUDE_EMPTY_GROUPS = True
|
||||
# Defaults for enabling/disabling activity stream.
|
||||
# Note: These settings may be overridden by database settings.
|
||||
ACTIVITY_STREAM_ENABLED = True
|
||||
ACTIVITY_STREAM_COALESCE_ENTRIES = True
|
||||
ACTIVITY_STREAM_ENABLED_FOR_INVENTORY_SYNC = False
|
||||
|
||||
# Internal API URL for use by inventory scripts and callback plugin.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user