root / image_creator / os_type / __init__.py @ 0d5a999d
History | View | Annotate | Download (1.3 kB)
1 | aa2062ba | Nikos Skalkotos | #!/usr/bin/env python
|
---|---|---|---|
2 | aa2062ba | Nikos Skalkotos | |
3 | 0d5a999d | Nikos Skalkotos | def add_prefix(target): |
4 | 0d5a999d | Nikos Skalkotos | def wrapper(self, *args): |
5 | 0d5a999d | Nikos Skalkotos | prefix = args[0]
|
6 | 0d5a999d | Nikos Skalkotos | return map(lambda x: prefix + x, target(self, *args)) |
7 | 0d5a999d | Nikos Skalkotos | return wrapper
|
8 | 0d5a999d | Nikos Skalkotos | |
9 | aa2062ba | Nikos Skalkotos | class OSBase(object): |
10 | aa2062ba | Nikos Skalkotos | def __init__(self, rootdev, ghandler): |
11 | aa2062ba | Nikos Skalkotos | self.root = rootdev
|
12 | aa2062ba | Nikos Skalkotos | self.g = ghandler
|
13 | aa2062ba | Nikos Skalkotos | |
14 | 0d5a999d | Nikos Skalkotos | @add_prefix
|
15 | 0d5a999d | Nikos Skalkotos | def ls(self, directory): return self.g.ls(directory) |
16 | 0d5a999d | Nikos Skalkotos | |
17 | 0d5a999d | Nikos Skalkotos | @add_prefix
|
18 | 0d5a999d | Nikos Skalkotos | def find(self, directory): return self.g.find(directory) |
19 | 0d5a999d | Nikos Skalkotos | |
20 | aa2062ba | Nikos Skalkotos | def get_metadata(self): |
21 | aa2062ba | Nikos Skalkotos | meta = {} |
22 | aa2062ba | Nikos Skalkotos | meta["OSFAMILY"] = self.g.inspect_get_type(self.root) |
23 | aa2062ba | Nikos Skalkotos | meta["OS"] = self.g.inspect_get_distro(self.root) |
24 | aa2062ba | Nikos Skalkotos | meta["description"] = self.g.inspect_get_product_name(self.root) |
25 | aa2062ba | Nikos Skalkotos | |
26 | aa2062ba | Nikos Skalkotos | return meta
|
27 | aa2062ba | Nikos Skalkotos | |
28 | aa2062ba | Nikos Skalkotos | def mount_all(self): |
29 | aa2062ba | Nikos Skalkotos | mps = g.inspect_get_mountpoints(self.root)
|
30 | aa2062ba | Nikos Skalkotos | # Sort the keys to mount the fs in a correct order.
|
31 | aa2062ba | Nikos Skalkotos | # / should be mounted befor /boot, etc
|
32 | aa2062ba | Nikos Skalkotos | def compare (a, b): |
33 | aa2062ba | Nikos Skalkotos | if len(a[0]) > len(b[0]): return 1 |
34 | aa2062ba | Nikos Skalkotos | elif len(a[0]) == len(b[0]): return 0 |
35 | aa2062ba | Nikos Skalkotos | else: return -1 |
36 | aa2062ba | Nikos Skalkotos | mps.sort(compare) |
37 | aa2062ba | Nikos Skalkotos | for mp, dev in mps: |
38 | aa2062ba | Nikos Skalkotos | try:
|
39 | aa2062ba | Nikos Skalkotos | self.g.mount(dev, mp)
|
40 | aa2062ba | Nikos Skalkotos | except RuntimeError as msg: |
41 | aa2062ba | Nikos Skalkotos | print "%s (ignored)" % msg |
42 | aa2062ba | Nikos Skalkotos | |
43 | aa2062ba | Nikos Skalkotos | def cleanup_sensitive_data(self): |
44 | aa2062ba | Nikos Skalkotos | raise NotImplementedError |
45 | aa2062ba | Nikos Skalkotos | |
46 | aa2062ba | Nikos Skalkotos | # vim: set sta sts=4 shiftwidth=4 sw=4 et ai : |