|
50 | 50 | # defined already that is to be enhanced with single disk definitions, if
|
51 | 51 | # applicable.
|
52 | 52 |
|
| 53 | +# First pass assigns disks based on exact size. |
| 54 | +# Second pass assigns disks based on approximate size -8GB and +8GB |
53 | 55 | - name: SAP Storage Setup - Set fact for target filesystem device mapping
|
54 | 56 | ansible.builtin.set_fact:
|
55 | 57 | filesystem_device_map: "{{ filesystem_device_map | default([]) + __single_disk_to_fs_device_map }}"
|
|
68 | 70 | -%}
|
69 | 71 |
|
70 | 72 | {%- for dev in av_dev -%}
|
| 73 | + {%- if dev.value.size | regex_search('.*TB$') -%} |
| 74 | + {% set disk_size_gb = (((( dev.value.size | replace(' TB','') | float * 1024) /8) | round(0,'ceil') * 8) | int) -%} |
| 75 | + {%- else -%} |
| 76 | + {% set disk_size_gb = (dev.value.size | regex_replace('(\.\d+\s*)', '') | replace('GB','') | int) -%} |
| 77 | + {%- endif -%} |
| 78 | + {%- if disk_size_gb == fs.disk_size |
| 79 | + and dev.key not in assigned_dev |
| 80 | + and dev.value.holders | length == 0 |
| 81 | + and matching_dev | length < (fs.lvm_lv_stripes | d('1') | int) -%} |
| 82 | + {%- set assigned = assigned_dev.append(dev.key) -%} |
| 83 | + {%- set add = matching_dev.append('/dev/' + dev.key) -%} |
| 84 | + {%- endif -%} |
| 85 | + {%- endfor -%} |
71 | 86 |
|
| 87 | + {%- for dev in av_dev -%} |
72 | 88 | {%- if dev.value.size | regex_search('.*TB$') -%}
|
73 | 89 | {% set disk_size_gb = (((( dev.value.size | replace(' TB','') | float * 1024) /8) | round(0,'ceil') * 8) | int) -%}
|
74 | 90 | {%- else -%}
|
|
82 | 98 | {%- set assigned = assigned_dev.append(dev.key) -%}
|
83 | 99 | {%- set add = matching_dev.append('/dev/' + dev.key) -%}
|
84 | 100 | {%- endif -%}
|
85 |
| -
|
86 | 101 | {%- endfor -%}
|
87 | 102 |
|
88 | 103 | {%- if matching_dev | length > 0 -%}
|
|
0 commit comments