def test__get_quota_usages(self): _quota_reserve(self.context, 'project1') sqlalchemy_api = sqlalchemyapi.get_backend() quota_usages = sqlalchemy_api._get_quota_usages( self.context, 'project1') self.assertEqual(['fpga', 'gpu', 'mlu'], sorted(quota_usages.keys()))
def test_quota_reserve(self): sqlalchemy_api = sqlalchemyapi.get_backend() reservations = _quota_reserve(self.context, 'project1') self.assertEqual(3, len(reservations)) quota_usages = sqlalchemy_api._get_quota_usages( self.context, 'project1') result = {'project_id': "project1"} for k, v in quota_usages.items(): result[v.resource] = dict(in_use=v.in_use, reserved=v.reserved) self.assertEqual( { 'project_id': 'project1', 'mlu': { 'reserved': 3, 'in_use': 0 }, 'gpu': { 'reserved': 2, 'in_use': 0 }, 'fpga': { 'reserved': 1, 'in_use': 0 } }, result)
def test__get_reservation_resources(self): sqlalchemy_api = sqlalchemyapi.get_backend() reservations = _quota_reserve(self.context, 'project1') expected = ['fpga', 'gpu', 'mlu'] resources = sqlalchemy_api._get_reservation_resources( self.context, reservations) self.assertEqual(expected, sorted(resources))
def _test__get_quota_usages_with_resources(self): _quota_reserve(self.context, 'project1') sqlalchemy_api = sqlalchemyapi.get_backend() quota_usage = sqlalchemy_api._get_quota_usages( self.context, 'project1', resources=['gpu']) self.assertEqual(['gpu'], list(quota_usage.keys()))
def __init__(self, execute=putils.execute, *args, **kwargs): super(SPDKDRIVER, self).__init__(execute, *args, **kwargs) self.configuration.append_config_values(accelerator_opts) self.hostname = socket.gethostname() self.driver_type = self.configuration\ .safe_get('accelerator_backend_name') or 'SPDK' self.device_type = self.configuration.safe_get('device_type') self.dbconn = api.get_backend()
def _quota_reserve(context, project_id): """Create sample QuotaUsage and Reservation objects. There is no method db.quota_usage_create(), so we have to use db.quota_reserve() for creating QuotaUsage objects. Returns reservations uuids. """ sqlalchemy_api = sqlalchemyapi.get_backend() resources = {} deltas = {} for i, resource in enumerate(('fpga', 'gpu', 'mlu')): deltas[resource] = i + 1 return sqlalchemy_api.quota_reserve(context, resources, deltas, timeutils.utcnow(), timeutils.utcnow(), datetime.timedelta(days=1), project_id)