File size: 2,832 Bytes
042d8bf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81

#!/usr/bin/env python3
# quick_test.py - اختبار سريع لنظام التوزيع

import requests
import time
from offload_lib import discover_peers

def quick_connectivity_test():
    """اختبار سريع للاتصال والتوزيع"""
    print("🚀 اختبار سريع لنظام التوزيع")
    print("-" * 40)
    
    # 1. اكتشاف الأجهزة
    print("🔍 البحث عن الأجهزة...")
    peers = discover_peers(timeout=2)
    
    if not peers:
        print("❌ لم يتم العثور على أجهزة أخرى")
        return False
    
    print(f"✅ تم العثور على {len(peers)} جهاز:")
    for peer in peers:
        print(f"   📱 {peer}")
    
    # 2. اختبار الاتصال السريع
    working_peers = []
    for peer in peers:
        try:
            response = requests.get(f"{peer}/health", timeout=3)
            if response.status_code == 200:
                working_peers.append(peer)
                print(f"✅ {peer} - متصل ويعمل")
            else:
                print(f"⚠️ {peer} - يستجيب لكن بخطأ")
        except:
            print(f"❌ {peer} - غير متصل")
    
    if not working_peers:
        print("❌ لا توجد أجهزة تعمل بشكل صحيح")
        return False
    
    # 3. اختبار إرسال مهمة بسيطة
    print(f"\n📡 اختبار إرسال مهمة إلى {working_peers[0]}...")
    
    task = {
        "func": "matrix_multiply",
        "args": [5],
        "kwargs": {}
    }
    
    try:
        start_time = time.time()
        response = requests.post(f"{working_peers[0]}/run", json=task, timeout=10)
        duration = time.time() - start_time
        
        if response.status_code == 200:
            result = response.json()
            print(f"✅ تمت المعالجة بنجاح في {duration:.2f} ثانية")
            print(f"📊 النتيجة: تم ضرب مصفوفة 5x5")
            return True
        else:
            print(f"❌ فشل في المعالجة - كود الخطأ: {response.status_code}")
            return False
            
    except Exception as e:
        print(f"❌ خطأ في الإرسال: {str(e)}")
        return False

if __name__ == "__main__":
    success = quick_connectivity_test()
    
    if success:
        print("\n🎉 النظام يعمل بشكل صحيح!")
        print("💡 يمكنك الآن تشغيل الاختبار الشامل: python test_distributed_system.py")
    else:
        print("\n⚠️ هناك مشاكل في النظام، تحقق من:")
        print("   1. تشغيل الخادم على الأجهزة الأخرى")
        print("   2. الاتصال بالشبكة")
        print("   3. إعدادات الجدار الناري")