Revision 44d950c6 snf-astakos-app/astakos/im/quotas.py

b/snf-astakos-app/astakos/im/quotas.py
320 320
    set_quota(quota)
321 321

  
322 322

  
323
def compute_diff_quota(local, registered):
324
    diff = {}
325
    for holder, h_quota in local.iteritems():
326
        for source, value in h_quota.iteritems():
327
            reg_h_quota = registered.get(holder, {})
328
            reg_value = reg_h_quota.get(source, {})
329
            if value != reg_value:
330
                set_path(diff, [holder, source], value, createpath=True)
331
    return diff
332

  
333

  
334
def qh_sync_projects_diffs(projects, sync=True):
335
    local_project, local_user = astakos_project_quotas(projects)
336
    registered_project, registered_user = get_projects_quota_limits(projects)
337
    diff_quotas = compute_diff_quota(local_project, registered_project)
338
    diff_quotas.update(compute_diff_quota(local_user, registered_user))
339

  
340
    if sync:
341
        set_quota(diff_quotas)
342

  
343
    all_registered = registered_project
344
    all_registered.update(registered_user)
345
    return all_registered, diff_quotas
346

  
347

  
348 323
def pick_limit_scheme(project, resource):
349 324
    return resource.uplimit if project.is_base else resource.project_default
350 325

  

Also available in: Unified diff