From: Alexandru Avadanii Date: Wed, 15 Mar 2017 23:44:32 +0100 Subject: [PATCH] build_image.pp: Extract cluster_arch from "/" URI Since target image building was moved from nailgun to puppet, we need to determine the "target_arch" value differently. One way to go is to extract it from the root disk image URI, which is constructed based on static fixture data in nailgun. This change relies on the following: - image_data contains "/", with a properly arch-qualified URI; - image_data "/" URI arch uses the same format as "target_arch" (in this case "arm64" instead of "aarch64" or other variations); While at it, increase task timeout from 1800s to 3600s. NOTE: Unlike the previous approach, this method does not rely on any other nailgun changes (i.e. adding the "arch" field to the database model), but only on `fa_build_image --target_arch=...` support. JIRA: https://jira.opnfv.org/browse/ARMBAND-240 Signed-off-by: Alexandru Avadanii --- deployment/puppet/osnailyfacter/manifests/provision/build_image.pp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp b/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp index 3f90aec..c1b8fbe 100644 --- a/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp +++ b/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp @@ -8,6 +8,9 @@ class osnailyfacter::provision::build_image( $data = loadyaml($data_file) } $cluster_id = $data['cluster']['id'] + $root_img_uri_split = split($data['image_data']['/']['uri'], '_') + $root_img_suffix_split = split($root_img_uri_split[-1], '[.]') + $cluster_arch = $root_img_suffix_split[0] if $data['ironic']['enabled'] == 'true' { $ironic_packages = [ @@ -50,9 +53,9 @@ class osnailyfacter::provision::build_image( $extra_params = '--data_driver nailgun_build_image' exec { 'generate_image_with_fuel': - command => "fa_build_image ${build_dir} ${log_params} ${extra_params} --input_data_file ${data_file}", + command => "fa_build_image ${build_dir} ${log_params} ${extra_params} --target_arch=${cluster_arch} --input_data_file ${data_file}", path => ['/bin', '/usr/bin'], - timeout => 1800, + timeout => 3600, unless => "test -e /var/www/nailgun/bootstrap/ironic/${cluster_id}/vmlinuz", } }