This contains commands to demo the fix in this patch:
Postgres documents the types of locking it uses here:
https://www.postgresql.org/docs/current/explicit-locking.html
system_administrator | |
instancegroup.admin_role | |
credential.admin_role | |
organization.admin_role | |
workflowjobtemplate.admin_role | |
project.admin_role | |
instancegroup.use_role | |
instancegroup.read_role | |
credential.use_role | |
credential.read_role |
This contains commands to demo the fix in this patch:
Postgres documents the types of locking it uses here:
https://www.postgresql.org/docs/current/explicit-locking.html
awx=# \d main_organization; | |
Table "public.main_organization" | |
Column | Type | Collation | Nullable | Default | |
-------------------------------------+--------------------------+-----------+----------+---------------------------------- | |
id | integer | | not null | generated by default as identity | |
created | timestamp with time zone | | not null | | |
modified | timestamp with time zone | | not null | | |
description | text | | not null | | |
name | character varying(512) | | not null | | |
created_by_id | integer | | | |
diff --git a/awx/api/views/__init__.py b/awx/api/views/__init__.py | |
index 609e88e155..141820ce73 100644 | |
--- a/awx/api/views/__init__.py | |
+++ b/awx/api/views/__init__.py | |
@@ -2745,6 +2745,11 @@ class WorkflowJobNodeList(ListAPIView): | |
serializer_class = serializers.WorkflowJobNodeListSerializer | |
search_fields = ('unified_job_template__name', 'unified_job_template__description') | |
+ def get_queryset(self): | |
+ parent = self.get_parent_object() |
SELECT "main_unifiedjob"."id", | |
"main_unifiedjob"."polymorphic_ctype_id", | |
"main_unifiedjob"."modified", | |
"main_unifiedjob"."description", | |
"main_unifiedjob"."created_by_id", | |
"main_unifiedjob"."modified_by_id", | |
"main_unifiedjob"."name", | |
"main_unifiedjob"."execution_environment_id", | |
"main_unifiedjob"."old_pk", | |
"main_unifiedjob"."emitted_events", |
print("\x00") |
Requested items to be solved with this feature
import os | |
import io | |
import time | |
import stat | |
from ansible_runner.utils.streaming import stream_dir | |
# source_directory = '/home/alancoding/repos/awx' | |
source_directory = '.' |
Setup
/api/v2/jobs/586/job_events/?not__stdout=&order_by=counter&page=1&page_size=50
With that scenario, we run different scenarios, and each scenario has 2 queries. The first query gets the count and the second query gets the objects.