Revision 5ce3ce4f snf-astakos-app/astakos/im/endpoints/quotaholder.py

b/snf-astakos-app/astakos/im/endpoints/quotaholder.py
1 1
# Copyright 2011-2012 GRNET S.A. All rights reserved.
2
# 
2
#
3 3
# Redistribution and use in source and binary forms, with or
4 4
# without modification, are permitted provided that the following
5 5
# conditions are met:
6
# 
6
#
7 7
#   1. Redistributions of source code must retain the above
8 8
#      copyright notice, this list of conditions and the following
9 9
#      disclaimer.
10
# 
10
#
11 11
#   2. Redistributions in binary form must reproduce the above
12 12
#      copyright notice, this list of conditions and the following
13 13
#      disclaimer in the documentation and/or other materials
14 14
#      provided with the distribution.
15
# 
15
#
16 16
# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
17 17
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 18
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
......
25 25
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
26 26
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 27
# POSSIBILITY OF SUCH DAMAGE.
28
# 
28
#
29 29
# The views and conclusions contained in the software and
30 30
# documentation are those of the authors and should not be
31 31
# interpreted as representing official policies, either expressed
......
45 45

  
46 46
logger = logging.getLogger(__name__)
47 47

  
48

  
48 49
def register_users(users, client=None):
49 50
    if not users:
50 51
        return
51
    
52

  
52 53
    if not QUOTA_HOLDER_URL:
53 54
        return
54
    
55

  
55 56
    c = client or QuotaholderHTTP(QUOTA_HOLDER_URL)
56 57
    data = []
57 58
    append = data.append
......
60 61
            entity = user.email
61 62
        except AttributeError:
62 63
            continue
63
        else:    
64
        else:
64 65
            args = entity, owner, key, ownerkey = (
65 66
                entity, 'system', ENTITY_KEY, ''
66 67
            )
67 68
            append(args)
68
    
69

  
69 70
    if not data:
70 71
        return
71
    
72

  
72 73
    rejected = c.create_entity(
73 74
        context={},
74 75
        create_entity=data,
75 76
    )
76 77
    msg = _('Create entities: %s - Rejected: %s' % (data, rejected,))
77 78
    logger.log(LOGGING_LEVEL, msg)
78
    
79

  
79 80
    created = filter(lambda u: unicode(u.email) not in rejected, users)
80 81
    send_quota(created, c)
81 82
    return rejected
82 83

  
84

  
83 85
def send_quota(users, client=None):
84 86
    if not users:
85 87
        return
86
    
88

  
87 89
    if not QUOTA_HOLDER_URL:
88 90
        return
89
    
91

  
90 92
    c = client or QuotaholderHTTP(QUOTA_HOLDER_URL)
91 93
    data = []
92 94
    append = data.append
......
97 99
            continue
98 100
        else:
99 101
            for resource, limit in user.quota.iteritems():
100
                args = entity, resource, key, quantity, capacity, import_limit , \
101
                    export_limit, flags =(
102
                args = entity, resource, key, quantity, capacity, import_limit, \
103
                    export_limit, flags = (
102 104
                        entity, resource, ENTITY_KEY, '0', str(limit), 0, 0, 0
103
                )
105
                    )
104 106
                append(args)
105
    
107

  
106 108
    if not data:
107 109
        return
108
    
110

  
109 111
    rejected = c.set_quota(context={}, set_quota=data)
110 112
    msg = _('Set quota: %s - Rejected: %s' % (data, rejected,))
111 113
    logger.log(LOGGING_LEVEL, msg)
112 114
    return rejected
113 115

  
116

  
114 117
def get_quota(users, client=None):
115 118
    if not users:
116 119
        return
117
    
120

  
118 121
    if not QUOTA_HOLDER_URL:
119 122
        return
120
    
123

  
121 124
    c = client or QuotaholderHTTP(QUOTA_HOLDER_URL)
122 125
    data = []
123 126
    append = data.append
......
130 133
            for r in user.quota.keys():
131 134
                args = entity, resource, key = entity, r, ENTITY_KEY
132 135
                append(args)
133
    
136

  
134 137
    if not data:
135 138
        return
136
    
139

  
137 140
    r = c.get_quota(context={}, get_quota=data)
138 141
    msg = _('Get quota: %s' % data)
139 142
    logger.log(LOGGING_LEVEL, msg)
140
    return r
143
    return r

Also available in: Unified diff