Merge #36 Add params needed for Atomic compose to LoraxWrapper

This commit is contained in:
Adam Miller 2015-08-18 15:50:16 -05:00
commit 05e9bbab9c
2 changed files with 67 additions and 2 deletions

View File

@ -86,6 +86,12 @@ class BuildinstallPhase(PhaseBase):
noupgrade = not self.compose.conf.get("buildinstall_upgrade_image", False)
buildinstall_method = self.compose.conf["buildinstall_method"]
# These were added for the Atomic ISO Lorax compose
add_template = self.compose.conf.get("add_template", None)
add_template_var = self.compose.conf.get("add_template_var", None)
add_arch_template = self.compose.conf.get("add_arch_template", None)
add_arch_template_var = self.compose.conf.get("add_arch_template_var", None)
for arch in self.compose.get_arches():
repo_baseurl = self.compose.paths.work.arch_repo(arch)
output_dir = self.compose.paths.work.buildinstall_dir(arch)
@ -93,7 +99,7 @@ class BuildinstallPhase(PhaseBase):
buildarch = get_valid_arches(arch)[0]
if buildinstall_method == "lorax":
cmd = lorax.get_lorax_cmd(product, version, release, repo_baseurl, output_dir, is_final=self.compose.supported, buildarch=buildarch, volid=volid, nomacboot=True, noupgrade=noupgrade)
cmd = lorax.get_lorax_cmd(product, version, release, repo_baseurl, output_dir, is_final=self.compose.supported, buildarch=buildarch, volid=volid, nomacboot=True, noupgrade=noupgrade, add_template=add_template, add_template_var=add_template_var, add_arch_template=add_arch_template, add_template_var=add_template_var)
elif buildinstall_method == "buildinstall":
cmd = lorax.get_buildinstall_cmd(product, version, release, repo_baseurl, output_dir, is_final=self.compose.supported, buildarch=buildarch, volid=volid)
else:

View File

@ -21,7 +21,40 @@ from kobo.shortcuts import force_list
class LoraxWrapper(object):
def get_lorax_cmd(self, product, version, release, repo_baseurl, output_dir, variant=None, bugurl=None, nomacboot=False, noupgrade=False, is_final=False, buildarch=None, volid=None):
def _handle_optional_arg_type(self, f_arg, c_arg):
"""
_handle_optional_arg_type
private function to handle arguments to LoraxWrapper get_*_cmd
functions that can optionally be different types (such as string
or list). This effectively allows to repeat args to the commands
wrapped by LoraxWrapper.
@param uknown type : f_arg
- Function argument that is passed to the get_*_cmd function.
@param string: c_arg
- Command line argument to append to cmd
@return list
- returns a list of strings to join with the cmd list in the get_*_cmd
functions
"""
cmd_args = []
if type(f_arg) is list:
for item in f_arg:
cmd_args.append("%s=%s" % (c_arg, item))
elif type(f_arg) is str:
cmd_args.append("%s=%s" % (c_arg, item))
else:
raise Exception(
f_arg,
"Incorrect type passed to LoraxWrapper for " % c_arg
)
return cmd_args
def get_lorax_cmd(self, product, version, release, repo_baseurl, output_dir, variant=None, bugurl=None, nomacboot=False, noupgrade=False, is_final=False, buildarch=None, volid=None, add_template=None, add_template_var=None, add_arch_template=None, add_arch_template_var=None):
cmd = ["lorax"]
cmd.append("--product=%s" % product)
cmd.append("--version=%s" % version)
@ -53,6 +86,32 @@ class LoraxWrapper(object):
if volid:
cmd.append("--volid=%s" % volid)
if add_template:
cmd.extend(
self._handle_optional_arg_type(add_template, "--add-template")
)
if add_template_var:
cmd.extend(
self._handle_optional_arg_type(
add_template_var, "--add-template-var"
)
)
if add_arch_template:
cmd.extend(
self._handle_optional_arg_type(
add_arch_template, "--add-arch-template"
)
)
if add_arch_template_var:
cmd.extend(
self._handle_optional_arg_type(
add_arch_template_var, "--add-arch-template-var"
)
)
output_dir = os.path.abspath(output_dir)
cmd.append(output_dir)