[MaaS] Add maas.machines.set_storage_layout sls 75/51875/3
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Thu, 8 Feb 2018 00:54:55 +0000 (01:54 +0100)
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Sat, 17 Feb 2018 20:05:36 +0000 (21:05 +0100)
On cmp nodes, allocate only 30GB (fixed for now) for / partition.
The rest of the disk(s) can later be allocated via salt-formula-linux.

JIRA: FUEL-330

Change-Id: Ie11c78791e60801719cd33475ff91fc003df5ffa
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
mcp/config/states/maas
mcp/salt-formulas/maas/machines/set_storage_layout.sls [new file with mode: 0644]

index 0034e78..f6c9f83 100755 (executable)
@@ -57,6 +57,16 @@ function maas_fixup() {
     sleep 10
   done
   if [ -n "${fdnodes}" ] || [ -n "${rnodes}" ]; then
+    for node_system_id in ${fdnodes} ${rnodes}; do
+      # For now, we allocate 30GB (fixed) for / on cmp nodes
+      local node_hostname=$(echo "${statusout}" | \
+        grep -Pzo 'hostname: \K.+(?=\n.+\n\s+system_id: '"${node_system_id}"')')
+      if [[ "${node_hostname}" =~ ^cmp ]]; then
+        salt -C 'mas01*' state.apply maas.machines.set_storage_layout \
+          pillar="{'system_id': '${node_system_id}', 'lv_size': '32212254720'}"
+        sleep 10
+      fi
+    done
     salt -C 'mas01*' state.apply maas.machines.deploy
     return 1
   fi
diff --git a/mcp/salt-formulas/maas/machines/set_storage_layout.sls b/mcp/salt-formulas/maas/machines/set_storage_layout.sls
new file mode 100644 (file)
index 0000000..0b7e371
--- /dev/null
@@ -0,0 +1,20 @@
+##############################################################################
+# Copyright (c) 2018 Mirantis Inc., 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 "maas/map.jinja" import region with context %}
+
+maas_login_admin:
+  cmd.run:
+  - name: "maas-region apikey --username {{ region.admin.username }} > /var/lib/maas/.maas_credentials"
+  - unless: 'test -e /var/lib/maas/.maas_credentials'
+
+# TODO: implement set_storage_layout via _modules/maas.py
+set_storage_layout:
+  cmd.run:
+  - name: "maas login {{ region.admin.username }} http://{{ region.bind.host }}:5240/MAAS/api/2.0 - < /var/lib/maas/.maas_credentials && maas opnfv machine set-storage-layout {{ pillar['system_id'] }} storage_layout={{ pillar['storage_layout'] | default('lvm') }} lv_size={{ pillar['lv_size'] | default('100%') }}"
+  - require:
+    - cmd: maas_login_admin