mirror of
https://github.com/ZwareBear/awx.git
synced 2026-04-30 20:01:48 -05:00
move legacy UnifiedJob stdout data to a separate unmanaged model
This data often (in the case of inventory updates) represents large data blobs (5+MB per job run). Storing it on the polymorphic base class table, `main_unifiedjob`, causes it to be automatically fetched on every query (and every polymorphic join) against that table, which can result in _very_ poor performance for awx across the board. Django offers `defer()`, but it's quite complicated to sprinkle this everywhere (and easy to get wrong/introduce side effects related to our RBAC and usage of polymorphism). This change moves the field definition to a separate unmanaged model (which references the same underlying `main_unifiedjob` table) and adds a proxy for fetching the data as needed see https://github.com/ansible/awx/issues/200
This commit is contained in:
@@ -516,6 +516,10 @@ class BaseTask(LogErrorsTask):
|
||||
update_fields.append(field)
|
||||
if field == 'status':
|
||||
update_fields.append('failed')
|
||||
if 'result_stdout_text' in update_fields:
|
||||
# result_stdout_text is now deprecated, and is no longer
|
||||
# an actual Django field (it's a property)
|
||||
update_fields.remove('result_stdout_text')
|
||||
instance.save(update_fields=update_fields)
|
||||
return instance
|
||||
except DatabaseError as e:
|
||||
|
||||
Reference in New Issue
Block a user