Files
SnarfCode/scripts/inspect_awx_orm.py

39 lines
1.2 KiB
Python

import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('140.44.4.11', username='root', key_filename=r'C:\Users\Snarf\.ssh\id_ed25519_snarfnet', timeout=10)
py_script = """
from awx.main.models import Organization, Inventory, Group, Host, Credential, Project, JobTemplate
print("=== ORGANIZATIONS ===")
for o in Organization.objects.all():
print(f" [{o.id}] {o.name}")
print("\\n=== INVENTORIES ===")
for i in Inventory.objects.all():
print(f" [{i.id}] {i.name} (Hosts: {i.hosts.count()})")
print("\\n=== CREDENTIALS ===")
for c in Credential.objects.all():
print(f" [{c.id}] {c.name} (Type: {c.credential_type.name})")
print("\\n=== PROJECTS ===")
for p in Project.objects.all():
print(f" [{p.id}] {p.name} (SCM: {p.scm_type}, URL: {p.scm_url}, Status: {p.status})")
print("\\n=== JOB TEMPLATES ===")
for t in JobTemplate.objects.all():
print(f" [{t.id}] {t.name}")
"""
import base64
b64 = base64.b64encode(py_script.encode()).decode()
cmd = f"kubectl exec -i -n awx -c awx-task deployment/awx-task -- awx-manage shell_plus --quiet << 'EOF'\n{py_script}\nEOF"
stdin, stdout, stderr = ssh.exec_command(cmd)
print(stdout.read().decode())
print(stderr.read().decode())
ssh.close()