Browse Source

Ansible deploy - Ignore invalid devices

This change updates the ansible deploy driver to exclude
devices with "sr", "loop", and "mem" which can appear in the
devices list for consideration as the root device.

This change effectively causes them to be ignored.

Change-Id: I72a422553ee992d313b83df091af2c9deb8393b5
(cherry picked from commit 0071d28460)
changes/77/747577/1
Julia Kreger 1 month ago
committed by Dmitry Tantsur
parent
commit
3d77e61f9d
2 changed files with 15 additions and 0 deletions
  1. +6
    -0
      ironic/drivers/modules/ansible/playbooks/library/root_hints.py
  2. +9
    -0
      releasenotes/notes/ansible-device-name-filtering-0adfca7d8ba4cbcc.yaml

+ 6
- 0
ironic/drivers/modules/ansible/playbooks/library/root_hints.py View File

@@ -17,6 +17,8 @@ GIB = 1 << 30
EXTRA_PARAMS = set(['wwn', 'serial', 'wwn_with_extension',
'wwn_vendor_extension'])

IGNORE_DEVICES = ['sr', 'loop', 'mem', 'fd']


# NOTE: ansible calculates device size as float with 2-digits precision,
# Ironic requires size in GiB, if we will use ansible size parameter
@@ -46,6 +48,10 @@ def root_hint(hints, devices):
hint = None
name = hints.pop('name', None)
for device in devices:
if any(x in device for x in IGNORE_DEVICES):
# NOTE(TheJulia): Devices like CD roms, Loop devices, and ramdisks
# should not be considered as target devices.
continue
for key in hints:
if hints[key] != devices[device].get(key):
break


+ 9
- 0
releasenotes/notes/ansible-device-name-filtering-0adfca7d8ba4cbcc.yaml View File

@@ -0,0 +1,9 @@
---
fixes:
- |
Fixes an issue with the ``ansible`` deployment interface where automatic
root deviec selection would accidently choose the system CD-ROM device,
which was likely to occur when the ansible deployment interface was used
with virtual media boot.
The ``ansible`` deployment interface now ignores all Ramdisks, Loopbacks,
CD-ROMs, and floppy disk devices.

Loading…
Cancel
Save