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