class OSBase(object):
"""Basic operating system class"""
- def __init__(self, rootdev, ghandler, output):
- self.root = rootdev
- self.g = ghandler
- self.out = output
+ SysprepParam = namedtuple('SysprepParam',
+ ['type', 'default', 'description', 'validate'])
+
+ def __init__(self, image, **kargs):
+ self.image = image
+
+ self.root = image.root
+ self.g = image.g
+ self.out = image.out
+
+ self.needed_sysprep_params = {}
+ self.sysprep_params = \
+ kargs['sysprep_params'] if 'sysprep_params' in kargs else {}
+
self.meta = {}
+ self.mounted = False
+ # Many guestfs compilations don't support scrub
+ self._scrub_support = True
+ try:
+ self.g.available(['scrub'])
+ except RuntimeError:
+ self._scrub_support = False
+
def collect_metadata(self):
"""Collect metadata about the OS"""
try:
if self.g.is_dir('/home/'):
homedirs += self._ls('/home/')
- if print_header:
- self.out.output("Removing sensitive user data under %s" %
- " ".join(homedirs))
-
+ action = self.g.rm_rf
+ if self._scrub_support:
+ action = self.g.scrub_file
+ else:
+ self.out.warn("Sensitive data won't be scrubbed (not supported)")
++
for homedir in homedirs:
for data in self.sensitive_userdata:
fname = "%s/%s" % (homedir, data)
-__version__ = "0.4.4"
-__version_info__ = ['0', '4', '4']
+
- __version__ = "0.4.3next"
++__version__ = "0.4.4next"
__version_vcs_info__ = {
- 'branch': 'hotfix-0.4.4',
- 'revid': 'ce66ae3',
- 'revno': 322}
-__version_user_info__ = "skalkoto@darkstar.admin.grnet.gr"
+ 'branch': 'develop',
- 'revid': '64556e6',
- 'revno': 330}
++ 'revid': 'c5effe0',
++ 'revno': 370}
+__version_user_email__ = "skalkoto@grnet.gr"
+__version_user_name__ = "Nikos Skalkotos"