aboutsummaryrefslogtreecommitdiffstats
path: root/mcp/scripts/xdf_data.sh.j2
diff options
context:
space:
mode:
authorDimitrios Markou <mardim@intracom-telecom.com>2018-08-27 14:27:21 +0300
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>2018-09-10 16:52:52 +0200
commit4fb4b307ffc3f5d250221f06fc85d384bcde0f33 (patch)
treea0dc13b491459045ba1464b11ff9b0062151510b /mcp/scripts/xdf_data.sh.j2
parent546d3927a8ecd822b319a8eac1f98983df63eb3a (diff)
[nosdn-noha] Meet EPA testcases requirements (NUMA)
Install in a local directory a newer version of virt-manager to workaround obsolete Ubuntu versions lacking --cpu cellN.* support. This change only affects CPU cfg of virtual compute nodes in nosdn-nofeature-noha scenarios with: - set default cpu_topology to dual socket (2 cores, 2 sockets, 2 threads); - bump default RAM to 16GB; - define 2 NUMA cells, each with half the resources; To keep the old behavior available (single socket), a new deploy argument has been added (`-m`). The RAM change is not configurable via deploy args. NOTE: The CPU topology for virtual nodes should later be read from PDF instead of hardcoding it on a per-scenario basis in the installer. NOTE: Default 'ram' unit is MiB, while cellN.memory default unit is 'KiB'. JIRA: FUEL-385 Change-Id: I7ca268b0a2052524cb7187a5cf9b6fa8a382c9f9 Signed-off-by: Dimitrios Markou <mardim@intracom-telecom.com> Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
Diffstat (limited to 'mcp/scripts/xdf_data.sh.j2')
-rw-r--r--mcp/scripts/xdf_data.sh.j218
1 files changed, 16 insertions, 2 deletions
diff --git a/mcp/scripts/xdf_data.sh.j2 b/mcp/scripts/xdf_data.sh.j2
index ee5fffab7..e762fe957 100644
--- a/mcp/scripts/xdf_data.sh.j2
+++ b/mcp/scripts/xdf_data.sh.j2
@@ -37,8 +37,20 @@
{%- for n in V.nodes[section] or [] -%}
{%- if section_map[section] < 0 or conf.nodes[section_map[section] + loop.index0].node.type == 'virtual' -%}
{%- if n not in V -%}{%- do V.update({n: {}}) -%}{%- endif -%}
+ {%- set cpu_topo = 'cpu_topology' in V[n] and not conf.MCP_CMP_SS -%}
+ {%- if 'numa' in V[n] and cpu_topo -%}
+ {%- for k, v in V[n].numa.iteritems() -%}
+ {%- set c = pack([k, v.memory, v.cpus]) -%}
+ {%- do V[n].update({'s_numa': c if 's_numa' not in V[n] else pack([c, V[n].s_numa])}) -%}
+ {%- endfor -%}
+ {%- endif -%}
{%- do arr.append(pack([n, V[n].ram or arch.default.ram,
- V[n].vcpus or arch.default.vcpus])) -%}
+ V[n].vcpus or arch.default.vcpus,
+ '' if not cpu_topo else pack([
+ V[n].cpu_topology.sockets,
+ V[n].cpu_topology.cores,
+ V[n].cpu_topology.threads,
+ '' if 's_numa' not in V[n] else V[n].s_numa])])) -%}
{%- endif -%}
{%- endfor -%}
{%- endfor -%}
@@ -93,7 +105,9 @@ virtual_nodes={{ filter_nodes('virtual') }}
control_nodes_query={{ filter_nodes(['baremetal', 'virtual'], True, ['control']) }}
base_image={{ arch.base_image }}
-# Serialize vnode data as '<name0>,<ram0>,<vcpu0>|<name1>,<ram1>,<vcpu1>[...]'
+# Serialize vnode data as:
+# <name0>,<ram0>,<vcpu0>[,<sockets0>,<cores0>,<threads0>[,<cell0name0>,<cell0memory0>,
+# <cell0cpus0>,<cell1name0>,<cell1memory0>,<cell1cpus0>]]|<name1>,...'
virtual_nodes_data={{ serialize_vnodes() }}
# Serialize repos, packages to (pre-)install/remove for: