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