import time
import json
import logging
-from emuvim.dcemulator.resourcemodel import BaseResourceModel
+from emuvim.dcemulator.resourcemodel import BaseResourceModel, NotEnoughResourcesAvailable
LOG = logging.getLogger("rm.upb.simple")
LOG.setLevel(logging.DEBUG)
fl_cu = self._get_flavor(d).get("compute")
# check for over provisioning
if self.dc_alloc_cu + fl_cu > self.dc_max_cu and self.raise_no_cpu_resources_left:
- raise Exception("Not enough compute resources left.")
+ raise NotEnoughResourcesAvailable("Not enough compute resources left.")
self.dc_alloc_cu += fl_cu
def _allocate_mem(self, d):
fl_mu = self._get_flavor(d).get("memory")
# check for over provisioning
if self.dc_alloc_mu + fl_mu > self.dc_max_mu and self.raise_no_mem_resources_left:
- raise Exception("Not enough memory resources left.")
+ raise NotEnoughResourcesAvailable("Not enough memory resources left.")
self.dc_alloc_mu += fl_mu
def free(self, d):
# calculate
return float(e_cpu) / sum([rm.dc_max_cu for rm in list(self.registrar.resource_models)]) * self.cpu_op_factor
+
+class UpbDummyRM(UpbSimpleCloudDcRM):
+ """
+ No limits. But log allocations.
+ """
+ def __init__(self, *args, **kvargs):
+ super(UpbDummyRM, self).__init__(*args, **kvargs)
+ self.raise_no_cpu_resources_left = False
+
+ def _apply_limits(self):
+ # do nothing here
+ pass
+