Beispiel #1
0
    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()))
Beispiel #2
0
    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)
Beispiel #3
0
 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))
Beispiel #4
0
    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()))
Beispiel #5
0
 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()
Beispiel #6
0
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)