import paramiko import sys sys.stdout.reconfigure(encoding='utf-8') 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_check = """ from awx.main.models import Job job = Job.objects.get(id=134) print(f"Job [134]: Status={job.status}, Elapsed={job.elapsed}s, Failed={job.failed}") events = job.job_events.filter(event__in=['runner_on_ok', 'runner_on_failed', 'playbook_on_stats']).order_by('-id')[:10] for e in events: print(f"[{e.event}] Host: {e.event_data.get('host')} - Task: {e.event_data.get('task')}") """ cmd = f"kubectl exec -i -n awx -c awx-task deployment/awx-task -- awx-manage shell_plus --quiet << 'EOF'\n{py_check}\nEOF" stdin, stdout, stderr = ssh.exec_command(cmd) print(stdout.read().decode()) _, out, _ = ssh.exec_command('kubectl get nodes') print("=== KUBERNETES NODES ===") print(out.read().decode()) ssh.close()