From 8d66fab2be0d345a773ebc679ea49fcd18af9bb6 Mon Sep 17 00:00:00 2001 From: Alexandru Avadanii Date: Thu, 16 Mar 2017 00:06:23 +0100 Subject: [PATCH] f-l: build_image: Extract cluster_arch from / URI JIRA: ARMBAND-240 Change-Id: If5e7ceb67b6597a2791b352596e52dd63bf32eab Signed-off-by: Alexandru Avadanii --- ...ld_image.pp-Extract-cluster_arch-from-URI.patch | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 patches/fuel-library/multiarch-fuel/0003-build_image.pp-Extract-cluster_arch-from-URI.patch diff --git a/patches/fuel-library/multiarch-fuel/0003-build_image.pp-Extract-cluster_arch-from-URI.patch b/patches/fuel-library/multiarch-fuel/0003-build_image.pp-Extract-cluster_arch-from-URI.patch new file mode 100644 index 00000000..9e7979c5 --- /dev/null +++ b/patches/fuel-library/multiarch-fuel/0003-build_image.pp-Extract-cluster_arch-from-URI.patch @@ -0,0 +1,54 @@ +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", + } + } -- 2.16.6