Jim Ladd
0eddd5ce7f
Enable partition pruning when fetching job's events
2021-06-04 09:17:07 -07:00
Jim Ladd
a7cabec3d0
bump partition migration to 0132
2021-06-04 09:17:07 -07:00
Jim Ladd
b98b3ced1c
update tests to reflect new job_event schema
2021-06-04 09:17:07 -07:00
Jim Ladd
8501a45531
lint fixes
2021-06-04 09:17:07 -07:00
Jim Ladd
14b610dabf
bump partition migration
2021-06-04 09:17:07 -07:00
Jim Ladd
a1d1e70e43
correct constraint name
2021-06-04 09:17:07 -07:00
Jim Ladd
0fa0a517ac
create tmp schema to reference when creating partitioned table
...
* if we use the actual old job events table
and make tweaks to its schema
namely, dropping the pkey constraint,
then when we go to migrate the old job events
we will be forcing postgres to do a sequential scan
on the old table, which effectively causes the migration to hang
2021-06-04 09:17:07 -07:00
Jim Ladd
28f9c0be0b
Do not cascade delete job_events
...
* want to drop job_event _partitions_
.. instead of having the job events associated with a job
automatically get cleaned up for us
2021-06-04 09:17:07 -07:00
Jim Ladd
373edbf8c0
Update reference to partition migration
2021-06-04 09:17:07 -07:00
Ryan Petrello
b19bcdd882
remove the global /api/v2/job_events/ endpoint
2021-06-04 09:17:07 -07:00
Ryan Petrello
08b96a0bd7
correct filter events on the migration event horizon
...
events that existed *prior* to the partition migration will have
`job_created=1970-01-01` auto-applied at migration time; as such,
queries for these events e.g., /api/v2/job/N/job_events/
use 1970-01-01 in related event searche
events created *after* the partition migration (net-new playbook runs
will have `job_created` values that *exactly match* the related
`UnifiedJob.created` field.
2021-06-04 09:17:07 -07:00
Jim Ladd
1e45e2ab9b
Rev migration number
2021-06-04 09:17:07 -07:00
Ryan Petrello
2a58605727
some more events view cleanup
2021-06-04 09:17:07 -07:00
Ryan Petrello
c7ab3ea86e
move the partition data migration to be a post-upgrade async process
...
this copies the approach we took with the bigint migration
2021-06-04 09:17:07 -07:00
Jim Ladd
67046513ae
Push changes before rebasing
2021-06-04 09:17:07 -07:00
Jim Ladd
f9b439ae82
include job_created field in all job event types
2021-06-04 09:17:07 -07:00
Jim Ladd
80b08d17e3
Continue updating job event views
2021-06-04 09:17:07 -07:00
Jim Ladd
f642c520bd
Update fields for job event models to match raw sql operations
...
* raw sql commands were in migration to partition table
* .. just needed to add FakeAddField entries for the new
job_created field added to each job event model
* .. and also needed to actually list the new field on the model classes
2021-06-04 09:17:07 -07:00
Jim Ladd
221ddeb915
Fix migration for _all_ job event tables
...
- each job event table has a different name for the
fk referencing the unified job id
- create a mapping so that we get the col name correct
for each table
2021-06-04 09:17:07 -07:00
Jim Ladd
d90d0fb503
fix initial partition creation
...
* call create_partition correctly (include tblname)
* reference 'awx_epoch'
2021-06-04 09:17:07 -07:00
Jim Ladd
2c529f50af
Update querysets for remaining job event views
...
- search should use job creation date
so that only the table partition with the relevant job events
is searched
2021-06-04 09:17:07 -07:00
Jim Ladd
acfa1c4d1d
Drop todo / question / conditional
...
* can safely assume job_created is set
* .. and if it isn't, we want to expose that bug
2021-06-04 09:17:07 -07:00
Jim Ladd
ea2afeec1f
Drop todo / answered question
2021-06-04 09:17:07 -07:00
Jim Ladd
a5cfc3036f
create_partition needs tblname
2021-06-04 09:17:07 -07:00
Jim Ladd
ec484f81cf
Partition *all* job event tables
2021-06-04 09:17:06 -07:00
Jim Ladd
2ffa22e38f
Misc doc clean-up
2021-06-04 09:17:06 -07:00
Jim Ladd
8fb313638c
get job events based on job creation date
2021-06-04 09:17:06 -07:00
Jim Ladd
0eb1984b22
Only create partitions for regular jobs
2021-06-04 09:17:06 -07:00
Jim Ladd
f259b0a71b
Move partition start date to 2000
2021-06-04 09:17:06 -07:00
Jim Ladd
82df3ebddb
add option to create partitions that span a single minute
...
* turned on by default currently for testing
2021-06-04 09:17:06 -07:00
Jim Ladd
c87d7b0d79
fix import
2021-06-04 09:17:06 -07:00
Jim Ladd
612e91263c
auto-create partition
2021-06-04 09:17:06 -07:00
Jim Ladd
445042c0f4
Create partition only if it doesn't exist
2021-06-04 09:17:06 -07:00
Jim Ladd
0c289205de
Give new primary key constraint unique name, create first live partition
2021-06-04 09:17:06 -07:00
Jim Ladd
ba45592d93
create helper method to create partitions
...
* create_partition()
2021-06-04 09:17:06 -07:00
Jim Ladd
7e0f2b0f08
first partition is _not_ a special case after all
2021-06-04 09:17:06 -07:00
Jim Ladd
fb30528197
Dynamically create initial partitions
...
* First partition holds all events up to this very moment
* And second partition starts where first left off and runs
.. through rest of current hour
* From there, dynamically generated partitions will cover
one hour at a time
2021-06-04 09:17:06 -07:00
Jim Ladd
48f1910075
Remove temporary catch-all partition
2021-06-04 09:17:06 -07:00
Jim Ladd
0cb2d79889
Only save job_created field on JobEvent for the time being
...
* Once other job event tables are migrated, remove this
2021-06-04 09:17:06 -07:00
Jim Ladd
1af1a5e9da
Convert job_created to string for serialization
2021-06-04 09:17:06 -07:00
Jim Ladd
c0d38e91f5
When saving JobEvents, include job_created
...
* this is the partition key
* .. used to determine which partition job event rows are sent to
2021-06-04 09:17:06 -07:00
Jim Ladd
2f737f644f
Drop primary key index before creating partition table
...
* Partition tables require unique contstraints to include the
partition key (uniqueness can only be enforced _inside_
of a given partition table)
2021-06-04 09:17:06 -07:00
Jim Ladd
0574baf7f7
Create fake partition
...
* Just to get things working
* Will implement dynamic creation of partitions later
2021-06-04 09:17:06 -07:00
Jim Ladd
f70473dc0b
When copying main_jobevent, include all table metadata
...
* copy the table just like we do in the bigint migration
* without this we lose sequences and very likely other things
as well
* we want the new table to be identical to the old table,
so 'including all' makes sense
2021-06-04 09:17:06 -07:00
Jim Ladd
de0b25862b
By default, save job_created as null in db
...
* Want to avoid saving date as empty string
* Should default to null so that it's obvious the field is empty
2021-06-04 09:17:06 -07:00
Jim Ladd
6ff15a928a
Register new column created by SQL
...
* .. using FakeAddField model type
* .. without doing this, Django won't know
about the field we created using raw SQL
2021-06-04 09:17:06 -07:00
Jim Ladd
d10d1963c1
Rename / remove old main_jobevent table
2021-06-04 09:17:06 -07:00
Jim Ladd
c6acca08d5
first draft of db partitioning
2021-06-04 09:17:06 -07:00
softwarefactory-project-zuul[bot]
12f2975809
Merge pull request #10358 from jakemcdermott/fix-credlink
...
Make IG credential linkable
SUMMARY
Make the instance group credential detail link to the cred
Reviewed-by: Kersom <None>
Reviewed-by: Tiago Góes <tiago.goes2009@gmail.com>
2021-06-04 15:12:03 +00:00
softwarefactory-project-zuul[bot]
945125454b
Merge pull request #10357 from jakemcdermott/fix-inventory-host-search-config
...
Add search config for inventory hosts
SUMMARY
Adds search config for inventory hosts.
(includes default icontains, etc.)
Reviewed-by: Kersom <None>
Reviewed-by: Tiago Góes <tiago.goes2009@gmail.com>
2021-06-04 15:05:25 +00:00