f-l: build_image: Extract cluster_arch from / URI 05/30605/2
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Wed, 15 Mar 2017 23:06:23 +0000 (00:06 +0100)
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Wed, 15 Mar 2017 23:35:41 +0000 (00:35 +0100)
JIRA: ARMBAND-240

Change-Id: If5e7ceb67b6597a2791b352596e52dd63bf32eab
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
patches/fuel-library/multiarch-fuel/0003-build_image.pp-Extract-cluster_arch-from-URI.patch [new file with mode: 0644]

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 (file)
index 0000000..9e7979c
--- /dev/null
@@ -0,0 +1,54 @@
+From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+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 <Alexandru.Avadanii@enea.com>
+---
+ 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",
+     }
+   }