Add OS specific classes
[snf-image-creator] / image_creator / os_type / __init__.py
1 #!/usr/bin/env python
2
3 class OSBase(object):
4     def __init__(self, rootdev, ghandler):
5         self.root = rootdev
6         self.g = ghandler
7
8     def get_metadata(self):
9         meta = {}
10         meta["OSFAMILY"] = self.g.inspect_get_type(self.root)
11         meta["OS"] = self.g.inspect_get_distro(self.root)
12         meta["description"] = self.g.inspect_get_product_name(self.root)
13
14         return meta
15
16     def mount_all(self):
17         mps = g.inspect_get_mountpoints(self.root)
18         # Sort the keys to mount the fs in a correct order.
19         # / should be mounted befor /boot, etc
20         def compare (a, b):
21             if len(a[0]) > len(b[0]): return 1
22             elif len(a[0]) == len(b[0]): return 0
23             else: return -1
24         mps.sort(compare)
25         for mp, dev in mps:
26             try:
27                 self.g.mount(dev, mp)
28             except RuntimeError as msg:
29                 print "%s (ignored)" % msg
30
31     def cleanup_sensitive_data(self):
32         raise NotImplementedError
33
34 # vim: set sta sts=4 shiftwidth=4 sw=4 et ai :