blob: d959a56b27c80cb761065e3a3fe7555ac21189cc [file] [log] [blame]
Adam Israeldcdf82b2017-08-15 15:26:43 -04001# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py.
2# Changes will be overwritten/lost when the file is regenerated.
3
Adam Israeldcdf82b2017-08-15 15:26:43 -04004from juju.client import _client1, _client2, _client3, _client4, _client5
Adam Israelc3e6c2e2018-03-01 09:31:50 -05005from juju.client._definitions import * # noqa
Adam Israeldcdf82b2017-08-15 15:26:43 -04006
7CLIENTS = {
8 "1": _client1,
9 "2": _client2,
10 "3": _client3,
11 "4": _client4,
12 "5": _client5
13}
14
15
Adam Israeldcdf82b2017-08-15 15:26:43 -040016def lookup_facade(name, version):
17 """
18 Given a facade name and version, attempt to pull that facade out
19 of the correct client<version>.py file.
20
21 """
Adam Israel1a15d1c2017-10-23 12:00:49 -040022 for _version in range(int(version), 0, -1):
23 try:
24 facade = getattr(CLIENTS[str(_version)], name)
25 return facade
26 except (KeyError, AttributeError):
27 continue
28 else:
29 raise ImportError("No supported version for facade: "
30 "{}".format(name))
Adam Israeldcdf82b2017-08-15 15:26:43 -040031
32
33class TypeFactory:
34 @classmethod
35 def from_connection(cls, connection):
36 """
37 Given a connected Connection object, return an initialized and
38 connected instance of an API Interface matching the name of
39 this class.
40
41 @param connection: initialized Connection object.
42
43 """
Adam Israelc3e6c2e2018-03-01 09:31:50 -050044 facade_name = cls.__name__
45 if not facade_name.endswith('Facade'):
46 raise TypeError('Unexpected class name: {}'.format(facade_name))
47 facade_name = facade_name[:-len('Facade')]
48 version = connection.facades.get(facade_name)
49 if version is None:
50 raise Exception('No facade {} in facades {}'.format(facade_name, connection.facades))
Adam Israeldcdf82b2017-08-15 15:26:43 -040051
52 c = lookup_facade(cls.__name__, version)
53 c = c()
54 c.connect(connection)
55
56 return c
57
58
59class ActionFacade(TypeFactory):
60 pass
61
62
63class AgentFacade(TypeFactory):
64 pass
65
66
67class AgentToolsFacade(TypeFactory):
68 pass
69
70
71class AllModelWatcherFacade(TypeFactory):
72 pass
73
74
75class AllWatcherFacade(TypeFactory):
76 pass
77
78
79class AnnotationsFacade(TypeFactory):
80 pass
81
82
83class ApplicationFacade(TypeFactory):
84 pass
85
86
87class ApplicationRelationsWatcherFacade(TypeFactory):
88 pass
89
90
91class ApplicationScalerFacade(TypeFactory):
92 pass
93
94
95class BackupsFacade(TypeFactory):
96 pass
97
98
99class BlockFacade(TypeFactory):
100 pass
101
102
103class BundleFacade(TypeFactory):
104 pass
105
106
107class CharmRevisionUpdaterFacade(TypeFactory):
108 pass
109
110
111class CharmsFacade(TypeFactory):
112 pass
113
114
115class CleanerFacade(TypeFactory):
116 pass
117
118
119class ClientFacade(TypeFactory):
120 pass
121
122
123class CloudFacade(TypeFactory):
124 pass
125
126
127class ControllerFacade(TypeFactory):
128 pass
129
130
131class DeployerFacade(TypeFactory):
132 pass
133
134
135class DiscoverSpacesFacade(TypeFactory):
136 pass
137
138
139class DiskManagerFacade(TypeFactory):
140 pass
141
142
143class EntityWatcherFacade(TypeFactory):
144 pass
145
146
147class FilesystemAttachmentsWatcherFacade(TypeFactory):
148 pass
149
150
151class FirewallerFacade(TypeFactory):
152 pass
153
154
155class HighAvailabilityFacade(TypeFactory):
156 pass
157
158
159class HostKeyReporterFacade(TypeFactory):
160 pass
161
162
163class ImageManagerFacade(TypeFactory):
164 pass
165
166
167class ImageMetadataFacade(TypeFactory):
168 pass
169
170
171class InstancePollerFacade(TypeFactory):
172 pass
173
174
175class KeyManagerFacade(TypeFactory):
176 pass
177
178
179class KeyUpdaterFacade(TypeFactory):
180 pass
181
182
183class LeadershipServiceFacade(TypeFactory):
184 pass
185
186
187class LifeFlagFacade(TypeFactory):
188 pass
189
190
191class LogForwardingFacade(TypeFactory):
192 pass
193
194
195class LoggerFacade(TypeFactory):
196 pass
197
198
199class MachineActionsFacade(TypeFactory):
200 pass
201
202
203class MachineManagerFacade(TypeFactory):
204 pass
205
206
207class MachineUndertakerFacade(TypeFactory):
208 pass
209
210
211class MachinerFacade(TypeFactory):
212 pass
213
214
215class MeterStatusFacade(TypeFactory):
216 pass
217
218
219class MetricsAdderFacade(TypeFactory):
220 pass
221
222
223class MetricsDebugFacade(TypeFactory):
224 pass
225
226
227class MetricsManagerFacade(TypeFactory):
228 pass
229
230
231class MigrationFlagFacade(TypeFactory):
232 pass
233
234
235class MigrationMasterFacade(TypeFactory):
236 pass
237
238
239class MigrationMinionFacade(TypeFactory):
240 pass
241
242
243class MigrationStatusWatcherFacade(TypeFactory):
244 pass
245
246
247class MigrationTargetFacade(TypeFactory):
248 pass
249
250
251class ModelConfigFacade(TypeFactory):
252 pass
253
254
255class ModelManagerFacade(TypeFactory):
256 pass
257
258
259class NotifyWatcherFacade(TypeFactory):
260 pass
261
262
263class PayloadsFacade(TypeFactory):
264 pass
265
266
267class PayloadsHookContextFacade(TypeFactory):
268 pass
269
270
271class PingerFacade(TypeFactory):
272 pass
273
274
275class ProvisionerFacade(TypeFactory):
276 pass
277
278
279class ProxyUpdaterFacade(TypeFactory):
280 pass
281
282
283class RebootFacade(TypeFactory):
284 pass
285
286
287class RelationUnitsWatcherFacade(TypeFactory):
288 pass
289
290
291class RemoteApplicationWatcherFacade(TypeFactory):
292 pass
293
294
295class RemoteRelationsWatcherFacade(TypeFactory):
296 pass
297
298
299class ResourcesFacade(TypeFactory):
300 pass
301
302
303class ResourcesHookContextFacade(TypeFactory):
304 pass
305
306
307class ResumerFacade(TypeFactory):
308 pass
309
310
311class RetryStrategyFacade(TypeFactory):
312 pass
313
314
315class SSHClientFacade(TypeFactory):
316 pass
317
318
319class SingularFacade(TypeFactory):
320 pass
321
322
323class SpacesFacade(TypeFactory):
324 pass
325
326
327class StatusHistoryFacade(TypeFactory):
328 pass
329
330
331class StorageFacade(TypeFactory):
332 pass
333
334
335class StorageProvisionerFacade(TypeFactory):
336 pass
337
338
339class StringsWatcherFacade(TypeFactory):
340 pass
341
342
343class SubnetsFacade(TypeFactory):
344 pass
345
346
347class UndertakerFacade(TypeFactory):
348 pass
349
350
351class UnitAssignerFacade(TypeFactory):
352 pass
353
354
355class UniterFacade(TypeFactory):
356 pass
357
358
359class UpgraderFacade(TypeFactory):
360 pass
361
362
363class UserManagerFacade(TypeFactory):
364 pass
365
366
367class VolumeAttachmentsWatcherFacade(TypeFactory):
368 pass