mirror of
https://github.com/ansible/awx.git
synced 2026-02-22 13:36:02 -03:30
* AAP-37282 Add parse JQ data and test it for a `job` object in isolation (#15774) * Add jq dependency * Add file in progress * Add license for jq * Write test and get it passing * Successfully test collection of `event_query.yml` data (#15761) * Callback plugin method from cmeyers adapted to global collection list Get tests passing Mild rebranding Put behind feature flag, flip true in dev Add noqa flag * Add missing wait_for_events * feat: try grabbing query files from artifacts directory (#15776) * Contract changes for the event_query collection callback plugin (#15785) * Minor import changes to collection processing in callback plugin * Move agreed location of event_query file * feat: remaining schema changes for indirect host audits (#15787) * Re-organize test file and move artifacts processing logic to callback (#15784) * Rename the indirect host counting test file * Combine artifacts saving logic * Connect host audit model to jq logic via new task * Add unit tests for indirect host counting (#15792) * Do not get django flags from database (#15794) * Document, implement, and test remaining indirect host audit fields (#15796) * Document, implement, and test remaining indirect host audit fields * Fix hashing * AAP-39559 Wait for all event processing to finish, add fallback task (#15798) * Wait for all event processing to finish, add fallback task * Add flag check to periodic task * feat: cleanup of old indirect host audit records (#15800) * By default, do not count indirect hosts (#15801) * By default, do not count indirect hosts * Fix copy paste goof * Fix linter issue from base branch * prevent multiple tasks from processing the same job events, prevent p… (#15805) prevent multiple tasks from processing the same job events, prevent periodic task from spawning another task per job * Fix typos and other bugs found by Pablo review * fix: rely on resolved_action instead of task, adapt to proposed query… (#15815) * fix: rely on resolved_action instead of task, adapt to proposed query structure * tests: update indirect host tests * update remaining queries to new format * update live test * Remove polling loop for job finishing event processing (#15811) * Remove polling loop for job finishing event processing * Make awx/main/tests/live dramatically faster (#15780) * AAP-37282 Add parse JQ data and test it for a `job` object in isolation (#15774) * Add jq dependency * Add file in progress * Add license for jq * Write test and get it passing * Successfully test collection of `event_query.yml` data (#15761) * Callback plugin method from cmeyers adapted to global collection list Get tests passing Mild rebranding Put behind feature flag, flip true in dev Add noqa flag * Add missing wait_for_events * feat: try grabbing query files from artifacts directory (#15776) * Contract changes for the event_query collection callback plugin (#15785) * Minor import changes to collection processing in callback plugin * Move agreed location of event_query file * feat: remaining schema changes for indirect host audits (#15787) * Re-organize test file and move artifacts processing logic to callback (#15784) * Rename the indirect host counting test file * Combine artifacts saving logic * Connect host audit model to jq logic via new task * Document, implement, and test remaining indirect host audit fields (#15796) * Document, implement, and test remaining indirect host audit fields * Fix hashing * AAP-39559 Wait for all event processing to finish, add fallback task (#15798) * Wait for all event processing to finish, add fallback task * Add flag check to periodic task * feat: cleanup of old indirect host audit records (#15800) * prevent multiple tasks from processing the same job events, prevent p… (#15805) prevent multiple tasks from processing the same job events, prevent periodic task from spawning another task per job * Remove polling loop for job finishing event processing (#15811) * Remove polling loop for job finishing event processing * Make awx/main/tests/live dramatically faster (#15780) * temp * remove test * reorder migrations to allow indirect instances backport * cleanup for rebase and merge into devel --------- Co-authored-by: Peter Braun <pbraun@redhat.com> Co-authored-by: jessicamack <jmack@redhat.com> Co-authored-by: Peter Braun <pbranu@redhat.com>
86 lines
4.0 KiB
Python
86 lines
4.0 KiB
Python
# Generated by Django 4.2.16 on 2025-01-29 20:13
|
|
|
|
from django.db import migrations, models
|
|
import django.db.models.deletion
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
('main', '0195_EE_permissions'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.AddField(
|
|
model_name='job',
|
|
name='event_queries_processed',
|
|
field=models.BooleanField(default=True, help_text='Events of this job have been queried for indirect host information, or do not need processing.'),
|
|
),
|
|
migrations.CreateModel(
|
|
name='EventQuery',
|
|
fields=[
|
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('fqcn', models.CharField(help_text='Fully-qualified collection name.', max_length=255)),
|
|
('collection_version', models.CharField(help_text='Version of the collection this data applies to.', max_length=32)),
|
|
('event_query', models.JSONField(default=dict, help_text='The extensions/audit/event_query.yml file content scraped from the collection.')),
|
|
],
|
|
options={
|
|
'unique_together': {('fqcn', 'collection_version')},
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='IndirectManagedNodeAudit',
|
|
fields=[
|
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('created', models.DateTimeField(auto_now_add=True)),
|
|
('name', models.CharField(help_text='The Ansible name of the host that this audit record is for.', max_length=255)),
|
|
('canonical_facts', models.JSONField(default=dict, help_text='Facts about the host that will be used for managed node deduplication.')),
|
|
('facts', models.JSONField(default=dict, help_text='Non canonical facts having additional info about the managed node.')),
|
|
('events', models.JSONField(default=list, help_text='List of fully-qualified names of modules that ran against the host in the job.')),
|
|
('count', models.PositiveIntegerField(default=0, help_text='Counter of how many times registered modules were invoked on the host.')),
|
|
(
|
|
'host',
|
|
models.ForeignKey(
|
|
help_text='The host this audit record is for.',
|
|
null=True,
|
|
on_delete=django.db.models.deletion.DO_NOTHING,
|
|
related_name='host_indirect_host_audits',
|
|
to='main.host',
|
|
),
|
|
),
|
|
(
|
|
'inventory',
|
|
models.ForeignKey(
|
|
help_text='The inventory the related job ran against, and which the related host is in.',
|
|
null=True,
|
|
on_delete=django.db.models.deletion.DO_NOTHING,
|
|
related_name='inventory_indirect_host_audits',
|
|
to='main.inventory',
|
|
),
|
|
),
|
|
(
|
|
'job',
|
|
models.ForeignKey(
|
|
editable=False,
|
|
help_text='Data saved in this record only applies to this specified job.',
|
|
on_delete=django.db.models.deletion.DO_NOTHING,
|
|
related_name='job_indirect_host_audits',
|
|
to='main.job',
|
|
),
|
|
),
|
|
(
|
|
'organization',
|
|
models.ForeignKey(
|
|
help_text='Applicable organization, inferred from the related job.',
|
|
on_delete=django.db.models.deletion.DO_NOTHING,
|
|
related_name='organization_indirect_host_audits',
|
|
to='main.organization',
|
|
),
|
|
),
|
|
],
|
|
options={
|
|
'unique_together': {('name', 'job')},
|
|
},
|
|
),
|
|
]
|