root / commissioning / api / quotaholder.py @ a2db0eb5
History | View | Annotate | Download (7.3 kB)
1 |
|
---|---|
2 |
from .specificator import (CanonifyException, SpecifyException, |
3 |
Specificator, Null, Integer, Text, |
4 |
Tuple, ListOf, Dict, Args) |
5 |
|
6 |
Context = Dict(classname='Context')
|
7 |
|
8 |
class Name(Text): |
9 |
def init(self): |
10 |
self.opts.update({'regex': "[\w.:]+", 'maxlen':512}) |
11 |
|
12 |
class Nonnegative(Integer): |
13 |
def init(self): |
14 |
self.opts.update({'minimum': 0}) |
15 |
|
16 |
class Positive(Integer): |
17 |
def init(self): |
18 |
self.opts.update({'minimum': 1}) |
19 |
|
20 |
Serial = Positive(classname='Serial')
|
21 |
|
22 |
ClientKey = Name(classname='ClientKey')
|
23 |
Nothing = Null(classname='Nothing')
|
24 |
|
25 |
Entity = Name(classname='Entity')
|
26 |
Owner = Name(classname='Owner')
|
27 |
Key = Name(classname='Key')
|
28 |
NewKey = Name(classname='Newkey')
|
29 |
OwnerKey = Name(classname='OwnerKey')
|
30 |
Resource = Name(classname='Resource')
|
31 |
Policy = Name(classname='Policy')
|
32 |
|
33 |
Quantity = Integer(classname='Quantity')
|
34 |
Capacity = Nonnegative(classname='Capacity', null=True) |
35 |
ImportLimit = Nonnegative(classname='ImportLimit', null=True) |
36 |
ExportLimit = Nonnegative(classname='ExportLimit', null=True) |
37 |
Imported = Nonnegative(classname='Imported')
|
38 |
Exported = Nonnegative(classname='Exported')
|
39 |
Regained = Nonnegative(classname='Regained')
|
40 |
Released = Nonnegative(classname='Released')
|
41 |
Flags = Nonnegative(classname='Flags')
|
42 |
|
43 |
Timepoint = Text(classname='Timepoint', maxlen=24) |
44 |
Reason = Text( classname = 'Reason',
|
45 |
regex = '(ACCEPT|REJECT):.*',
|
46 |
maxlen = 128 )
|
47 |
|
48 |
class QuotaholderAPI(Specificator): |
49 |
|
50 |
def create_entity ( |
51 |
self,
|
52 |
context = Context, |
53 |
create_entity = ListOf(Entity, Owner, Key, OwnerKey, nonempty=1)
|
54 |
): |
55 |
|
56 |
rejected = ListOf(Entity) |
57 |
return rejected
|
58 |
|
59 |
def set_entity_key ( |
60 |
self,
|
61 |
context = Context, |
62 |
set_entity_key = ListOf(Entity, Key, NewKey) |
63 |
): |
64 |
|
65 |
rejected = ListOf(Entity) |
66 |
return rejected
|
67 |
|
68 |
def list_entities ( |
69 |
self,
|
70 |
context = Context, |
71 |
entity = Entity, |
72 |
key = Key |
73 |
): |
74 |
|
75 |
entities = ListOf(Entity) |
76 |
return entities
|
77 |
|
78 |
def get_entity ( |
79 |
self,
|
80 |
context = Context, |
81 |
get_entity = ListOf(Entity, Key, nonempty=1)
|
82 |
): |
83 |
|
84 |
entities = ListOf(Entity, Owner) |
85 |
return entities
|
86 |
|
87 |
def get_limits ( |
88 |
self,
|
89 |
context = Context, |
90 |
get_limits = ListOf(Entity, Resource, Key, nonempty=1)
|
91 |
): |
92 |
|
93 |
limits = ListOf(Entity, Resource, Quantity, Capacity, |
94 |
ImportLimit, ExportLimit, Flags) |
95 |
return limits
|
96 |
|
97 |
def set_limits ( |
98 |
self,
|
99 |
context = Context, |
100 |
set_limits = ListOf( Entity, Resource, Key, |
101 |
Quantity, Capacity, |
102 |
ImportLimit, ExportLimit, Flags, |
103 |
nonempty=1 )
|
104 |
): |
105 |
|
106 |
rejected = ListOf(Entity, Resource) |
107 |
return rejected
|
108 |
|
109 |
def get_holding ( |
110 |
self,
|
111 |
context = Context, |
112 |
get_holding = ListOf(Entity, Resource, Key) |
113 |
): |
114 |
|
115 |
holdings = ListOf( Entity, Resource, Policy, |
116 |
Imported, Exported, Regained, Released, Flags ) |
117 |
return holdings
|
118 |
|
119 |
def set_holding ( |
120 |
self,
|
121 |
context = Context, |
122 |
set_holding = ListOf(Entity, Resource, Key, Policy, Flags) |
123 |
): |
124 |
|
125 |
rejected = ListOf(Entity, Resource, Policy) |
126 |
return rejected
|
127 |
|
128 |
def list_resources ( |
129 |
self,
|
130 |
context = Context, |
131 |
entity = Entity, |
132 |
key = Key |
133 |
): |
134 |
|
135 |
resources = ListOf(Resource) |
136 |
return resources
|
137 |
|
138 |
def get_quota ( |
139 |
self,
|
140 |
context = Context, |
141 |
get_quota = ListOf(Entity, Resource, Key) |
142 |
): |
143 |
|
144 |
quotas = ListOf(Entity, Resource, |
145 |
Quantity, Capacity, |
146 |
ImportLimit, ExportLimit, |
147 |
Imported, Exported, |
148 |
Regained, Released, |
149 |
Flags) |
150 |
return quotas
|
151 |
|
152 |
def set_quota ( |
153 |
self,
|
154 |
context = Context, |
155 |
set_quota = ListOf( Entity, Resource, Key, |
156 |
Quantity, Capacity, |
157 |
ImportLimit, ExportLimit, Flags ) |
158 |
): |
159 |
|
160 |
rejected = ListOf(Entity, Resource) |
161 |
return rejected
|
162 |
|
163 |
def issue_commission ( |
164 |
self,
|
165 |
context = Context, |
166 |
target = Entity, |
167 |
key = Key, |
168 |
clientkey = ClientKey, |
169 |
owner = Owner, |
170 |
ownerkey = OwnerKey, |
171 |
provisions = ListOf(Entity, Resource, Quantity) |
172 |
): |
173 |
|
174 |
return Serial
|
175 |
|
176 |
def accept_commission ( |
177 |
self,
|
178 |
context = Context, |
179 |
clientkey = ClientKey, |
180 |
serials = ListOf(Serial) |
181 |
): |
182 |
|
183 |
return Nothing
|
184 |
|
185 |
def reject_commission ( |
186 |
self,
|
187 |
context = Context, |
188 |
clientkey = ClientKey, |
189 |
serials = ListOf(Serial) |
190 |
): |
191 |
|
192 |
return Nothing
|
193 |
|
194 |
def get_pending_commissions ( |
195 |
self,
|
196 |
context = Context, |
197 |
clientkey = ClientKey |
198 |
): |
199 |
|
200 |
pending = ListOf(Serial) |
201 |
return pending
|
202 |
|
203 |
def resolve_pending_commissions ( |
204 |
self,
|
205 |
context = Context, |
206 |
clientkey = ClientKey, |
207 |
max_serial = Serial, |
208 |
accept_set = ListOf(Serial) |
209 |
): |
210 |
|
211 |
return Nothing
|
212 |
|
213 |
def release_entity ( |
214 |
self,
|
215 |
context = Context, |
216 |
release_entity = ListOf(Entity, Key, nonempty=1)
|
217 |
): |
218 |
|
219 |
rejected = ListOf(Entity) |
220 |
return rejected
|
221 |
|
222 |
def get_timeline ( |
223 |
self,
|
224 |
context = Context, |
225 |
after = Timepoint, |
226 |
before = Timepoint, |
227 |
entities = ListOf(Entity, Key) |
228 |
): |
229 |
|
230 |
timeline = ListOf( Dict( serial = Serial, |
231 |
source = Entity, |
232 |
target = Entity, |
233 |
resource = Resource, |
234 |
quantity = Quantity, |
235 |
issue_time = Timepoint, |
236 |
log_time = Timepoint, |
237 |
reason = Reason ) ) |
238 |
return timeline
|
239 |
|