Revision 764d99c4 snf-astakos-app/astakos/im/models.py
b/snf-astakos-app/astakos/im/models.py | ||
---|---|---|
446 | 446 |
def policies(self): |
447 | 447 |
return self.astakosuserquota_set.select_related().all() |
448 | 448 |
|
449 |
@policies.setter |
|
450 |
def policies(self, policies): |
|
451 |
for p in policies: |
|
452 |
p.setdefault('resource', '') |
|
453 |
p.setdefault('capacity', 0) |
|
454 |
p.setdefault('update', True) |
|
455 |
self.add_resource_policy(**p) |
|
456 |
|
|
457 |
def add_resource_policy( |
|
458 |
self, resource, capacity, |
|
459 |
update=True): |
|
460 |
"""Raises ObjectDoesNotExist, IntegrityError""" |
|
461 |
resource = Resource.objects.get(name=resource) |
|
462 |
if update: |
|
463 |
AstakosUserQuota.objects.update_or_create( |
|
464 |
user=self, resource=resource, defaults={ |
|
465 |
'capacity':capacity, |
|
466 |
}) |
|
467 |
else: |
|
468 |
q = self.astakosuserquota_set |
|
469 |
q.create( |
|
470 |
resource=resource, capacity=capacity, |
|
471 |
) |
|
472 |
|
|
473 | 449 |
def get_resource_policy(self, resource): |
474 | 450 |
resource = Resource.objects.get(name=resource) |
475 | 451 |
default_capacity = resource.uplimit |
... | ... | |
479 | 455 |
except AstakosUserQuota.DoesNotExist: |
480 | 456 |
return None, default_capacity |
481 | 457 |
|
482 |
def remove_resource_policy(self, service, resource): |
|
483 |
"""Raises ObjectDoesNotExist, IntegrityError""" |
|
484 |
resource = Resource.objects.get(name=resource) |
|
485 |
q = self.policies.get(resource=resource).delete() |
|
486 |
|
|
487 | 458 |
def update_uuid(self): |
488 | 459 |
while not self.uuid: |
489 | 460 |
uuid_val = str(uuid.uuid4()) |
Also available in: Unified diff