From e7cbfb0a3044f9c1be9a0e46bce832271db2c363 Mon Sep 17 00:00:00 2001 From: Nikos Skalkotos <skalkoto@grnet.gr> Date: Thu, 21 Jun 2012 18:10:22 +0300 Subject: [PATCH] Add get_sysprep_by_name method in os_type classes This method returns a sysprep object with a given name. Now, (enable,disable)_sysprep work with sysprep objects instead of sysprep names --- image_creator/main.py | 4 ++-- image_creator/os_type/__init__.py | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/image_creator/main.py b/image_creator/main.py index 2f0bbb0..fde3b7d 100644 --- a/image_creator/main.py +++ b/image_creator/main.py @@ -195,10 +195,10 @@ def image_creator(): out.output() for sysprep in options.disabled_syspreps: - image_os.disable_sysprep(sysprep) + image_os.disable_sysprep(image_os.get_sysprep_by_name(sysprep)) for sysprep in options.enabled_syspreps: - image_os.enable_sysprep(sysprep) + image_os.enable_sysprep(image_os.get_sysprep_by_name(sysprep)) if options.print_sysprep: image_os.print_syspreps() diff --git a/image_creator/os_type/__init__.py b/image_creator/os_type/__init__.py index 5601a87..38b46d6 100644 --- a/image_creator/os_type/__init__.py +++ b/image_creator/os_type/__init__.py @@ -97,10 +97,10 @@ class OSBase(object): return (obj.__name__.replace('_', '-'), textwrap.dedent(obj.__doc__)) - def _sysprep_change_status(self, name, status): - + def get_sysprep_by_name(self, name): + """Returns the sysprep object with the given name""" error_msg = "Syprep operation %s does not exist for %s" % \ - (name, self.__class__.__name__) + (name, self.__class__.__name__) method_name = name.replace('-', '_') method = None @@ -112,15 +112,15 @@ class OSBase(object): if not self._is_sysprep(method): raise FatalError(error_msg) - setattr(method.im_func, 'enabled', status) + return method - def enable_sysprep(self, name): + def enable_sysprep(self, obj): """Enable a system preperation operation""" - self._sysprep_change_status(name, True) + setattr(obj.im_func, 'enabled', True) - def disable_sysprep(self, name): + def disable_sysprep(self, obj): """Disable a system preperation operation""" - self._sysprep_change_status(name, False) + setattr(obj.im_func, 'enabled', False) def print_syspreps(self): """Print enabled and disabled system preperation operations.""" -- GitLab