root / astakosclient / docs / index.rst @ 75144caa
History | View | Annotate | Download (9.9 kB)
1 | fa7a3ca1 | Ilias Tsitsimpis | .. _astakosclient: |
---|---|---|---|
2 | 1acf67a7 | Ilias Tsitsimpis | |
3 | fa7a3ca1 | Ilias Tsitsimpis | Component astakosclient |
4 | f8958a97 | Ilias Tsitsimpis | ^^^^^^^^^^^^^^^^^^^^^^^ |
5 | 1acf67a7 | Ilias Tsitsimpis | |
6 | 9c3cbd0d | Ilias Tsitsimpis | The Synnefo component astakosclient_ defines a |
7 | 9c3cbd0d | Ilias Tsitsimpis | default client for the `Astakos <astakos>`_ service. It is designed to be |
8 | 4b92d3f7 | Constantinos Venetsanopoulos | simple and minimal, hence easy to debug and test. |
9 | 4b92d3f7 | Constantinos Venetsanopoulos | |
10 | 4b92d3f7 | Constantinos Venetsanopoulos | It uses the user's authentication token to query Astakos for: |
11 | 1acf67a7 | Ilias Tsitsimpis | |
12 | 1acf67a7 | Ilias Tsitsimpis | * User's info |
13 | 4b92d3f7 | Constantinos Venetsanopoulos | * Usernames for given UUIDs |
14 | 4b92d3f7 | Constantinos Venetsanopoulos | * UUIDs for given usernames |
15 | 5c418e94 | Ilias Tsitsimpis | * User's quotas |
16 | 4b92d3f7 | Constantinos Venetsanopoulos | |
17 | 4b92d3f7 | Constantinos Venetsanopoulos | It can also query Astakos with another service's (Cyclades or Pithos) |
18 | 4b92d3f7 | Constantinos Venetsanopoulos | authentication token for: |
19 | 1acf67a7 | Ilias Tsitsimpis | |
20 | 4b92d3f7 | Constantinos Venetsanopoulos | * Usernames for given UUIDs |
21 | 4b92d3f7 | Constantinos Venetsanopoulos | * UUIDs for given usernames |
22 | 5b33b8e5 | Giorgos Korfiatis | * Quotas for all related resources |
23 | 5c418e94 | Ilias Tsitsimpis | * Issue commissions |
24 | 5c418e94 | Ilias Tsitsimpis | * Get pending commissions |
25 | 5c418e94 | Ilias Tsitsimpis | * Accept or reject commissions |
26 | 1acf67a7 | Ilias Tsitsimpis | |
27 | 4b92d3f7 | Constantinos Venetsanopoulos | Additionally, there are options for using the `objpool |
28 | 4b92d3f7 | Constantinos Venetsanopoulos | <https://github.com/grnet/objpool>`_ library to pool the http connections. |
29 | 1acf67a7 | Ilias Tsitsimpis | |
30 | 1acf67a7 | Ilias Tsitsimpis | |
31 | 1acf67a7 | Ilias Tsitsimpis | Basic example |
32 | 1acf67a7 | Ilias Tsitsimpis | ============= |
33 | 1acf67a7 | Ilias Tsitsimpis | |
34 | 4b92d3f7 | Constantinos Venetsanopoulos | The ``astakosclient`` module provides the ``AstakosClient`` class. This section |
35 | 4b92d3f7 | Constantinos Venetsanopoulos | demonstrates how to get user's info using ``astakosclient``. |
36 | 1acf67a7 | Ilias Tsitsimpis | |
37 | 1acf67a7 | Ilias Tsitsimpis | .. code-block:: python |
38 | 1acf67a7 | Ilias Tsitsimpis | |
39 | 1acf67a7 | Ilias Tsitsimpis | from astakosclient import AstakosClient |
40 | 1acf67a7 | Ilias Tsitsimpis | |
41 | 9c3cbd0d | Ilias Tsitsimpis | client = AstakosClient("UQpYas7ElzWGD5yCcEXtjw", |
42 | 9c3cbd0d | Ilias Tsitsimpis | "https://accounts.example.com") |
43 | b4b82ec4 | Giorgos Korfiatis | user_info = client.authenticate() |
44 | b4b82ec4 | Giorgos Korfiatis | print user_info['access']['user']['id'] |
45 | 1acf67a7 | Ilias Tsitsimpis | |
46 | 4b92d3f7 | Constantinos Venetsanopoulos | Another example where we ask for the username of a user with UUID: |
47 | 4b92d3f7 | Constantinos Venetsanopoulos | ``b3de8eb0-3958-477e-als9-789af8dd352c`` |
48 | 1acf67a7 | Ilias Tsitsimpis | |
49 | 1acf67a7 | Ilias Tsitsimpis | .. code-block:: python |
50 | 1acf67a7 | Ilias Tsitsimpis | |
51 | 1acf67a7 | Ilias Tsitsimpis | from astakosclient import AstakosClient |
52 | 1acf67a7 | Ilias Tsitsimpis | |
53 | 9c3cbd0d | Ilias Tsitsimpis | client = AstakosClient("UQpYas7ElzWGD5yCcEXtjw", |
54 | 9c3cbd0d | Ilias Tsitsimpis | "https://accounts.example.com") |
55 | 9c3cbd0d | Ilias Tsitsimpis | username = client.get_username("b3de8eb0-3958-477e-als9-789af8dd352c") |
56 | 1acf67a7 | Ilias Tsitsimpis | print username |
57 | 1acf67a7 | Ilias Tsitsimpis | |
58 | 1acf67a7 | Ilias Tsitsimpis | |
59 | 1acf67a7 | Ilias Tsitsimpis | Classes and functions |
60 | 1acf67a7 | Ilias Tsitsimpis | ===================== |
61 | 1acf67a7 | Ilias Tsitsimpis | |
62 | 4b92d3f7 | Constantinos Venetsanopoulos | This section describes in depth the API of ``astakosclient``. |
63 | 1acf67a7 | Ilias Tsitsimpis | |
64 | 1acf67a7 | Ilias Tsitsimpis | Astakos Client |
65 | 1acf67a7 | Ilias Tsitsimpis | -------------- |
66 | 1acf67a7 | Ilias Tsitsimpis | |
67 | 9c3cbd0d | Ilias Tsitsimpis | *class* astakosclient.\ **AstakosClient(**\ token, auth_url, |
68 | 1acf67a7 | Ilias Tsitsimpis | retry=0, use_pool=False, pool_size=8, logger=None\ **)** |
69 | 1acf67a7 | Ilias Tsitsimpis | |
70 | 9c3cbd0d | Ilias Tsitsimpis | Initialize an instance of **AstakosClient** given the Authentication Url |
71 | 9c3cbd0d | Ilias Tsitsimpis | *auth_url* and the Token *token*. |
72 | 1acf67a7 | Ilias Tsitsimpis | Optionally one can specify if we are going to use a pool, the pool_size |
73 | 1acf67a7 | Ilias Tsitsimpis | and the number of retries if the connection fails. |
74 | 1acf67a7 | Ilias Tsitsimpis | |
75 | 1acf67a7 | Ilias Tsitsimpis | This class provides the following methods: |
76 | 1acf67a7 | Ilias Tsitsimpis | |
77 | 45c0bcf8 | Giorgos Korfiatis | **authenticate(**\ tenant_name=None\ **)** |
78 | 45c0bcf8 | Giorgos Korfiatis | It authenticates the user and returns information about the user, |
79 | 45c0bcf8 | Giorgos Korfiatis | their token as well as the service endpoints one can access. In |
80 | 45c0bcf8 | Giorgos Korfiatis | case of error, it raises an AstakosClientException exception. |
81 | 45c0bcf8 | Giorgos Korfiatis | |
82 | 9c3cbd0d | Ilias Tsitsimpis | **get_usernames(**\ uuids\ **)** |
83 | 9c3cbd0d | Ilias Tsitsimpis | Given a list of UUIDs it returns a uuid_catalog, that is a dictionary |
84 | 9c3cbd0d | Ilias Tsitsimpis | with the given UUIDs as keys and the corresponding user names as |
85 | 9c3cbd0d | Ilias Tsitsimpis | values. Invalid UUIDs will not be in the dictionary. In case of |
86 | 9c3cbd0d | Ilias Tsitsimpis | error, it raises an AstakosClientException exception. |
87 | 9c3cbd0d | Ilias Tsitsimpis | |
88 | 9c3cbd0d | Ilias Tsitsimpis | **get_username(**\ uuid\ **)** |
89 | 9c3cbd0d | Ilias Tsitsimpis | Given a UUID (as string) it returns the corresponding user name (as |
90 | 9c3cbd0d | Ilias Tsitsimpis | string). In case of invalid UUID it raises NoUserName exception. In |
91 | 9c3cbd0d | Ilias Tsitsimpis | case of error, it raises an AstakosClientException exception. |
92 | 9c3cbd0d | Ilias Tsitsimpis | |
93 | 9c3cbd0d | Ilias Tsitsimpis | **service_get_usernames(**\ uuids\ **)** |
94 | 9c3cbd0d | Ilias Tsitsimpis | Same as get_usernames but used with service tokens. |
95 | 9c3cbd0d | Ilias Tsitsimpis | |
96 | 9c3cbd0d | Ilias Tsitsimpis | **service_get_username(**\ uuid\ **)** |
97 | 9c3cbd0d | Ilias Tsitsimpis | Same as get_username but used with service tokens. |
98 | 9c3cbd0d | Ilias Tsitsimpis | |
99 | 9c3cbd0d | Ilias Tsitsimpis | **get_uuids(**\ display_names\ **)** |
100 | 9c3cbd0d | Ilias Tsitsimpis | Given a list of usernames it returns a displayname_catalog, that is a |
101 | 9c3cbd0d | Ilias Tsitsimpis | dictionary with the given usernames as keys and the corresponding UUIDs |
102 | 9c3cbd0d | Ilias Tsitsimpis | as values. Invalid usernames will not be in the dictionary. In case |
103 | 9c3cbd0d | Ilias Tsitsimpis | of error, it raises an AstakosClientException exception. |
104 | 9c3cbd0d | Ilias Tsitsimpis | |
105 | 9c3cbd0d | Ilias Tsitsimpis | **get_uuid(**\ display_name\ **)** |
106 | 9c3cbd0d | Ilias Tsitsimpis | Given a username (as string) it returns the corresponding UUID (as |
107 | 9c3cbd0d | Ilias Tsitsimpis | string). In case of invalid user name it raises NoUUID exception. In |
108 | 9c3cbd0d | Ilias Tsitsimpis | case of error, it raises an AstakosClientException exception. |
109 | 9c3cbd0d | Ilias Tsitsimpis | |
110 | 9c3cbd0d | Ilias Tsitsimpis | **service_get_uuids(**\ uuids\ **)** |
111 | 9c3cbd0d | Ilias Tsitsimpis | Same as get_uuids but used with service tokens. |
112 | 9c3cbd0d | Ilias Tsitsimpis | |
113 | 9c3cbd0d | Ilias Tsitsimpis | **service_get_uuid(**\ uuid\ **)** |
114 | 9c3cbd0d | Ilias Tsitsimpis | Same as get_uuid but used with service tokens. |
115 | 1acf67a7 | Ilias Tsitsimpis | |
116 | 794c94e6 | Ilias Tsitsimpis | **get_services()** |
117 | 1acf67a7 | Ilias Tsitsimpis | Return a list of dicts with the registered services. |
118 | 1acf67a7 | Ilias Tsitsimpis | |
119 | 5c418e94 | Ilias Tsitsimpis | **get_resources()** |
120 | 5c418e94 | Ilias Tsitsimpis | Return a list of dicts with the available resources |
121 | 5c418e94 | Ilias Tsitsimpis | |
122 | 9c3cbd0d | Ilias Tsitsimpis | **send_feedback(**\ message, data\ **)** |
123 | 9c3cbd0d | Ilias Tsitsimpis | Send some feedback to astakos service. Additional information about the |
124 | 9c3cbd0d | Ilias Tsitsimpis | service client status can be given in the data variable. In case of |
125 | 9c3cbd0d | Ilias Tsitsimpis | success it returns nothing. Otherwise it raises an |
126 | 9c3cbd0d | Ilias Tsitsimpis | AstakosClientException exception. |
127 | 9c3cbd0d | Ilias Tsitsimpis | |
128 | 45c0bcf8 | Giorgos Korfiatis | **get_endpoints()** |
129 | 45c0bcf8 | Giorgos Korfiatis | It returns the services URLs one can access. In case of error it |
130 | 45c0bcf8 | Giorgos Korfiatis | raises an AstakosClientException exception. |
131 | 9c3cbd0d | Ilias Tsitsimpis | |
132 | 9c3cbd0d | Ilias Tsitsimpis | **get_quotas()** |
133 | 9c3cbd0d | Ilias Tsitsimpis | It returns user's current quotas (as dict of dicts). In case of error |
134 | 9c3cbd0d | Ilias Tsitsimpis | it raises an AstakosClientException exception. |
135 | 9c3cbd0d | Ilias Tsitsimpis | |
136 | 9c3cbd0d | Ilias Tsitsimpis | **service_get_quotas(**\ user=None\ **)** |
137 | 9c3cbd0d | Ilias Tsitsimpis | It returns all users' current quotas for the resources associated with |
138 | 9c3cbd0d | Ilias Tsitsimpis | the service (as dict of dicts of dicts). Optionally, one can query the |
139 | 9c3cbd0d | Ilias Tsitsimpis | quotas of a specific user with argument user=UUID. In case of error it |
140 | 9c3cbd0d | Ilias Tsitsimpis | raises an AstakosClientException exception. |
141 | 9c3cbd0d | Ilias Tsitsimpis | |
142 | 9c3cbd0d | Ilias Tsitsimpis | **issue_commission(**\ request\ **)** |
143 | 9c3cbd0d | Ilias Tsitsimpis | Issue a commission. In case of success it returns commission's id |
144 | 9c3cbd0d | Ilias Tsitsimpis | (int). Otherwise it raises an AstakosClientException exception. |
145 | 9c3cbd0d | Ilias Tsitsimpis | |
146 | 9c3cbd0d | Ilias Tsitsimpis | **issue_one_commission(**\ holder, source, provisions, name="", force=False, auto_accept=False\ **)** |
147 | 9c3cbd0d | Ilias Tsitsimpis | Issue a commission. We have to specify the holder, the source and the |
148 | 9c3cbd0d | Ilias Tsitsimpis | provisions (a dict from string to int) and astakosclient will create |
149 | 9c3cbd0d | Ilias Tsitsimpis | the corresponding commission. In case of success it returns |
150 | 9c3cbd0d | Ilias Tsitsimpis | commission's id (int). Otherwise it raises an AstakosClientException |
151 | 9c3cbd0d | Ilias Tsitsimpis | exception. |
152 | 9c3cbd0d | Ilias Tsitsimpis | |
153 | 9c3cbd0d | Ilias Tsitsimpis | **get_pending_commissions()** |
154 | 9c3cbd0d | Ilias Tsitsimpis | It returns the pending commissions (list of integers). In case of |
155 | 9c3cbd0d | Ilias Tsitsimpis | error it raises an AstakosClientException exception. |
156 | 9c3cbd0d | Ilias Tsitsimpis | |
157 | 9c3cbd0d | Ilias Tsitsimpis | **get_commission_info(**\ serial\ **)** |
158 | 9c3cbd0d | Ilias Tsitsimpis | Given the id of a pending commission return a dict of dicts containting |
159 | 9c3cbd0d | Ilias Tsitsimpis | informations (details) about the requested commission. In case of |
160 | 9c3cbd0d | Ilias Tsitsimpis | error it raises an AstakosClientException exception. |
161 | 9c3cbd0d | Ilias Tsitsimpis | |
162 | 9c3cbd0d | Ilias Tsitsimpis | **commission_action(**\ serial, action\ **)** |
163 | 9c3cbd0d | Ilias Tsitsimpis | Given the id of a pending commission, request the specified action |
164 | 9c3cbd0d | Ilias Tsitsimpis | (currently one of accept, reject). In case of success it returns |
165 | 9c3cbd0d | Ilias Tsitsimpis | nothing. Otherwise it raises an AstakosClientException exception. |
166 | 9c3cbd0d | Ilias Tsitsimpis | |
167 | 9c3cbd0d | Ilias Tsitsimpis | **accept_commission(**\ serial\ **)** |
168 | 5c418e94 | Ilias Tsitsimpis | Accept a pending commission (see commission_action). |
169 | 5c418e94 | Ilias Tsitsimpis | |
170 | 9c3cbd0d | Ilias Tsitsimpis | **reject_commission(**\ serial\ **)** |
171 | 5c418e94 | Ilias Tsitsimpis | Reject a pending commission (see commission_action). |
172 | 5c418e94 | Ilias Tsitsimpis | |
173 | 9c3cbd0d | Ilias Tsitsimpis | **resolve_commissions(**\ accept_serials, reject_serials\ **)** |
174 | 9c3cbd0d | Ilias Tsitsimpis | Accept or Reject many pending commissions at once. In case of success |
175 | 9c3cbd0d | Ilias Tsitsimpis | return a dict of dicts describing which commissions accepted, which |
176 | 9c3cbd0d | Ilias Tsitsimpis | rejected and which failed to resolved. Otherwise raise an |
177 | 9c3cbd0d | Ilias Tsitsimpis | AstakosClientException exception. |
178 | 5c418e94 | Ilias Tsitsimpis | |
179 | 9c3cbd0d | Ilias Tsitsimpis | **get_projects(**\ name=None, state=None, owner=None\ **)** |
180 | 47bb45c0 | Giorgos Korfiatis | Retrieve all accessible projects |
181 | 47bb45c0 | Giorgos Korfiatis | |
182 | 9c3cbd0d | Ilias Tsitsimpis | **get_project(**\ project_id\ **)** |
183 | 47bb45c0 | Giorgos Korfiatis | Retrieve project description, if accessible |
184 | 47bb45c0 | Giorgos Korfiatis | |
185 | 9c3cbd0d | Ilias Tsitsimpis | **create_project(**\ specs\ **)** |
186 | 47bb45c0 | Giorgos Korfiatis | Submit application to create a new project |
187 | 47bb45c0 | Giorgos Korfiatis | |
188 | 9c3cbd0d | Ilias Tsitsimpis | **modify_project(**\ project_id, specs\ **)** |
189 | 47bb45c0 | Giorgos Korfiatis | Submit application to modify an existing project |
190 | 47bb45c0 | Giorgos Korfiatis | |
191 | 9c3cbd0d | Ilias Tsitsimpis | **project_action(**\ project_id, action, reason=""\ **)** |
192 | 47bb45c0 | Giorgos Korfiatis | Perform action on a project |
193 | 47bb45c0 | Giorgos Korfiatis | |
194 | 9c3cbd0d | Ilias Tsitsimpis | **get_applications(**\ project=None\ **)** |
195 | 47bb45c0 | Giorgos Korfiatis | Retrieve all accessible applications |
196 | 47bb45c0 | Giorgos Korfiatis | |
197 | 9c3cbd0d | Ilias Tsitsimpis | **get_application(**\ app_id\ **)** |
198 | 47bb45c0 | Giorgos Korfiatis | Retrieve application description, if accessible |
199 | 47bb45c0 | Giorgos Korfiatis | |
200 | 9c3cbd0d | Ilias Tsitsimpis | **application_action(**\ app_id, action, reason=""\ **)** |
201 | 47bb45c0 | Giorgos Korfiatis | Perform action on an application |
202 | 47bb45c0 | Giorgos Korfiatis | |
203 | 9c3cbd0d | Ilias Tsitsimpis | **get_memberships(**\ project=None\ **)** |
204 | 47bb45c0 | Giorgos Korfiatis | Retrieve all accessible memberships |
205 | 47bb45c0 | Giorgos Korfiatis | |
206 | 9c3cbd0d | Ilias Tsitsimpis | **get_membership(**\ memb_id\ **)** |
207 | 47bb45c0 | Giorgos Korfiatis | Retrieve membership description, if accessible |
208 | 47bb45c0 | Giorgos Korfiatis | |
209 | 9c3cbd0d | Ilias Tsitsimpis | **membership_action(**\ memb_id, action, reason=""\ **)** |
210 | 47bb45c0 | Giorgos Korfiatis | Perform action on a membership |
211 | 47bb45c0 | Giorgos Korfiatis | |
212 | 9c3cbd0d | Ilias Tsitsimpis | **join_project(**\ project_id\ **)** |
213 | 47bb45c0 | Giorgos Korfiatis | Join a project |
214 | 47bb45c0 | Giorgos Korfiatis | |
215 | 9c3cbd0d | Ilias Tsitsimpis | **enroll_member(**\ project_id, email\ **)** |
216 | 47bb45c0 | Giorgos Korfiatis | Enroll a user in a project |
217 | 1acf67a7 | Ilias Tsitsimpis | |
218 | 1acf67a7 | Ilias Tsitsimpis | Public Functions |
219 | 1acf67a7 | Ilias Tsitsimpis | ---------------- |
220 | 1acf67a7 | Ilias Tsitsimpis | |
221 | 794c94e6 | Ilias Tsitsimpis | **get_token_from_cookie(**\ request, cookie_name\ **)** |
222 | 4b92d3f7 | Constantinos Venetsanopoulos | Given a Django request object and an Astakos cookie name |
223 | 4b92d3f7 | Constantinos Venetsanopoulos | extract the user's token from it. |
224 | 1acf67a7 | Ilias Tsitsimpis | |
225 | 9c3cbd0d | Ilias Tsitsimpis | **parse_endpoints(**\ endpoints, ep_name=None, ep_type=None, ep_region=None, ep_version_id=None\ **)** |
226 | 9c3cbd0d | Ilias Tsitsimpis | Parse the endpoints (acquired using *get_endpoints*) and extract the ones |
227 | 9c3cbd0d | Ilias Tsitsimpis | needed. Return only the endpoints that match all of the given criterias. |
228 | 9c3cbd0d | Ilias Tsitsimpis | If no match is found then raise NoEndpoints exception. |
229 | 9c3cbd0d | Ilias Tsitsimpis | |
230 | 1acf67a7 | Ilias Tsitsimpis | |
231 | 1acf67a7 | Ilias Tsitsimpis | Exceptions and Errors |
232 | 1acf67a7 | Ilias Tsitsimpis | ===================== |
233 | 1acf67a7 | Ilias Tsitsimpis | |
234 | 1acf67a7 | Ilias Tsitsimpis | *exception* **AstakosClientException** |
235 | 1acf67a7 | Ilias Tsitsimpis | Raised in case of an error. It contains an error message and the |
236 | 9c3cbd0d | Ilias Tsitsimpis | corresponding http status code. Other exceptions raised by astakosclient |
237 | 9c3cbd0d | Ilias Tsitsimpis | module are derived from this one. |
238 | fa7a3ca1 | Ilias Tsitsimpis | |
239 | fa7a3ca1 | Ilias Tsitsimpis | *exception* **BadValue** |
240 | fa7a3ca1 | Ilias Tsitsimpis | A redefinition of ValueError exception under AstakosClientException. |
241 | fa7a3ca1 | Ilias Tsitsimpis | |
242 | fa7a3ca1 | Ilias Tsitsimpis | *exception* **InvalidResponse** |
243 | 9c3cbd0d | Ilias Tsitsimpis | This exception is raised whenever the server's response is not valid json |
244 | 9c3cbd0d | Ilias Tsitsimpis | (cannot be parsed by simplejson library). |
245 | 1acf67a7 | Ilias Tsitsimpis | |
246 | 1acf67a7 | Ilias Tsitsimpis | *exception* **BadRequest** |
247 | 1acf67a7 | Ilias Tsitsimpis | Raised in case of a Bad Request, with status 400. |
248 | 1acf67a7 | Ilias Tsitsimpis | |
249 | 1acf67a7 | Ilias Tsitsimpis | *exception* **Unauthorized** |
250 | 1acf67a7 | Ilias Tsitsimpis | Raised in case of Invalid token (unauthorized access), with status 401. |
251 | 1acf67a7 | Ilias Tsitsimpis | |
252 | 1acf67a7 | Ilias Tsitsimpis | *exception* **Forbidden** |
253 | 9c3cbd0d | Ilias Tsitsimpis | The server understood the request, but is refusing to fulfill it. Status |
254 | 9c3cbd0d | Ilias Tsitsimpis | 401. |
255 | 1acf67a7 | Ilias Tsitsimpis | |
256 | 1acf67a7 | Ilias Tsitsimpis | *exception* **NotFound** |
257 | 1acf67a7 | Ilias Tsitsimpis | The server has not found anything matching the Request-URI. Status 404. |
258 | 1acf67a7 | Ilias Tsitsimpis | |
259 | fa7a3ca1 | Ilias Tsitsimpis | *exception* **QuotaLimit** |
260 | fa7a3ca1 | Ilias Tsitsimpis | Quantity fell below zero or exceeded capacity in one of the holdings. |
261 | fa7a3ca1 | Ilias Tsitsimpis | |
262 | 794c94e6 | Ilias Tsitsimpis | *exception* **NoUserName** |
263 | 9c3cbd0d | Ilias Tsitsimpis | Raised by getDisplayName and getServiceDisplayName when an invalid UUID was |
264 | 9c3cbd0d | Ilias Tsitsimpis | given. |
265 | 1acf67a7 | Ilias Tsitsimpis | |
266 | 1acf67a7 | Ilias Tsitsimpis | *exception* **NoUUID** |
267 | 9c3cbd0d | Ilias Tsitsimpis | Raised by *getUUID* and *getServiceUUID* when an invalid username was |
268 | 9c3cbd0d | Ilias Tsitsimpis | given. |
269 | 9c3cbd0d | Ilias Tsitsimpis | |
270 | 9c3cbd0d | Ilias Tsitsimpis | *exception* **NoEndpoints** |
271 | 9c3cbd0d | Ilias Tsitsimpis | Raised by *parse_endpoints* when no endpoints found matching the given |
272 | 9c3cbd0d | Ilias Tsitsimpis | criteria. |