remove unused files
This commit is contained in:
parent
337c5024b7
commit
d77b1b1b4c
@ -1,36 +0,0 @@
|
||||
"""Sequential execution wrapper to prevent parallel SSH connections."""
|
||||
|
||||
import threading
|
||||
import logging
|
||||
from typing import Any, Dict, List, Callable
|
||||
from langchain_core.messages import BaseMessage
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class SequentialExecutor:
|
||||
"""Ensures agents execute sequentially when using SSH to prevent connection flooding."""
|
||||
|
||||
def __init__(self):
|
||||
self._execution_lock = threading.Lock()
|
||||
self._logger = logging.getLogger(__name__)
|
||||
|
||||
def execute_agent_safely(self, agent_func: Callable, messages: List[BaseMessage], agent_name: str = "unknown") -> Dict[str, Any]:
|
||||
"""Execute an agent function with thread safety to prevent parallel SSH operations."""
|
||||
with self._execution_lock:
|
||||
self._logger.info(f"Executing agent: {agent_name}")
|
||||
try:
|
||||
result = agent_func({"messages": messages})
|
||||
# Add a small delay to prevent rapid successive SSH connections
|
||||
import time
|
||||
time.sleep(0.3) # 300ms delay between agent executions
|
||||
return result
|
||||
except Exception as e:
|
||||
self._logger.error(f"Error executing agent {agent_name}: {e}")
|
||||
raise
|
||||
finally:
|
||||
self._logger.info(f"Completed execution of agent: {agent_name}")
|
||||
|
||||
|
||||
# Global sequential executor instance
|
||||
sequential_executor = SequentialExecutor()
|
@ -1,109 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Test script to verify SSH connection sharing works properly.
|
||||
This script simulates multiple agents trying to use SSH simultaneously.
|
||||
"""
|
||||
|
||||
import time
|
||||
import threading
|
||||
from custom_tools import configured_remote_server, ssh_manager
|
||||
from custom_tools.ssh_tool import SSHTool
|
||||
|
||||
def test_ssh_connection_sharing():
|
||||
"""Test that SSH connection sharing prevents multiple connections."""
|
||||
|
||||
print("🧪 Testing SSH Connection Sharing...")
|
||||
print("=" * 50)
|
||||
|
||||
# Test 1: Verify shared connection is being used
|
||||
print("\n1. Testing shared connection mechanism...")
|
||||
|
||||
# Create multiple SSH tool instances with shared connection
|
||||
ssh_tool1 = SSHTool(
|
||||
host="157.90.211.119",
|
||||
port=8081,
|
||||
username="g",
|
||||
key_filename="/Users/ghsioux/.ssh/id_rsa_hetzner",
|
||||
use_shared_connection=True
|
||||
)
|
||||
|
||||
ssh_tool2 = SSHTool(
|
||||
host="157.90.211.119",
|
||||
port=8081,
|
||||
username="g",
|
||||
key_filename="/Users/ghsioux/.ssh/id_rsa_hetzner",
|
||||
use_shared_connection=True
|
||||
)
|
||||
|
||||
# Verify they share the same session
|
||||
if ssh_tool1.session is ssh_tool2.session:
|
||||
print("✅ SSH tools are sharing the same session instance")
|
||||
else:
|
||||
print("❌ SSH tools are NOT sharing the same session instance")
|
||||
|
||||
# Test 2: Test sequential execution
|
||||
print("\n2. Testing sequential execution...")
|
||||
|
||||
def run_command(tool, command, name):
|
||||
"""Run a command with timing info."""
|
||||
start_time = time.time()
|
||||
try:
|
||||
result = tool._run(command)
|
||||
end_time = time.time()
|
||||
print(f" {name}: Completed in {end_time - start_time:.2f}s")
|
||||
return result
|
||||
except Exception as e:
|
||||
end_time = time.time()
|
||||
print(f" {name}: Failed in {end_time - start_time:.2f}s - {e}")
|
||||
return f"Error: {e}"
|
||||
|
||||
# Test commands that should run sequentially
|
||||
commands = [
|
||||
("whoami", "Agent 1"),
|
||||
("date", "Agent 2"),
|
||||
("pwd", "Agent 3")
|
||||
]
|
||||
|
||||
threads = []
|
||||
results = {}
|
||||
|
||||
for cmd, agent_name in commands:
|
||||
thread = threading.Thread(
|
||||
target=lambda c=cmd, n=agent_name: results.update({n: run_command(configured_remote_server, c, n)})
|
||||
)
|
||||
threads.append(thread)
|
||||
|
||||
# Start all threads (they should execute sequentially due to our lock)
|
||||
print(" Starting multiple SSH operations...")
|
||||
start_time = time.time()
|
||||
|
||||
for thread in threads:
|
||||
thread.start()
|
||||
|
||||
for thread in threads:
|
||||
thread.join()
|
||||
|
||||
total_time = time.time() - start_time
|
||||
print(f" Total execution time: {total_time:.2f}s")
|
||||
|
||||
# Test 3: Verify connection cleanup
|
||||
print("\n3. Testing connection cleanup...")
|
||||
print(" Current connections:", len(ssh_manager._connections))
|
||||
|
||||
# Close all connections
|
||||
ssh_manager.close_all()
|
||||
print(" Connections after cleanup:", len(ssh_manager._connections))
|
||||
|
||||
print("\n" + "=" * 50)
|
||||
print("🎉 SSH Connection Sharing Test Complete!")
|
||||
|
||||
return results
|
||||
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
results = test_ssh_connection_sharing()
|
||||
print("\nTest Results:")
|
||||
for agent, result in results.items():
|
||||
print(f" {agent}: {result[:50]}{'...' if len(result) > 50 else ''}")
|
||||
except Exception as e:
|
||||
print(f"Test failed: {e}")
|
Loading…
x
Reference in New Issue
Block a user