1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 import logging
24 import VMBuilder.plugins
25 from VMBuilder.distro import Distro
26 from VMBuilder.hypervisor import Hypervisor
27 from VMBuilder.plugins import Plugin
28 from VMBuilder.frontend import Frontend
29 from VMBuilder.vm import VM
30 from VMBuilder.exception import VMBuilderException, VMBuilderUserError
31
32
33 distros = {}
34 hypervisors = {}
35 _plugins = []
36 frontends = {}
37 frontend = None
38
39
40
42 """Register a hypervisor plugin with VMBuilder"""
43 hypervisors[cls.arg] = cls
44
46 """Register a distro plugin with VMBuilder"""
47 distros[cls.arg] = cls
48
50 """Register a frontend plugin with VMBuilder"""
51 frontends[cls.arg] = cls
52
54 """Register a plugin with VMBuilder"""
55 _plugins.append(cls)
56
63
65 """This is sort of weird, but a handy shortcut, if you want to use one of the frontends"""
66 frontend.run()
67
68 logging.debug('Loading plugins')
69 VMBuilder.plugins.load_plugins()
70