Statistics
| Branch: | Tag: | Revision:

root / commissioning / api / quotaholder.py @ 9f1a1bd0

History | View | Annotate | Download (5.8 kB)

1

    
2
from .specificator  import (CanonifyException, SpecifyException,
3
                            Specificator, Null, Integer, String,
4
                            Tuple, ListOf, Dict, Args)
5

    
6
Context             =   Dict(classname='Context')
7

    
8
class Name(String):
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
OwnerKey            =   Name(classname='OwnerKey')
29
Resource            =   Name(classname='Resource')
30
Policy              =   Name(classname='Policy')
31

    
32
Quantity            =   Nonnegative(classname='Quantity')
33
Capacity            =   Nonnegative(classname='Capacity')
34
ImportLimit         =   Nonnegative(classname='ImportLimit')
35
ExportLimit         =   Nonnegative(classname='ExportLimit')
36
Imported            =   Nonnegative(classname='Imported')
37
Exported            =   Nonnegative(classname='Exported')
38
Flags               =   Nonnegative(classname='Flags')
39

    
40

    
41
class QuotaholderAPI(Specificator):
42

    
43
    def create_entity   (
44
                self,
45
                context         =   Context,
46
                create_entity   =   ListOf(Entity, Owner, Key, OwnerKey, nonempty=1)
47
        ):
48

    
49
        rejected = ListOf(Entity)
50
        return rejected
51

    
52
    def list_entities   (
53
                self,
54
                context         =   Context,
55
                entity          =   Entity,
56
                key             =   Key
57
        ):
58

    
59
        entities = ListOf(Entity)
60
        return entities
61

    
62
    def get_entity  (
63
                self,
64
                context     =   Context,
65
                get_entity  =   ListOf(Entity, Key, nonempty=1)
66
        ):
67

    
68
        entities = ListOf(Entity, Owner)
69
        return entities
70

    
71
    def get_limits  (
72
                self,
73
                context     =   Context,
74
                get_limits  =   ListOf(Entity, Resource, Key, nonempty=1)
75
        ):
76

    
77
        limits = ListOf(Entity, Resource, Quantity, Capacity,
78
                        ImportLimit, ExportLimit, Flags)
79
        return limits
80

    
81
    def set_limits  (
82
                self,
83
                context     =   Context,
84
                set_limits  =   ListOf( Entity, Resource, Key,
85
                                        Quantity, Capacity,
86
                                        ImportLimit, ExportLimit, Flags,
87
                                        nonempty=1 )
88
        ):
89

    
90
        rejected = ListOf(Entity, Resource)
91
        return rejected
92

    
93
    def get_holding (
94
                self,
95
                context     =   Context,
96
                get_holding =   ListOf(Entity, Resource, Key)
97
        ):
98

    
99
        holdings = ListOf(  Entity, Resource, Policy,
100
                            Imported, Exported, Flags       )
101
        return holdings
102

    
103
    def set_holding (
104
                self,
105
                context     =   Context,
106
                set_holding =   ListOf(Entity, Resource, Key, Policy, Flags)
107
        ):
108

    
109
        rejected = ListOf(Entity, Resource, Policy)
110
        return rejected
111

    
112
    def list_resources  (
113
                self,
114
                context     =   Context,
115
                entity      =   Entity,
116
                key         =   Key
117
        ):
118

    
119
        resources = ListOf(Resource)
120
        return resources
121

    
122
    def get_quota   (
123
                self,
124
                context     =   Context,
125
                get_quota   =   ListOf(Entity, Resource, Key)
126
        ):
127

    
128
        quotas = ListOf(Entity, Resource,
129
                        Quantity, Capacity,
130
                        ImportLimit, ExportLimit,
131
                        Imported, Exported,
132
                        Flags)
133
        return quotas
134

    
135
    def set_quota   (
136
                self,
137
                context     =   Context,
138
                set_quota   =   ListOf( Entity, Resource, Key,
139
                                        Quantity, Capacity,
140
                                        ImportLimit, ExportLimit, Flags )
141
        ):
142

    
143
        rejected = ListOf(Entity, Resource)
144
        return rejected
145

    
146
    def issue_commission    (
147
                self,
148
                context     =   Context,
149
                entity      =   Entity,
150
                key         =   Key,
151
                clientkey   =   ClientKey,
152
                owner       =   Owner,
153
                ownerkey    =   OwnerKey,
154
                provisions  =   ListOf(Entity, Resource, Quantity)
155
        ):
156

    
157
        return Serial
158

    
159
    def accept_commission   (
160
                self,
161
                context     =   Context,
162
                clientkey   =   ClientKey,
163
                serial      =   Serial
164
        ):
165

    
166
        return Nothing
167

    
168
    def reject_commission   (
169
                self,
170
                context     =   Context,
171
                clientkey   =   ClientKey,
172
                serial      =   Serial
173
        ):
174

    
175
        return Nothing
176

    
177
    def get_pending_commissions (
178
                    self,
179
                    context     =   Context,
180
                    clientkey   =   ClientKey
181
        ):
182

    
183
        pending = ListOf(Serial)
184
        return pending
185

    
186
    def resolve_pending_commissions (
187
                    self,
188
                    context     =   Context,
189
                    clientkey   =   ClientKey,
190
                    max_serial  =   Serial,
191
                    accept_set  =   ListOf(Serial)
192
        ):
193

    
194
        return Nothing
195

    
196
    def release_entity  (
197
                self,
198
                context         =   Context,
199
                release_entity  =   ListOf(Entity, Key, nonempty=1)
200
        ):
201

    
202
        rejected = ListOf(Entity)
203
        return rejected
204