def get_slurm_piston_endpoints()

in run_tests/piston_client.py [0:0]


def get_slurm_piston_endpoints():
    """Get list of active piston worker endpoints from squeue output"""
    # Run squeue command to get job name, hostname and status, filtering for RUNNING state
    result = subprocess.run(['squeue', '--format="%j %N %T"', '--noheader', '--states=RUNNING'], capture_output=True, text=True)
    
    # Split output into lines and skip header
    lines = result.stdout.strip().split('\n')
    
    endpoints = []
    for line in lines:
        # Parse job name from squeue output
        fields = line.split()
        job_name = fields[0].strip('"')  # Remove quotes
        hostname = fields[1]
        
        # Extract port if job name matches pattern
        match = re.match(r'piston-worker-(\d+)', job_name)
        if match:
            port = match.group(1)
            endpoints.append(f"http://{hostname}:{port}/api/v2")
                
    return endpoints