Coalesce host and group A.S. deletion entries

This commit is contained in:
AlanCoding 2018-11-01 15:14:39 -04:00
parent 2c5f209996
commit 5562e636ea
No known key found for this signature in database
GPG Key ID: FD2C3C012A72926B
3 changed files with 25 additions and 3 deletions

View File

@ -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,

View File

@ -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

View File

@ -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.