blob: a088aae93a6a03df76eaa8bc18c780cd063dd516 [file] [log] [blame]
{%- from "linux/map.jinja" import storage with context %}
{%- if storage.enabled %}
parted:
pkg.installed
xfsprogs:
pkg.installed
{%- for disk_name, disk in storage.disk.items() %}
{%- set disk_name = disk.name|default(disk_name) %}
create_disk_label_{{ disk_name }}:
module.run:
- name: partition.mklabel
- device: {{ disk_name }}
- label_type: {{ disk.get('type', 'dos') }}
- unless: "fdisk -l {{ disk_name }} | grep -i 'Disklabel type: {{ disk.get('type', 'dos') }}'"
- require:
- pkg: parted
{% set end_size = 0 -%}
{% if disk.get('startsector', None) %}
{% set end_size = disk.get('startsector')|int %}
{% endif %}
{%- for partition in disk.get('partitions', []) %}
create_partition_{{ disk_name }}_{{ loop.index }}:
module.run:
- name: partition.mkpart
- device: {{ disk_name }}
- part_type: primary
{%- if partition.type is defined %}
- fs_type: {{ partition.type }}
{%- endif %}
- start: {{ end_size }}MB
- end: {{ end_size + partition.size }}MB
- unless: "blkid {{ disk_name }}{{ loop.index }} {{ disk_name }}p{{ loop.index }}"
- require:
- module: create_disk_label_{{ disk_name }}
- pkg: xfsprogs
{% set end_size = end_size + partition.size -%}
{%- endfor %}
probe_partions_{{ disk_name }}:
module.run:
- name: partition.probe
- device: {{ disk_name }}
{%- for partition in disk.get('partitions', []) %}
{%- if partition.get('mkfs') and partition.type == "xfs" %}
mkfs_partition_{{ disk_name }}_{{ loop.index }}:
module.run:
- name: xfs.mkfs
- device: {{ disk_name }}{{ loop.index }}
- unless: "blkid {{ disk_name }}{{ loop.index }} {{ disk_name }}p{{ loop.index }} | grep xfs"
- require:
- module: create_partition_{{ disk_name }}_{{ loop.index }}
{%- endif %}
{%- endfor %}
{%- endfor %}
{%- endif %}