Skip to content

Instantly share code, notes, and snippets.

View AlanCoding's full-sized avatar

Alan Rominger AlanCoding

  • Red Hat
  • Durham, NC
View GitHub Profile
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
@AlanCoding
AlanCoding / README.md
Created September 25, 2023 17:43
database locking demo
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",
@AlanCoding
AlanCoding / bad_write.py
Last active January 3, 2023 18:55
Patches saved
print("\x00")

Smart Inventory Research

Requested items to be solved with this feature

  • Searching on hostvars ansible/awx#371
    • Ability to filter natively
    • Filtering on "resolved" hostvars
  • Smart inventories don't contain groups ansible/awx#1999

Walkthrough of Smart Inventory Lifecycle

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

  • run chatty tasks playbook
  • get a query the UI uses when streaming the job output
    • /api/v2/jobs/586/job_events/?not__stdout=&order_by=counter&page=1&page_size=50
  • Turn on Django debug toolbar
  • look at queries

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.