Revision 9096ffbb snf-astakos-app/astakos/test/views.py
b/snf-astakos-app/astakos/test/views.py | ||
---|---|---|
33 | 33 |
|
34 | 34 |
from datetime import datetime, timedelta |
35 | 35 |
|
36 |
from astakos.im.models import AstakosUser, ProjectApplication
|
|
36 |
from astakos.im.models import AstakosUser, Project |
|
37 | 37 |
from astakos.im.functions import (join_project, leave_project, |
38 | 38 |
submit_application, approve_application, |
39 |
get_user_by_id, check_pending_app_quota,
|
|
39 |
check_pending_app_quota, |
|
40 | 40 |
ProjectForbidden) |
41 | 41 |
from snf_django.lib.db.transaction import commit_on_success_strict |
42 | 42 |
|
43 | 43 |
|
44 | 44 |
@commit_on_success_strict() |
45 |
def join(proj_id, user_id):
|
|
46 |
join_project(proj_id, get_user_by_id(user_id))
|
|
45 |
def join(proj_id, user): |
|
46 |
return join_project(proj_id, user)
|
|
47 | 47 |
|
48 | 48 |
|
49 | 49 |
@commit_on_success_strict() |
50 |
def leave(proj_id, user_id):
|
|
51 |
leave_project(proj_id, get_user_by_id(user_id))
|
|
50 |
def leave(memb_id, request_user):
|
|
51 |
return leave_project(memb_id, request_user)
|
|
52 | 52 |
|
53 | 53 |
|
54 | 54 |
@commit_on_success_strict() |
55 |
def submit(name, user_id, prec):
|
|
55 |
def submit(name, user_id, project_id=None):
|
|
56 | 56 |
try: |
57 | 57 |
owner = AstakosUser.objects.get(id=user_id) |
58 | 58 |
except AstakosUser.DoesNotExist: |
59 | 59 |
raise AttributeError('user does not exist') |
60 | 60 |
|
61 |
precursor = (ProjectApplication.objects.get(id=prec) |
|
62 |
if prec is not None |
|
63 |
else None) |
|
64 |
|
|
65 |
ok, limit = check_pending_app_quota(owner, precursor=precursor) |
|
61 |
project = (Project.objects.get(id=project_id) if project_id is not None |
|
62 |
else None) |
|
63 |
ok, limit = check_pending_app_quota(owner, project=project) |
|
66 | 64 |
if not ok: |
67 | 65 |
raise ProjectForbidden('Limit %s reached', limit) |
68 | 66 |
|
69 |
resource_policies = [('cyclades.network.private', 5)]
|
|
67 |
resource_policies = {'cyclades.network.private': {'member_capacity': 5}}
|
|
70 | 68 |
data = {'owner': owner, |
71 | 69 |
'name': name, |
72 |
'precursor_id': prec,
|
|
70 |
'project_id': project_id,
|
|
73 | 71 |
'end_date': datetime.now() + timedelta(days=1), |
74 | 72 |
'member_join_policy': 1, |
75 | 73 |
'member_leave_policy': 1, |
76 |
'resource_policies': resource_policies,
|
|
74 |
'resources': resource_policies, |
|
77 | 75 |
'request_user': owner |
78 | 76 |
} |
79 | 77 |
|
80 | 78 |
app = submit_application(**data) |
81 |
return app.id |
|
79 |
return app.id, app.chain_id
|
|
82 | 80 |
|
83 | 81 |
|
84 | 82 |
@commit_on_success_strict() |
Also available in: Unified diff