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