aboutsummaryrefslogtreecommitdiffstats
path: root/patches/fuel-library/multiarch-fuel/0003-build_image.pp-Extract-cluster_arch-from-URI.patch
blob: b2291eed26418aefe6f850ea8f01af201b56501e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
: Copyright (c) 2017 Enea AB and others.
:
: All rights reserved. This program and the accompanying materials
: are made available under the terms of the Apache License, Version 2.0
: which accompanies this distribution, and is available at
: http://www.apache.org/licenses/LICENSE-2.0
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
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",
     }
   }