Revision 84a3f701 snf-astakos-app/astakos/im/endpoints/qh.py
b/snf-astakos-app/astakos/im/endpoints/qh.py | ||
---|---|---|
73 | 73 |
logger.info('set_quota: %s rejected: %s' % (payload, result)) |
74 | 74 |
return result |
75 | 75 |
|
76 |
def qh_get_quota(user, resources): |
|
76 |
def get_entity(payload): |
|
77 |
c = get_client() |
|
78 |
if not c: |
|
79 |
return |
|
80 |
result = c.get_entity(context={}, get_entity=payload) |
|
81 |
logger.info('get_entity: %s reply: %s' % (payload, result)) |
|
82 |
return result |
|
83 |
|
|
84 |
def get_holding(payload): |
|
85 |
c = get_client() |
|
86 |
if not c: |
|
87 |
return |
|
88 |
result = c.get_holding(context={}, get_holding=payload) |
|
89 |
logger.info('get_holding: %s reply: %s' % (payload, result)) |
|
90 |
return result |
|
91 |
|
|
92 |
def qh_get_holdings(users, resources): |
|
93 |
payload = [] |
|
94 |
append = payload.append |
|
95 |
for user in users: |
|
96 |
for resource in resources: |
|
97 |
append((user.uuid, resource, ENTITY_KEY),) |
|
98 |
result = get_holding(payload) |
|
99 |
return result |
|
100 |
|
|
101 |
def qh_get_quota(users, resources): |
|
77 | 102 |
c = get_client() |
78 | 103 |
if not c: |
79 | 104 |
return |
80 | 105 |
payload = [] |
81 | 106 |
append = payload.append |
82 |
for r in resources: |
|
83 |
append((user.uuid, r, ENTITY_KEY),) |
|
107 |
for user in users: |
|
108 |
for resource in resources: |
|
109 |
append((user.uuid, resource, ENTITY_KEY),) |
|
110 |
|
|
84 | 111 |
result = c.get_quota(context={}, clientkey=clientkey, get_quota=payload) |
85 | 112 |
logger.info('get_quota: %s rejected: %s' % (payload, result)) |
86 | 113 |
return result |
87 | 114 |
|
115 |
def qh_get_quota_limits(users, resources): |
|
116 |
result = qh_get_quota(users, resources) |
|
117 |
return result |
|
118 |
|
|
88 | 119 |
def create_entity(payload): |
89 | 120 |
c = get_client() |
90 | 121 |
if not c: |
... | ... | |
129 | 160 |
import_limit = q1.import_limit + q2.import_limit, |
130 | 161 |
export_limit = q1.export_limit + q2.export_limit) |
131 | 162 |
|
132 |
def qh_register_user(user): |
|
133 |
return register_users([user]) |
|
163 |
def qh_register_user_with_quotas(user):
|
|
164 |
return register_users_with_quotas([user])
|
|
134 | 165 |
|
135 |
def register_users(users): |
|
136 |
rejected = create_users(users)
|
|
166 |
def register_users_with_quotas(users):
|
|
167 |
rejected = register_users(users)
|
|
137 | 168 |
if not rejected: |
138 | 169 |
register_quotas(users) |
139 | 170 |
|
140 |
def create_users(users): |
|
171 |
def register_users(users): |
|
172 |
if not users: |
|
173 |
return |
|
174 |
|
|
141 | 175 |
payload = list(CreateEntityPayload( |
142 | 176 |
entity=u.uuid, |
143 | 177 |
owner='system', |
... | ... | |
146 | 180 |
return create_entity(payload) |
147 | 181 |
|
148 | 182 |
def register_quotas(users): |
183 |
if not users: |
|
184 |
return |
|
185 |
|
|
149 | 186 |
payload = [] |
150 | 187 |
append = payload.append |
151 | 188 |
for u in users: |
... | ... | |
186 | 223 |
flags=0) for resource in resources) |
187 | 224 |
return set_quota(payload) |
188 | 225 |
|
226 |
def qh_check_users(users): |
|
227 |
payload = [(u.uuid, ENTITY_KEY) for u in users] |
|
228 |
result = get_entity(payload) |
|
229 |
uuids = [entity for (entity, owner) in result] |
|
230 |
|
|
231 |
existing = [] |
|
232 |
nonexisting = [] |
|
233 |
for u in users: |
|
234 |
if u.uuid in uuids: |
|
235 |
existing.append(u) |
|
236 |
else: |
|
237 |
nonexisting.append(u) |
|
238 |
return (existing, nonexisting) |
|
239 |
|
|
189 | 240 |
def qh_add_quota(serial, sub_list, add_list): |
190 | 241 |
if not QUOTAHOLDER_URL: |
191 | 242 |
return () |
Also available in: Unified diff