Port the plugins to the new API

This commit is contained in:
Fabio Erculiani
2013-03-24 14:53:05 +00:00
parent 89ada66b00
commit 934e29b076
20 changed files with 325 additions and 323 deletions
+53 -53
View File
@@ -688,7 +688,7 @@ class IsoHandler(GenericExecutionStep, BuiltinHandlerMixin):
class LivecdSpec(GenericSpec):
PLUGIN_API_VERSION = 0
PLUGIN_API_VERSION = 1
@staticmethod
def execution_strategy():
@@ -702,110 +702,110 @@ class LivecdSpec(GenericSpec):
"destination_livecd_root",
]
def parser_data_path(self):
def parameters(self):
return {
'execution_strategy': {
'cb': self.ne_string,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'prechroot': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_command_arguments,
'parser': self._command_splitter,
},
'release_string': {
'cb': self.ne_string, # validation callback
've': self.ve_string_stripper, # value extractor
'verifier': lambda x: len(x) != 0, # validation callback
'parser': lambda x: x.strip(), # value extractor
},
'release_version': {
'cb': self.ne_string,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'release_desc': {
'cb': self.ne_string,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'release_file': {
'cb': self.ne_string,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'source_chroot': {
'cb': self.valid_dir,
've': self.ve_string_stripper,
'verifier': os.path.isdir,
'parser': lambda x: x.strip(),
},
'destination_chroot': {
'cb': self.valid_path_string,
've': self.ve_string_stripper,
'verifier': lambda x: "\0" not in x,
'parser': lambda x: x.strip(),
},
'extra_rsync_parameters': {
'cb': self.always_valid,
've': self.ve_command_splitter,
'verifier': lambda x: True,
'parser': self._command_splitter,
},
'merge_destination_chroot': {
'cb': self.valid_dir,
've': self.ve_string_stripper,
'verifier': os.path.isdir,
'parser': lambda x: x.strip(),
},
'error_script': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'outer_chroot_script': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'inner_source_chroot_script': {
'cb': self.valid_path_string_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'inner_chroot_script': {
'cb': self.valid_path_string_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'outer_chroot_script_after': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'destination_livecd_root': {
'cb': self.valid_path_string,
've': self.ve_string_stripper,
'verifier': lambda x: "\0" not in x,
'parser': lambda x: x.strip(),
},
'merge_livecd_root': {
'cb': self.valid_dir,
've': self.ve_string_stripper,
'verifier': os.path.isdir,
'parser': lambda x: x.strip(),
},
'extra_mksquashfs_parameters': {
'cb': self.always_valid,
've': self.ve_command_splitter,
'verifier': lambda x: True,
'parser': self._command_splitter,
},
'extra_mkisofs_parameters': {
'cb': self.always_valid,
've': self.ve_command_splitter,
'verifier': lambda x: True,
'parser': self._command_splitter,
},
'pre_iso_script': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'post_iso_script': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'destination_iso_directory': {
'cb': self.valid_dir,
've': self.ve_string_stripper,
'verifier': os.path.isdir,
'parser': lambda x: x.strip(),
},
'destination_iso_image_name': {
'cb': self.valid_ascii,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'paths_to_remove': {
'cb': self.ne_list,
've': self.valid_path_list,
'verifier': lambda x: len(x) != 0,
'parser': self._comma_separate_path,
},
'paths_to_empty': {
'cb': self.ne_list,
've': self.valid_path_list,
'verifier': lambda x: len(x) != 0,
'parser': self._comma_separate_path,
},
}
def get_execution_steps(self):
def execution_steps(self):
return [MirrorHandler, ChrootHandler, CdrootHandler, IsoHandler]
+69 -69
View File
@@ -533,7 +533,7 @@ class FinalImageHandler(GenericExecutionStep, BuiltinHandlerMixin):
class IsoToImageSpec(GenericSpec):
PLUGIN_API_VERSION = 0
PLUGIN_API_VERSION = 1
@staticmethod
def execution_strategy():
@@ -546,142 +546,142 @@ class IsoToImageSpec(GenericSpec):
"image_mb",
]
def parser_data_path(self):
def parameters(self):
return {
'execution_strategy': {
'cb': self.ne_string,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'prechroot': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_command_arguments,
'parser': self._command_splitter,
},
'release_string': {
'cb': self.ne_string, # validation callback
've': self.ve_string_stripper, # value extractor
'verifier': lambda x: len(x) != 0, # validation callback
'parser': lambda x: x.strip(), # value extractor
},
'release_version': {
'cb': self.ne_string,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'release_desc': {
'cb': self.ne_string,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'release_file': {
'cb': self.ne_string,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'source_iso': {
'cb': self.valid_path_string,
've': self.ve_string_stripper,
'verifier': lambda x: "\0" not in x,
'parser': lambda x: x.strip(),
},
'image_name': {
'cb': self.ne_string,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'image_formatter': {
'cb': self.ne_list,
've': self.ve_command_splitter,
'verifier': lambda x: len(x) != 0,
'parser': self._command_splitter,
},
'image_mounter': {
'cb': self.ne_list,
've': self.ve_command_splitter,
'verifier': lambda x: len(x) != 0,
'parser': self._command_splitter,
},
'image_umounter': {
'cb': self.ne_list,
've': self.ve_command_splitter,
'verifier': lambda x: len(x) != 0,
'parser': self._command_splitter,
},
'image_mb': {
'cb': self.valid_integer,
've': self.ve_integer_converter,
'verifier': lambda x: x is not None,
'parser': self._cast_integer,
},
'image_randomize': {
'cb': self.valid_ascii,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'error_script': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'outer_chroot_script': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'inner_chroot_script': {
'cb': self.valid_path_string_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'inner_chroot_script_after': {
'cb': self.valid_path_string_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'outer_chroot_script_after': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'destination_image_directory': {
'cb': self.valid_dir,
've': self.ve_string_stripper,
'verifier': os.path.isdir,
'parser': lambda x: x.strip(),
},
'pre_image_script': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'post_image_script': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'iso_mounter': {
'cb': self.ne_list,
've': self.ve_command_splitter,
'verifier': lambda x: len(x) != 0,
'parser': self._command_splitter,
},
'iso_umounter': {
'cb': self.ne_list,
've': self.ve_command_splitter,
'verifier': lambda x: len(x) != 0,
'parser': self._command_splitter,
},
'squash_mounter': {
'cb': self.ne_list,
've': self.ve_command_splitter,
'verifier': lambda x: len(x) != 0,
'parser': self._command_splitter,
},
'squash_umounter': {
'cb': self.ne_list,
've': self.ve_command_splitter,
'verifier': lambda x: len(x) != 0,
'parser': self._command_splitter,
},
'custom_packages_remove_cmd': {
'cb': self.valid_ascii,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'custom_packages_add_cmd': {
'cb': self.valid_ascii,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'packages_to_remove': {
'cb': self.ne_list,
've': self.valid_comma_sep_list,
'verifier': lambda x: len(x) != 0,
'parser': self._comma_separate,
},
'packages_to_add': {
'cb': self.ne_list,
've': self.valid_comma_sep_list,
'verifier': lambda x: len(x) != 0,
'parser': self._comma_separate,
},
'repositories_update_cmd': {
'cb': self.ne_list,
've': self.ve_command_splitter,
'verifier': lambda x: len(x) != 0,
'parser': self._command_splitter,
},
'execute_repositories_update': {
'cb': self.valid_ascii,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'paths_to_remove': {
'cb': self.ne_list,
've': self.valid_path_list,
'verifier': lambda x: len(x) != 0,
'parser': self._comma_separate_path,
},
'paths_to_empty': {
'cb': self.ne_list,
've': self.valid_path_list,
'verifier': lambda x: len(x) != 0,
'parser': self._comma_separate_path,
},
}
def get_execution_steps(self):
def execution_steps(self):
return [ImageHandler, ImageIsoUnpackHandler, ImageChrootHandler,
FinalImageHandler]
+47 -47
View File
@@ -377,7 +377,7 @@ class FinalImageHandler(GenericExecutionStep, BuiltinHandlerMixin):
class ChrootToMmcImageSpec(GenericSpec):
PLUGIN_API_VERSION = 0
PLUGIN_API_VERSION = 1
@staticmethod
def execution_strategy():
@@ -397,97 +397,97 @@ class ChrootToMmcImageSpec(GenericSpec):
"image_name",
]
def parser_data_path(self):
def parameters(self):
return {
'execution_strategy': {
'cb': self.ne_string,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'prechroot': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_command_arguments,
'parser': self._command_splitter,
},
'outer_source_chroot_script': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'inner_source_chroot_script': {
'cb': self.valid_path_string_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'outer_source_chroot_script_after': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'release_string': {
'cb': self.ne_string, # validation callback
've': self.ve_string_stripper, # value extractor
'verifier': lambda x: len(x) != 0, # validation callback
'parser': lambda x: x.strip(), # value extractor
},
'release_version': {
'cb': self.ne_string,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'release_desc': {
'cb': self.ne_string,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'release_file': {
'cb': self.ne_string,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'source_chroot': {
'cb': self.valid_dir,
've': self.ve_string_stripper,
'verifier': os.path.isdir,
'parser': lambda x: x.strip(),
},
'image_name': {
'cb': self.ne_string,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'image_mb': {
'cb': self.valid_integer,
've': self.ve_integer_converter,
'verifier': lambda x: x is not None,
'parser': self._cast_integer,
},
'image_generator_script': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'error_script': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'destination_image_directory': {
'cb': self.valid_dir,
've': self.ve_string_stripper,
'verifier': os.path.isdir,
'parser': lambda x: x.strip(),
},
'source_boot_directory': {
'cb': self.valid_dir,
've': self.ve_string_stripper,
'verifier': os.path.isdir,
'parser': lambda x: x.strip(),
},
'pre_image_script': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'post_image_script': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'packages_to_remove': {
'cb': self.ne_list,
've': self.valid_comma_sep_list,
'verifier': lambda x: len(x) != 0,
'parser': self._comma_separate,
},
'packages_to_add': {
'cb': self.ne_list,
've': self.valid_comma_sep_list,
'verifier': lambda x: len(x) != 0,
'parser': self._comma_separate,
},
'paths_to_remove': {
'cb': self.ne_list,
've': self.valid_path_list,
'verifier': lambda x: len(x) != 0,
'parser': self._comma_separate_path,
},
'paths_to_empty': {
'cb': self.ne_list,
've': self.valid_path_list,
'verifier': lambda x: len(x) != 0,
'parser': self._comma_separate_path,
},
}
def get_execution_steps(self):
def execution_steps(self):
return [ChrootHandler, ImageHandler, FinalImageHandler]
+67 -67
View File
@@ -376,7 +376,7 @@ class IsoHandler(BuiltinIsoHandler):
class RemasterSpec(GenericSpec):
PLUGIN_API_VERSION = 0
PLUGIN_API_VERSION = 1
@staticmethod
def execution_strategy():
@@ -388,137 +388,137 @@ class RemasterSpec(GenericSpec):
"destination_iso_directory",
]
def parser_data_path(self):
def parameters(self):
return {
'execution_strategy': {
'cb': self.ne_string,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'prechroot': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_command_arguments,
'parser': self._command_splitter,
},
'release_string': {
'cb': self.ne_string, # validation callback
've': self.ve_string_stripper, # value extractor
'verifier': lambda x: len(x) != 0, # validation callback
'parser': lambda x: x.strip(), # value extractor
},
'release_version': {
'cb': self.ne_string,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'release_desc': {
'cb': self.ne_string,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'release_file': {
'cb': self.ne_string,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'source_iso': {
'cb': self.valid_path_string,
've': self.ve_string_stripper,
'verifier': lambda x: "\0" not in x,
'parser': lambda x: x.strip(),
},
'iso_title': {
'cb': self.ne_string,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'error_script': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'outer_chroot_script': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'inner_chroot_script': {
'cb': self.valid_path_string_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'inner_chroot_script_after': {
'cb': self.valid_path_string_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'outer_chroot_script_after': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'extra_mksquashfs_parameters': {
'cb': self.always_valid,
've': self.ve_command_splitter,
'verifier': lambda x: True,
'parser': self._command_splitter,
},
'extra_mkisofs_parameters': {
'cb': self.always_valid,
've': self.ve_command_splitter,
'verifier': lambda x: True,
'parser': self._command_splitter,
},
'pre_iso_script': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'post_iso_script': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'destination_iso_directory': {
'cb': self.valid_dir,
've': self.ve_string_stripper,
'verifier': os.path.isdir,
'parser': lambda x: x.strip(),
},
'destination_iso_image_name': {
'cb': self.valid_ascii,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'iso_mounter': {
'cb': self.ne_list,
've': self.ve_command_splitter,
'verifier': lambda x: len(x) != 0,
'parser': self._command_splitter,
},
'iso_umounter': {
'cb': self.ne_list,
've': self.ve_command_splitter,
'verifier': lambda x: len(x) != 0,
'parser': self._command_splitter,
},
'squash_mounter': {
'cb': self.ne_list,
've': self.ve_command_splitter,
'verifier': lambda x: len(x) != 0,
'parser': self._command_splitter,
},
'squash_umounter': {
'cb': self.ne_list,
've': self.ve_command_splitter,
'verifier': lambda x: len(x) != 0,
'parser': self._command_splitter,
},
'merge_livecd_root': {
'cb': self.valid_dir,
've': self.ve_string_stripper,
'verifier': os.path.isdir,
'parser': lambda x: x.strip(),
},
'custom_packages_remove_cmd': {
'cb': self.ne_list,
've': self.ve_command_splitter,
'verifier': lambda x: len(x) != 0,
'parser': self._command_splitter,
},
'custom_packages_add_cmd': {
'cb': self.ne_list,
've': self.ve_command_splitter,
'verifier': lambda x: len(x) != 0,
'parser': self._command_splitter,
},
'packages_to_remove': {
'cb': self.ne_list,
've': self.valid_comma_sep_list,
'verifier': lambda x: len(x) != 0,
'parser': self._comma_separate,
},
'packages_to_add': {
'cb': self.ne_list,
've': self.valid_comma_sep_list,
'verifier': lambda x: len(x) != 0,
'parser': self._comma_separate,
},
'repositories_update_cmd': {
'cb': self.ne_list,
've': self.ve_command_splitter,
'verifier': lambda x: len(x) != 0,
'parser': self._command_splitter,
},
'execute_repositories_update': {
'cb': self.valid_ascii,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'paths_to_remove': {
'cb': self.ne_list,
've': self.valid_path_list,
'verifier': lambda x: len(x) != 0,
'parser': self._comma_separate_path,
},
'paths_to_empty': {
'cb': self.ne_list,
've': self.valid_path_list,
'verifier': lambda x: len(x) != 0,
'parser': self._comma_separate_path,
},
}
def get_execution_steps(self):
def execution_steps(self):
return [IsoUnpackHandler, ChrootHandler, CdrootHandler, IsoHandler]
+61 -61
View File
@@ -169,7 +169,7 @@ class TarHandler(GenericExecutionStep, BuiltinHandlerMixin):
class IsoToTarSpec(GenericSpec):
PLUGIN_API_VERSION = 0
PLUGIN_API_VERSION = 1
@staticmethod
def execution_strategy():
@@ -184,125 +184,125 @@ class IsoToTarSpec(GenericSpec):
"destination_tar_directory",
]
def parser_data_path(self):
def parameters(self):
return {
'execution_strategy': {
'cb': self.ne_string,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'prechroot': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_command_arguments,
'parser': self._command_splitter,
},
'release_string': {
'cb': self.ne_string, # validation callback
've': self.ve_string_stripper, # value extractor
'verifier': lambda x: len(x) != 0, # validation callback
'parser': lambda x: x.strip(), # value extractor
},
'release_version': {
'cb': self.ne_string,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'release_desc': {
'cb': self.ne_string,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'release_file': {
'cb': self.ne_string,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'source_iso': {
'cb': self.valid_path_string,
've': self.ve_string_stripper,
'verifier': lambda x: "\0" not in x,
'parser': lambda x: x.strip(),
},
'tar_name': {
'cb': self.ne_string,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'compression_method': {
'cb': self.supported_compression_method,
've': self.ve_string_stripper,
'verifier': self.supported_compression_method,
'parser': lambda x: x.strip(),
},
'error_script': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'outer_chroot_script': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'inner_chroot_script': {
'cb': self.valid_path_string_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'inner_chroot_script_after': {
'cb': self.valid_path_string_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'outer_chroot_script_after': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'destination_tar_directory': {
'cb': self.valid_dir,
've': self.ve_string_stripper,
'verifier': os.path.isdir,
'parser': lambda x: x.strip(),
},
'pre_tar_script': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'post_tar_script': {
'cb': self.valid_exec_first_list_item,
've': self.ve_command_splitter,
'verifier': self._verify_executable_arguments,
'parser': self._command_splitter,
},
'iso_mounter': {
'cb': self.ne_list,
've': self.ve_command_splitter,
'verifier': lambda x: len(x) != 0,
'parser': self._command_splitter,
},
'iso_umounter': {
'cb': self.ne_list,
've': self.ve_command_splitter,
'verifier': lambda x: len(x) != 0,
'parser': self._command_splitter,
},
'squash_mounter': {
'cb': self.ne_list,
've': self.ve_command_splitter,
'verifier': lambda x: len(x) != 0,
'parser': self._command_splitter,
},
'squash_umounter': {
'cb': self.ne_list,
've': self.ve_command_splitter,
'verifier': lambda x: len(x) != 0,
'parser': self._command_splitter,
},
'custom_packages_remove_cmd': {
'cb': self.valid_ascii,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'custom_packages_add_cmd': {
'cb': self.valid_ascii,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'packages_to_remove': {
'cb': self.ne_list,
've': self.valid_comma_sep_list,
'verifier': lambda x: len(x) != 0,
'parser': self._comma_separate,
},
'packages_to_add': {
'cb': self.ne_list,
've': self.valid_comma_sep_list,
'verifier': lambda x: len(x) != 0,
'parser': self._comma_separate,
},
'repositories_update_cmd': {
'cb': self.ne_list,
've': self.ve_command_splitter,
'verifier': lambda x: len(x) != 0,
'parser': self._command_splitter,
},
'execute_repositories_update': {
'cb': self.valid_ascii,
've': self.ve_string_stripper,
'verifier': lambda x: len(x) != 0,
'parser': lambda x: x.strip(),
},
'paths_to_remove': {
'cb': self.ne_list,
've': self.valid_path_list,
'verifier': lambda x: len(x) != 0,
'parser': self._comma_separate_path,
},
'paths_to_empty': {
'cb': self.ne_list,
've': self.valid_path_list,
'verifier': lambda x: len(x) != 0,
'parser': self._comma_separate_path,
},
}
def get_execution_steps(self):
def execution_steps(self):
return [IsoUnpackHandler, ChrootHandler, TarHandler]
+15 -13
View File
@@ -36,7 +36,7 @@ class ParsersTest(unittest.TestCase):
expected_data = {
'execution_strategy': "iso_remaster",
'paths_to_remove': ['/this/and/that', '/that/and/this'],
'post_iso_script': ['/sabayon/scripts/post_iso_script.sh'],
'post_iso_script': ['specs/data/post_iso_script.sh'],
'iso_title': 'Sabayon KDE',
'extra_mkisofs_parameters': ['-b', 'isolinux/isolinux.bin', '-c',
'isolinux/boot.cat'],
@@ -46,22 +46,23 @@ class ParsersTest(unittest.TestCase):
'destination_iso_image_name': 'Sabayon_Linux_5.3_x86_TEST.iso',
'release_desc': 'x86 TEST',
'packages_to_remove': ['app-foo/foo', 'app-foo2/foo2'],
'pre_iso_script': ['/sabayon/scripts/generic_pre_iso_script.sh',
'pre_iso_script': ['specs/data/pre_iso_script.sh',
'KDE'],
'custom_packages_add_cmd': ['equo', 'install', '--ask'],
'packages_to_add': ['app-admin/packagekit-base',
'app-admin/packagekit-qt4', 'app-admin/sulfur'],
'release_file': '/etc/sabayon-edition',
'outer_chroot_script': ['/sabayon/scripts/remaster_pre.sh'],
'outer_chroot_script': ['specs/data/outer_chroot_script.sh'],
'execute_repositories_update': 'yes',
'inner_chroot_script_after': [
'/sabayon/scripts/remaster_generic_inner_chroot_script_after.sh',
'specs/data/inner_chroot_script_after.sh',
'kde'],
'release_string': 'Sabayon Linux',
'paths_to_empty': ['/empty/this', '/empty/that'],
'destination_iso_directory': 'specs/out/',
'repositories_update_cmd': ['equo', 'update', '--debug'],
'outer_chroot_script_after': ['/sabayon/scripts/remaster_post.sh']
'outer_chroot_script_after': [
'specs/data/outer_chroot_script_after.sh']
}
parse_obj = SpecParser("specs/iso_remaster.spec")
@@ -128,7 +129,7 @@ class ParsersTest(unittest.TestCase):
'__plugin__': None,
'destination_livecd_root': 'specs/out/fake_livecd_root',
'release_desc': 'x86 SpinBase',
'inner_chroot_script': ['/sabayon/scripts/inner_chroot_script.sh',
'inner_chroot_script': ['specs/data/inner_chroot_script.sh',
'spinbase'],
'extra_rsync_parameters': ['--one-file-system', '--exclude',
'/proc/*', '--exclude', '/dev/pts/*'],
@@ -189,6 +190,7 @@ class ParsersTest(unittest.TestCase):
self.assert_(isinstance(extracted_data['__plugin__'], IsoToTarSpec))
extracted_data['__plugin__'] = None
self.assertEqual(expected_data, extracted_data)
def test_iso_to_image(self):
@@ -199,7 +201,7 @@ class ParsersTest(unittest.TestCase):
'execution_strategy': "iso_to_image",
'destination_image_directory': '/',
'outer_chroot_script_after': [
'/path/to/script/to/be/executed/outside/after'],
'specs/data/outer_chroot_script_after.sh'],
'iso_mounter': ['mount', '-t', 'iso9660', '-o', 'loop'],
'prechroot': ['linux32'],
'image_name': 'image_name_w00t Sabayon_Linux_SpinBase_5.3_x86_ami.img',
@@ -211,20 +213,20 @@ class ParsersTest(unittest.TestCase):
'image_randomize': 'yes',
'image_formatter': ['mkfs.ext2'],
'packages_to_remove': ['app-remove/this', 'app-remove/that'],
'inner_chroot_script': ['/sabayon/scripts/openvz_inner_chroot_script.sh'],
'inner_chroot_script': ['specs/data/inner_chroot_script.sh'],
'custom_packages_add_cmd': 'equo install --debug',
'packages_to_add': ['app-add/this', 'app-add/that'],
'iso_umounter': ['umount', '-l'],
'error_script': ['/path/to/script/to/be/executed/outside/after'],
'error_script': ['specs/data/error_script.sh'],
'image_mounter': ['mount', '-o', 'rw,loop'],
'post_image_script': ['/sabayon/scripts/post_image_script.sh'],
'outer_chroot_script': ['/path/to/script/to/be/executed/outside'],
'post_image_script': ['specs/data/post_image_script.sh'],
'outer_chroot_script': ['specs/data/outer_chroot_script.sh'],
'execute_repositories_update': 'yes',
'inner_chroot_script_after': [
'/sabayon/scripts/image_generic_inner_chroot_script_after.sh'],
'specs/data/inner_chroot_script_after.sh'],
'paths_to_empty': ['/empty/this', 'and/that'],
'squash_mounter': ['mount', '-t', 'squashfs', '-o', 'loop'],
'pre_image_script': ['/sabayon/scripts/pre_image_script.sh'],
'pre_image_script': ['specs/data/pre_image_script.sh'],
'repositories_update_cmd': ['equo', 'update', '--debug'],
'__plugin__': None, 'image_umounter': ['umount', '-l']
}
+1 -1
View File
@@ -17,7 +17,7 @@ extra_rsync_parameters: --one-file-system --exclude "/proc/*" --exclude "/dev/pt
# Inner chroot script command, to be executed inside destination chroot before packing it
# - kmerge.sh - setup kernel bins
# inner_chroot_script: /sabayon/scripts/inner_chroot_script.sh
inner_chroot_script: /sabayon/scripts/inner_chroot_script.sh spinbase
inner_chroot_script: specs/data/inner_chroot_script.sh spinbase
# Destination LiveCD root directory, where files are placed before getting mkisofs'ed
# NOTE: data will be stored inside an auto-generated subdir
Regular → Executable
View File
View File
View File
View File
View File
View File
View File
View File
View File
View File
View File
+5 -5
View File
@@ -13,15 +13,15 @@ iso_title: Sabayon KDE
# Outer chroot script command, to be executed outside destination chroot before
# before entering it (and before inner_chroot_script)
outer_chroot_script: /sabayon/scripts/remaster_pre.sh
outer_chroot_script: specs/data/outer_chroot_script.sh
# Inner chroot script command, to be executed inside destination chroot after
# packages installation and removal
inner_chroot_script_after: /sabayon/scripts/remaster_generic_inner_chroot_script_after.sh kde
inner_chroot_script_after: specs/data/inner_chroot_script_after.sh kde
# Outer chroot script command, to be executed outside destination chroot before
# before entering it (and AFTER inner_chroot_script)
outer_chroot_script_after: /sabayon/scripts/remaster_post.sh
outer_chroot_script_after: specs/data/outer_chroot_script_after.sh
# Extra mkisofs parameters, perhaps something to include/use your bootloader
extra_mkisofs_parameters: -b isolinux/isolinux.bin -c isolinux/boot.cat
@@ -33,13 +33,13 @@ extra_mkisofs_parameters: -b isolinux/isolinux.bin -c isolinux/boot.cat
# CDROOT_DIR = path pointing to the root of the CD image being created
# ISO_PATH = path pointing to the destination ISO
# ISO_CHECKSUM_PATH = path pointing to the destination iso checksum (md5)
pre_iso_script: /sabayon/scripts/generic_pre_iso_script.sh KDE
pre_iso_script: specs/data/pre_iso_script.sh KDE
# Post-ISO building script. Hook called after ISO image creation
# Variables exported:
# ISO_PATH = path pointing to the destination ISO
# ISO_CHECKSUM_PATH = path pointing to the destination iso checksum (md5)
post_iso_script: /sabayon/scripts/post_iso_script.sh
post_iso_script: specs/data/post_iso_script.sh
# Destination directory for the ISO image path (MANDATORY)
destination_iso_directory: specs/out/
+7 -7
View File
@@ -3,36 +3,36 @@ execution_strategy: iso_to_image
# Error script command, executed when something went wrong and molecule has
# to terminate the execution
error_script: /path/to/script/to/be/executed/outside/after
error_script: specs/data/error_script.sh
# Outer chroot script command, to be executed outside destination chroot before
# before entering it (and before inner_chroot_script)
outer_chroot_script: /path/to/script/to/be/executed/outside
outer_chroot_script: specs/data/outer_chroot_script.sh
# Inner chroot script command, to be executed inside destination chroot before
# packing it
inner_chroot_script: /sabayon/scripts/openvz_inner_chroot_script.sh
inner_chroot_script: specs/data/inner_chroot_script.sh
# Inner chroot script command, to be executed inside destination chroot after
# packages installation and removal
inner_chroot_script_after: /sabayon/scripts/image_generic_inner_chroot_script_after.sh
inner_chroot_script_after: specs/data/inner_chroot_script_after.sh
# Outer chroot script command, to be executed outside destination chroot before
# before entering it (and AFTER inner_chroot_script)
outer_chroot_script_after: /path/to/script/to/be/executed/outside/after
outer_chroot_script_after: specs/data/outer_chroot_script_after.sh
# Pre-image building script. Hook called before image file creation
# Variables exported:
# TMP_IMAGE_PATH = path pointing to the temporary destination image file
# LOOP_DEVICE = loop device (/dev/loopN) currently in use
pre_image_script: /sabayon/scripts/pre_image_script.sh
pre_image_script: specs/data/pre_image_script.sh
# Post-image building script. Hook called after image file creation and move
# into destination directory.
# Variables exported:
# IMAGE_PATH = path pointing to the destination image file
# IMAGE_CHECKSUM_PATH = path pointing to the destination image file checksum (md5)
post_image_script: /sabayon/scripts/post_image_script.sh
post_image_script: specs/data/post_image_script.sh
# Destination directory for the image path (MANDATORY)
destination_image_directory: /