Revision e36a8c21

b/snf-quotaholder-app/quotaholder_django/quotaholder_app/callpoint.py
446 446
                quantity, capacity,
447 447
                import_limit, export_limit, flags  ) in set_quota:
448 448

  
449
                p = None
450

  
451 449
                try:
452
                    h = Holding.objects.get(entity=entity, resource=resource)
453
                    if h.entity.key != key:
454
                        append((entity, resource))
455
                        continue
456
                    p = h.policy
457

  
458
                except Holding.DoesNotExist:
459
                    try:
460
                        e = Entity.objects.get(entity=entity)
461
                    except Entity.DoesNotExist:
462
                        append((entity, resource))
463
                        continue
464

  
465
                    if e.key != key:
466
                        append((entity, resource))
467
                        continue
468

  
469
                    h = None
450
                    e = Entity.objects.get(entity=entity, key=key)
451
                except Entity.DoesNotExist:
452
                    append((entity, resource))
453
                    continue
470 454

  
471 455
                policy = newname('policy_')
472 456
                newp = Policy   (
......
477 461
                            export_limit=export_limit
478 462
                )
479 463

  
480
                if h is None:
481
                    h = Holding(entity=e, resource=resource,
482
                                policy=newp, flags=flags)
483
                else:
464
                try:
465
                    h = Holding.objects.get(entity=entity, resource=resource)
466
                    p = h.policy
484 467
                    h.policy = newp
485 468
                    h.flags = flags
469
                except Holding.DoesNotExist:
470
                    h = Holding(entity=e, resource=resource,
471
                                policy=newp, flags=flags)
472
                    p = None
486 473

  
487 474
                # the order is intentionally reversed so that it
488 475
                # would break if we are not within a transaction.

Also available in: Unified diff