Project

General

Profile

Revision 632

Merged TP2.0/0.9 branch into trunk.

View differences:

common.py
3 3
import threading
4 4
import shutil
5 5

  
6
from haizea.resourcemanager.configfile import HaizeaConfig
7
from haizea.resourcemanager.rm import ResourceManager
6
from haizea.core.configfile import HaizeaConfig
7
from haizea.core.scheduler.slottable import ResourceReservation, SlotTable
8
from haizea.core.leases import Lease, Timestamp, Duration
9
from haizea.core.manager import Manager
8 10

  
9 11
class BaseTest(object):
10 12
    def __init__(self):
......
26 28

  
27 29
    def test_preemption(self):
28 30
        self.set_tracefile("preemption.lwf")
29
        rm = ResourceManager(HaizeaConfig(self.config))
30
        rm.start()
31
        haizea = Manager(HaizeaConfig(self.config))
32
        haizea.start()
31 33
        
32 34
    def test_preemption_prematureend(self):
33 35
        self.set_tracefile("preemption_prematureend.lwf")
34
        rm = ResourceManager(HaizeaConfig(self.config))
35
        rm.start()
36
        haizea = Manager(HaizeaConfig(self.config))
37
        haizea.start()
36 38
        
37 39
    def test_preemption_prematureend2(self):
38 40
        self.set_tracefile("preemption_prematureend2.lwf")
39
        rm = ResourceManager(HaizeaConfig(self.config))
40
        rm.start()
41
        haizea = Manager(HaizeaConfig(self.config))
42
        haizea.start()
41 43
        
42 44
    def test_reservation(self):
43 45
        self.set_tracefile("reservation.lwf")
44
        rm = ResourceManager(HaizeaConfig(self.config))
45
        rm.start()
46
        haizea = Manager(HaizeaConfig(self.config))
47
        haizea.start()
46 48
        
47 49
    def test_reservation_prematureend(self):
48 50
        self.set_tracefile("reservation_prematureend.lwf")
49
        rm = ResourceManager(HaizeaConfig(self.config))
50
        rm.start()
51
        haizea = Manager(HaizeaConfig(self.config))
52
        haizea.start()
51 53
        
52 54
    def test_migrate(self):
53 55
        self.set_tracefile("migrate.lwf")
54
        rm = ResourceManager(HaizeaConfig(self.config))
55
        rm.start()
56
        haizea = Manager(HaizeaConfig(self.config))
57
        haizea.start()
56 58
        
57 59
    def test_reuse1(self):
58 60
        self.set_tracefile("reuse1.lwf")
59
        rm = ResourceManager(HaizeaConfig(self.config))
60
        rm.start()
61
        haizea = Manager(HaizeaConfig(self.config))
62
        haizea.start()
61 63
        
62 64
    def test_reuse2(self):
63 65
        self.set_tracefile("reuse2.lwf")
64
        rm = ResourceManager(HaizeaConfig(self.config))
65
        rm.start()
66
        haizea = Manager(HaizeaConfig(self.config))
67
        haizea.start()
66 68
        
67 69
    def test_wait(self):
68 70
        self.set_tracefile("wait.lwf")
69
        rm = ResourceManager(HaizeaConfig(self.config))
70
        rm.start()
71
        haizea = Manager(HaizeaConfig(self.config))
72
        haizea.start()
71 73
        
72 74
        
73 75
class BaseOpenNebulaTest(BaseTest):
......
76 78

  
77 79
    def do_test(self, db):
78 80
        shutil.copyfile(db, "one.db")
79
        rm = ResourceManager(HaizeaConfig(self.config))
80
        rm.start()
81
        haizea = Manager(HaizeaConfig(self.config))
82
        haizea.start()
81 83
        os.remove("one.db")
82 84
    
83 85

  
......
86 88
        self.haizea_thread = None
87 89

  
88 90
    def start(self):
89
        self.rm = ResourceManager(HaizeaConfig(self.config))
90
        self.haizea_thread = threading.Thread(target=self.rm.start)
91
        self.haizea = Manager(HaizeaConfig(self.config))
92
        self.haizea_thread = threading.Thread(target=self.haizea.start)
91 93
        self.haizea_thread.start()
92 94
        
93 95
    def stop(self):
94
        self.rm.stop()
95
        self.haizea_thread.join()
96
        self.haizea.stop()
97
        self.haizea_thread.join()
98
        
99
        
100
def create_ar_lease(lease_id, submit_time, start, end, preemptible, requested_resources):
101
    start = Timestamp(start)
102
    duration = Duration(end - start.requested)
103
    lease = Lease.create_new(submit_time = submit_time, 
104
                  requested_resources = requested_resources, 
105
                  start = start, 
106
                  duration = duration,
107
                  deadline = None, 
108
                  preemptible = preemptible, 
109
                  software = None)
110
    
111
    lease.id = lease_id
112
    
113
    return lease
114

  
115
def create_reservation_from_lease(lease, mapping, slottable):
116
    start = lease.start.requested
117
    end = start + lease.duration.requested
118
    res = dict([(mapping[vnode],r) for vnode,r in lease.requested_resources.items()])
119
    rr = ResourceReservation(lease, start, end, res)
120
    slottable.add_reservation(rr)
121

  
122
def create_tmp_slottable(slottable):
123
    tmp_slottable = SlotTable(slottable.resource_types)
124
    tmp_slottable.nodes = slottable.nodes
125
    tmp_slottable.reservations_by_start = slottable.reservations_by_start[:]
126
    tmp_slottable.reservations_by_end = slottable.reservations_by_end[:]
127

  
128
    return tmp_slottable

Also available in: Unified diff