Project

General

Profile

root / trunk / src / haizea / core / scheduler / preparation_schedulers / unmanaged.py @ 632

1
# -------------------------------------------------------------------------- #
2
# Copyright 2006-2008, University of Chicago                                 #
3
# Copyright 2008, Distributed Systems Architecture Group, Universidad        #
4
# Complutense de Madrid (dsa-research.org)                                   #
5
#                                                                            #
6
# Licensed under the Apache License, Version 2.0 (the "License"); you may    #
7
# not use this file except in compliance with the License. You may obtain    #
8
# a copy of the License at                                                   #
9
#                                                                            #
10
# http://www.apache.org/licenses/LICENSE-2.0                                 #
11
#                                                                            #
12
# Unless required by applicable law or agreed to in writing, software        #
13
# distributed under the License is distributed on an "AS IS" BASIS,          #
14
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   #
15
# See the License for the specific language governing permissions and        #
16
# limitations under the License.                                             #
17
# -------------------------------------------------------------------------- #
18

    
19
from haizea.core.leases import Lease
20
from haizea.core.scheduler import EarliestStartingTime
21
from haizea.core.scheduler.preparation_schedulers import PreparationScheduler
22
import haizea.common.constants as constants
23
from mx.DateTime import TimeDelta
24

    
25
class UnmanagedPreparationScheduler(PreparationScheduler):
26
    def __init__(self, slottable, resourcepool, deployment_enact):
27
        PreparationScheduler.__init__(self, slottable, resourcepool, deployment_enact)
28
        self.handlers = {}
29
    
30
    def schedule(self, lease, vmrr, nexttime):
31
        # Nothing to do
32
        return [], True
33
    
34
    def find_earliest_starting_times(self, lease, nexttime):
35
        # The earliest starting time is "nexttime" on all nodes.
36
        node_ids = [node.id for node in self.resourcepool.get_nodes()]
37
        earliest = {}
38
        for node in node_ids:
39
            earliest[node] = EarliestStartingTime(nexttime, EarliestStartingTime.EARLIEST_NOPREPARATION)
40
        return earliest
41
            
42
    def estimate_migration_time(self, lease):
43
        return TimeDelta(seconds=0)     
44
            
45
    def schedule_migration(self, lease, vmrr, nexttime):
46
        return []
47
                
48
    def cancel_preparation(self, lease):
49
        self.cleanup(lease)
50

    
51
    def cleanup(self, lease):
52
        # Nothing to clean up.
53
        pass