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