Revision 0e08e08e snf-astakos-app/astakos/im/register.py
b/snf-astakos-app/astakos/im/register.py | ||
---|---|---|
48 | 48 |
def add_resource(resource_dict): |
49 | 49 |
name = resource_dict.get('name') |
50 | 50 |
service_type = resource_dict.get('service_type') |
51 |
if not name or not service_type: |
|
51 |
service_origin = resource_dict.get('service_origin') |
|
52 |
if not name or not service_type or not service_origin: |
|
52 | 53 |
raise ResourceException("Malformed resource dict.") |
53 | 54 |
|
54 | 55 |
try: |
56 |
service = Service.objects.get(name=service_origin) |
|
57 |
except Service.DoesNotExist: |
|
58 |
m = "There is no service %s." % service_origin |
|
59 |
raise ResourceException(m) |
|
60 |
|
|
61 |
try: |
|
55 | 62 |
r = Resource.objects.get_for_update(name=name) |
56 | 63 |
exists = True |
57 | 64 |
if r.service_type != service_type: |
58 | 65 |
m = ("There already exists a resource named %s with service " |
59 | 66 |
"type %s." % (name, r.service_type)) |
60 | 67 |
raise ResourceException(m) |
68 |
if r.service_origin != service_origin: |
|
69 |
m = ("There already exists a resource named %s registered for " |
|
70 |
"service %s." % (name, r.service_origin)) |
|
71 |
raise ResourceException(m) |
|
72 |
|
|
61 | 73 |
except Resource.DoesNotExist: |
62 | 74 |
r = Resource(name=name, |
63 | 75 |
uplimit=0, |
64 |
service_type=service_type) |
|
76 |
service_type=service_type, |
|
77 |
service_origin=service_origin) |
|
65 | 78 |
exists = False |
66 | 79 |
|
67 | 80 |
for field in resource_fields: |
Also available in: Unified diff