1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 from haizea.core.leases import Capacity
20 from haizea.core.scheduler.resourcepool import ResourcePoolNode
21 from haizea.core.enact import ResourcePoolInfo, VMEnactment, DeploymentEnactment
22 import haizea.common.constants as constants
23 import logging
24
27 ResourcePoolInfo.__init__(self)
28 self.logger = logging.getLogger("ENACT.SIMUL.INFO")
29
30 if not ("CPU" in site.resource_types and "Memory" in site.resource_types):
31
32
33 raise
34
35
36
37 if not "Disk" in site.resource_types:
38 site.add_resource("Disk", [1000000])
39
40 if not "Net-in" in site.resource_types:
41 site.add_resource("Net-in", [1000000])
42
43 if not "Net-out" in site.resource_types:
44 site.add_resource("Net-out", [1000000])
45
46 self.resource_types = site.get_resource_types()
47
48 nodes = site.nodes.get_all_nodes()
49
50 self.nodes = dict([(id, ResourcePoolNode(id, "simul-%i" % id, capacity)) for (id, capacity) in nodes.items()])
51 for node in self.nodes.values():
52 node.enactment_info = node.id
53
56
58 return []
59
61 return self.resource_types
62
65
70
72 for vnode in action.vnodes:
73
74 pnode = action.vnodes[vnode].pnode
75 image = action.vnodes[vnode].diskimage
76 cpu = 100
77 memory = 1024
78 self.logger.debug("Received request to start VM for L%iV%i on host %i, image=%s, cpu=%i, mem=%i"
79 % (action.lease_haizea_id, vnode, pnode, image, cpu, memory))
80
81 - def stop(self, action):
82 for vnode in action.vnodes:
83 self.logger.debug("Received request to stop VM for L%iV%i"
84 % (action.lease_haizea_id, vnode))
85
87 for vnode in action.vnodes:
88 self.logger.debug("Received request to suspend VM for L%iV%i"
89 % (action.lease_haizea_id, vnode))
90
92 for vnode in action.vnodes:
93 self.logger.debug("Received request to resume VM for L%iV%i"
94 % (action.lease_haizea_id, vnode))
95
98
101
114
116 return self.imagenode
117
119 return [self.imagenode]
120
122 return self.bandwidth
123
125 return "/var/haizea/images/%s-L%iV%i" % (diskimage_id, lease_id, vnode)
126