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