leapp-repository/SOURCES/0041-add-multipathconf-read...

14956 lines
337 KiB
Diff

From 2f3d8e57f4fdd1e63ae25063247db7d13f4fa88d Mon Sep 17 00:00:00 2001
From: Benjamin Marzinski <bmarzins@redhat.com>
Date: Tue, 26 Apr 2022 01:21:33 -0500
Subject: [PATCH 41/47] add multipathconf(read|check|update) el8toel9 actors
Check config files and make necessary changes to retain RHEL-8 default
behavior. This involves adding 'enable_foreign ""' and
'allow_usb_devices yes' to the defaults section of /etc/multipath.conf
if these options don't already exist, and changing any regex values of
"*" to ".*" in any multipath config file. Reports are generated for all
changes made. In order to share code with el7toel8, move the
multipathutil library to the system_upgrade/common repo.
---
.../libraries/multipathutil.py | 0
.../libraries/tests/test_multipathutil.py | 0
.../actors/multipathconfcheck/actor.py | 25 +
.../libraries/multipathconfcheck.py | 80 ++
.../tests/test_multipath_conf_check_8to9.py | 137 ++
.../actors/multipathconfread/actor.py | 33 +
.../libraries/multipathconfread.py | 129 ++
.../tests/files/all_the_things.conf | 21 +
.../tests/files/allow_usb.conf | 1078 ++++++++++++++++
.../tests/files/complicated.conf | 1107 ++++++++++++++++
.../tests/files/conf1.d/empty.conf | 0
.../files/conf1.d/nothing_important.conf | 26 +
.../tests/files/conf2.d/all_true.conf | 24 +
.../tests/files/conf3.d/README | 2 +
.../tests/files/converted_the_things.conf | 23 +
.../tests/files/default_rhel8.conf | 22 +
.../multipathconfread/tests/files/empty.conf | 0
.../tests/files/empty_dir.conf | 26 +
.../tests/files/missing_dir.conf | 27 +
.../tests/files/no_defaults.conf | 1049 ++++++++++++++++
.../tests/files/no_foreign.conf | 1089 ++++++++++++++++
.../tests/files/not_set_dir.conf | 27 +
.../tests/files/set_in_dir.conf | 33 +
.../tests/files/two_defaults.conf | 26 +
.../tests/test_multipath_conf_read_8to9.py | 144 +++
.../actors/multipathconfupdate/actor.py | 27 +
.../libraries/multipathconfupdate.py | 86 ++
.../tests/files/after/all_the_things.conf | 23 +
.../tests/files/after/allow_usb.conf | 1079 ++++++++++++++++
.../tests/files/after/complicated.conf | 1108 +++++++++++++++++
.../tests/files/after/conf2.d/all_true.conf | 24 +
.../tests/files/after/default_rhel8.conf | 23 +
.../tests/files/after/empty.conf | 5 +
.../tests/files/after/empty_dir.conf | 28 +
.../tests/files/after/missing_dir.conf | 29 +
.../tests/files/after/no_defaults.conf | 1054 ++++++++++++++++
.../tests/files/after/no_foreign.conf | 1090 ++++++++++++++++
.../tests/files/after/not_set_dir.conf | 29 +
.../tests/files/after/two_defaults.conf | 27 +
.../tests/files/before/all_the_things.conf | 21 +
.../tests/files/before/allow_usb.conf | 1078 ++++++++++++++++
.../tests/files/before/complicated.conf | 1107 ++++++++++++++++
.../tests/files/before/conf1.d/empty.conf | 0
.../before/conf1.d/nothing_important.conf | 26 +
.../tests/files/before/conf2.d/all_true.conf | 24 +
.../tests/files/before/conf3.d/README | 2 +
.../files/before/converted_the_things.conf | 23 +
.../tests/files/before/default_rhel8.conf | 22 +
.../tests/files/before/empty.conf | 0
.../tests/files/before/empty_dir.conf | 26 +
.../tests/files/before/missing_dir.conf | 27 +
.../tests/files/before/no_defaults.conf | 1049 ++++++++++++++++
.../tests/files/before/no_foreign.conf | 1089 ++++++++++++++++
.../tests/files/before/not_set_dir.conf | 27 +
.../tests/files/before/set_in_dir.conf | 33 +
.../tests/files/before/two_defaults.conf | 26 +
.../tests/test_multipath_conf_update_8to9.py | 119 ++
.../el8toel9/models/multipathconffacts.py | 30 +
58 files changed, 14489 insertions(+)
rename repos/system_upgrade/{el7toel8 => common}/libraries/multipathutil.py (100%)
rename repos/system_upgrade/{el7toel8 => common}/libraries/tests/test_multipathutil.py (100%)
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfcheck/actor.py
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfcheck/libraries/multipathconfcheck.py
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfcheck/tests/test_multipath_conf_check_8to9.py
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfread/actor.py
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfread/libraries/multipathconfread.py
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/all_the_things.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/allow_usb.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/complicated.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/conf1.d/empty.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/conf1.d/nothing_important.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/conf2.d/all_true.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/conf3.d/README
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/converted_the_things.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/default_rhel8.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/empty.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/empty_dir.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/missing_dir.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/no_defaults.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/no_foreign.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/not_set_dir.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/set_in_dir.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/two_defaults.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfread/tests/test_multipath_conf_read_8to9.py
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/actor.py
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/libraries/multipathconfupdate.py
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/all_the_things.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/allow_usb.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/complicated.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/conf2.d/all_true.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/default_rhel8.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/empty.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/empty_dir.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/missing_dir.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/no_defaults.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/no_foreign.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/not_set_dir.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/two_defaults.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/all_the_things.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/allow_usb.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/complicated.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/conf1.d/empty.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/conf1.d/nothing_important.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/conf2.d/all_true.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/conf3.d/README
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/converted_the_things.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/default_rhel8.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/empty.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/empty_dir.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/missing_dir.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/no_defaults.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/no_foreign.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/not_set_dir.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/set_in_dir.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/two_defaults.conf
create mode 100644 repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/test_multipath_conf_update_8to9.py
create mode 100644 repos/system_upgrade/el8toel9/models/multipathconffacts.py
diff --git a/repos/system_upgrade/el7toel8/libraries/multipathutil.py b/repos/system_upgrade/common/libraries/multipathutil.py
similarity index 100%
rename from repos/system_upgrade/el7toel8/libraries/multipathutil.py
rename to repos/system_upgrade/common/libraries/multipathutil.py
diff --git a/repos/system_upgrade/el7toel8/libraries/tests/test_multipathutil.py b/repos/system_upgrade/common/libraries/tests/test_multipathutil.py
similarity index 100%
rename from repos/system_upgrade/el7toel8/libraries/tests/test_multipathutil.py
rename to repos/system_upgrade/common/libraries/tests/test_multipathutil.py
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfcheck/actor.py b/repos/system_upgrade/el8toel9/actors/multipathconfcheck/actor.py
new file mode 100644
index 00000000..7b89b4f3
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfcheck/actor.py
@@ -0,0 +1,25 @@
+from leapp.actors import Actor
+from leapp.libraries.actor import multipathconfcheck
+from leapp.models import MultipathConfFacts8to9
+from leapp.reporting import Report
+from leapp.tags import ChecksPhaseTag, IPUWorkflowTag
+
+
+class MultipathConfCheck8to9(Actor):
+ """
+ Checks if changes to the multipath configuration files are necessary
+ for upgrading to RHEL9, and reports the results.
+ """
+
+ name = 'multipath_conf_check_8to9'
+ consumes = (MultipathConfFacts8to9,)
+ produces = (Report,)
+ tags = (ChecksPhaseTag, IPUWorkflowTag)
+
+ def process(self):
+ facts = next(self.consume(MultipathConfFacts8to9), None)
+ if facts is None:
+ self.log.debug('Skipping execution. No MultipathConfFacts8to9 has '
+ 'been produced')
+ return
+ multipathconfcheck.check_configs(facts)
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfcheck/libraries/multipathconfcheck.py b/repos/system_upgrade/el8toel9/actors/multipathconfcheck/libraries/multipathconfcheck.py
new file mode 100644
index 00000000..4fbcdb94
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfcheck/libraries/multipathconfcheck.py
@@ -0,0 +1,80 @@
+from leapp import reporting
+from leapp.reporting import create_report
+
+
+def _report_foreign():
+ create_report([
+ reporting.Title(
+ 'device-mapper-multipath now defaults to ignoring foreign devices'
+ ),
+ reporting.Summary(
+ 'In RHEL-9, the default value for the "enable_foreign" option has '
+ 'changed to "NONE". This means that multipath will no longer list '
+ 'devices that are not managed by device-mapper. In order to retain '
+ 'the default RHEL-8 behavior of listing foreign multipath devices, '
+ '\'enable_foreign ""\' will be added to the defaults section of '
+ '"/etc/multipath.conf". If you wish to change to the default '
+ 'RHEL-9 behavior, please remove this line. This option only '
+ 'effects the devices that multipath lists. It has no impact on '
+ 'what devices are managed.'),
+ reporting.Severity(reporting.Severity.INFO),
+ reporting.Tags([reporting.Tags.SERVICES]),
+ reporting.RelatedResource('package', 'device-mapper-multipath')
+ ])
+
+
+def _report_allow_usb():
+ create_report([
+ reporting.Title(
+ 'device-mapper-multipath now defaults to ignoring USB devices'
+ ),
+ reporting.Summary(
+ 'In RHEL-9, the default multipath configuration has changed to '
+ 'ignore USB devices. A new config option, "allow_usb_devices" has '
+ 'been added to control this. In order to retain the RHEL-8 '
+ 'behavior of treating USB devices like other block devices. '
+ '"allow_usb_devices yes" will be added to the defaults section '
+ 'of "/etc/multipath.conf". If you wish to change to the default '
+ 'RHEL-9 behavior, please remove this line.'),
+ reporting.Severity(reporting.Severity.INFO),
+ reporting.Tags([reporting.Tags.SERVICES]),
+ reporting.RelatedResource('package', 'device-mapper-multipath')
+ ])
+
+
+def _create_paths_str(paths):
+ if len(paths) < 2:
+ return paths[0]
+ return '{} and {}'.format(', '.join(paths[0:-1]), paths[-1])
+
+
+def _report_invalid_regexes(paths):
+ paths_str = _create_paths_str(paths)
+ create_report([
+ reporting.Title(
+ 'device-mapper-multipath no longer accepts "*" as a valid regular expression'
+ ),
+ reporting.Summary(
+ 'Some options in device-mapper-multipath configuration files '
+ 'have values that are regular expressions. In RHEL-8, if such an '
+ 'option had a value of "*", multipath would internally convert it '
+ 'to ".*". In RHEL-9, values of "*" are no longer accepted. '
+ 'These regular expression values have been found in {}. They '
+ 'will be converted to ".*"'.format(paths_str)),
+ reporting.Severity(reporting.Severity.INFO),
+ reporting.Tags([reporting.Tags.SERVICES]),
+ reporting.RelatedResource('package', 'device-mapper-multipath')
+ ])
+
+
+def check_configs(facts):
+ need_foreign = not any(x for x in facts.configs if x.enable_foreign_exists)
+ need_allow_usb = not any(x for x in facts.configs if x.allow_usb_exists)
+ invalid_regexes = [x.pathname for x in facts.configs if x.invalid_regexes_exist]
+
+ if need_foreign:
+ _report_foreign()
+ if need_allow_usb:
+ _report_allow_usb()
+ if invalid_regexes:
+ _report_invalid_regexes(invalid_regexes)
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfcheck/tests/test_multipath_conf_check_8to9.py b/repos/system_upgrade/el8toel9/actors/multipathconfcheck/tests/test_multipath_conf_check_8to9.py
new file mode 100644
index 00000000..b91d414c
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfcheck/tests/test_multipath_conf_check_8to9.py
@@ -0,0 +1,137 @@
+from leapp.models import MultipathConfFacts8to9, MultipathConfig8to9
+from leapp.reporting import Report
+
+
+def _assert_foreign_report(report):
+ assert report['title'] == \
+ 'device-mapper-multipath now defaults to ignoring foreign devices'
+ assert report['severity'] == 'info'
+
+
+def _assert_allow_usb_report(report):
+ assert report['title'] == \
+ 'device-mapper-multipath now defaults to ignoring USB devices'
+ assert report['severity'] == 'info'
+
+
+def _assert_invalid_regexes_report(report, paths_str):
+ assert report['title'] == \
+ 'device-mapper-multipath no longer accepts "*" as a valid regular expression'
+ assert report['severity'] == 'info'
+ assert paths_str in report['summary']
+
+
+def _build_config(pathname, config_dir, enable_foreign_exists, invalid_regexes_exist, allow_usb_exists):
+ return MultipathConfig8to9(
+ pathname=pathname,
+ config_dir=config_dir,
+ enable_foreign_exists=enable_foreign_exists,
+ invalid_regexes_exist=invalid_regexes_exist,
+ allow_usb_exists=allow_usb_exists,
+ )
+
+
+def _build_facts(confs):
+ return MultipathConfFacts8to9(configs=confs)
+
+
+def test_need_everything(current_actor_context):
+ config = _build_config('need_everything.conf', None, False, True, False)
+ facts = _build_facts([config])
+ current_actor_context.feed(facts)
+ current_actor_context.run()
+ reports = list(current_actor_context.consume(Report))
+ assert reports and len(reports) == 3
+ _assert_foreign_report(reports[0].report)
+ _assert_allow_usb_report(reports[1].report)
+ _assert_invalid_regexes_report(reports[2].report, 'need_everything.conf')
+
+
+def test_need_nothing(current_actor_context):
+ config = _build_config('need_nothing.conf', '/etc/multipath/conf.d', True, False, True)
+ facts = _build_facts([config])
+ current_actor_context.feed(facts)
+ current_actor_context.run()
+ reports = current_actor_context.consume(Report)
+ assert not reports
+
+
+def test_need_foreign(current_actor_context):
+ config = _build_config('need_foreign.conf', None, False, False, True)
+ facts = _build_facts([config])
+ current_actor_context.feed(facts)
+ current_actor_context.run()
+ reports = list(current_actor_context.consume(Report))
+ assert reports and len(reports) == 1
+ _assert_foreign_report(reports[0].report)
+
+
+def test_need_allos_usb(current_actor_context):
+ config = _build_config('need_allow_usb.conf', None, True, False, False)
+ facts = _build_facts([config])
+ current_actor_context.feed(facts)
+ current_actor_context.run()
+ reports = list(current_actor_context.consume(Report))
+ assert reports and len(reports) == 1
+ _assert_allow_usb_report(reports[0].report)
+
+
+def test_invalid_regexes(current_actor_context):
+ config1 = _build_config('invalid_regexes1.conf', None, True, True, True)
+ config2 = _build_config('no_invalid_regexes.conf', None, True, False, True)
+ config3 = _build_config('invalid_regexes2.conf', None, True, True, True)
+ facts = _build_facts([config1, config2, config3])
+ current_actor_context.feed(facts)
+ current_actor_context.run()
+ reports = list(current_actor_context.consume(Report))
+ assert reports and len(reports) == 1
+ _assert_invalid_regexes_report(reports[0].report, 'invalid_regexes1.conf and invalid_regexes2.conf')
+
+
+def test_not_in_main_conf(current_actor_context):
+ main_conf = _build_config('main.conf', '/etc/multipath/conf.d', False, True, False)
+ other_conf = _build_config('other.conf', None, True, False, True)
+ facts = _build_facts([main_conf, other_conf])
+ current_actor_context.feed(facts)
+ current_actor_context.run()
+ reports = list(current_actor_context.consume(Report))
+ assert reports and len(reports) == 1
+ _assert_invalid_regexes_report(reports[0].report, 'main.conf')
+
+
+def test_in_main_conf(current_actor_context):
+ main_conf = _build_config('main.conf', '/etc/multipath/conf.d', True, True, True)
+ other_conf = _build_config('other.conf', None, False, False, False)
+ next_conf = _build_config('next.conf', None, False, True, False)
+ last_conf = _build_config('last.conf', None, False, True, False)
+ facts = _build_facts([main_conf, other_conf, next_conf, last_conf])
+ current_actor_context.feed(facts)
+ current_actor_context.run()
+ reports = list(current_actor_context.consume(Report))
+ assert reports and len(reports) == 1
+ _assert_invalid_regexes_report(reports[0].report, 'main.conf, next.conf and last.conf')
+
+
+def test_in_none_conf(current_actor_context):
+ main_conf = _build_config('main.conf', '/etc/multipath/conf.d', False, False, False)
+ other_conf = _build_config('other.conf', None, False, False, False)
+ facts = _build_facts([main_conf, other_conf])
+ current_actor_context.feed(facts)
+ current_actor_context.run()
+ reports = list(current_actor_context.consume(Report))
+ assert reports and len(reports) == 2
+ _assert_foreign_report(reports[0].report)
+ _assert_allow_usb_report(reports[1].report)
+
+
+def test_mixed_conf(current_actor_context):
+ main_conf = _build_config('main.conf', None, True, False, False)
+ next_conf = _build_config('next.conf', None, False, True, False)
+ last_conf = _build_config('last.conf', None, True, False, False)
+ facts = _build_facts([main_conf, next_conf, last_conf])
+ current_actor_context.feed(facts)
+ current_actor_context.run()
+ reports = list(current_actor_context.consume(Report))
+ assert reports and len(reports) == 2
+ _assert_allow_usb_report(reports[0].report)
+ _assert_invalid_regexes_report(reports[1].report, 'next.conf')
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfread/actor.py b/repos/system_upgrade/el8toel9/actors/multipathconfread/actor.py
new file mode 100644
index 00000000..92184c70
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfread/actor.py
@@ -0,0 +1,33 @@
+from leapp.actors import Actor
+from leapp.libraries.actor import multipathconfread
+from leapp.models import InstalledRedHatSignedRPM, MultipathConfFacts8to9, TargetUserSpaceUpgradeTasks
+from leapp.tags import FactsPhaseTag, IPUWorkflowTag
+
+
+class MultipathConfRead8to9(Actor):
+ """
+ Read multipath configuration files and extract the necessary informaton
+
+ Related files:
+ - /etc/multipath.conf
+ - /etc/multipath/ - any files inside the directory
+ - /etc/xdrdevices.conf
+
+ As well, create task (msg) to copy all needed multipath files into
+ the target container as the files are needed to create proper initramfs.
+ This covers the files mentioned above.
+ """
+
+ name = 'multipath_conf_read_8to9'
+ consumes = (InstalledRedHatSignedRPM,)
+ produces = (MultipathConfFacts8to9, TargetUserSpaceUpgradeTasks)
+ tags = (FactsPhaseTag, IPUWorkflowTag)
+
+ def process(self):
+ if multipathconfread.is_processable():
+ res = multipathconfread.get_multipath_conf_facts()
+ if res:
+ self.produce(res)
+ # Create task to copy multipath config files Iff facts
+ # are generated
+ multipathconfread.produce_copy_to_target_task()
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfread/libraries/multipathconfread.py b/repos/system_upgrade/el8toel9/actors/multipathconfread/libraries/multipathconfread.py
new file mode 100644
index 00000000..9acd243e
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfread/libraries/multipathconfread.py
@@ -0,0 +1,129 @@
+import errno
+import os
+
+from leapp.libraries.common import multipathutil
+from leapp.libraries.common.rpms import has_package
+from leapp.libraries.stdlib import api
+from leapp.models import (
+ CopyFile,
+ InstalledRedHatSignedRPM,
+ MultipathConfFacts8to9,
+ MultipathConfig8to9,
+ TargetUserSpaceUpgradeTasks
+)
+
+_regexes = ('vendor', 'product', 'revision', 'product_blacklist', 'devnode',
+ 'wwid', 'property', 'protocol')
+
+
+def _parse_config(path):
+ contents = multipathutil.read_config(path)
+ if contents is None:
+ return None
+ conf = MultipathConfig8to9(pathname=path)
+ section = None
+ in_subsection = False
+ for line in contents.split('\n'):
+ try:
+ data = multipathutil.LineData(line, section, in_subsection)
+ except ValueError:
+ continue
+ if data.type == data.TYPE_BLANK:
+ continue
+ if data.type == data.TYPE_SECTION_END:
+ if in_subsection:
+ in_subsection = False
+ elif section:
+ section = None
+ continue
+ if data.type == data.TYPE_SECTION_START:
+ if not section:
+ section = data.section
+ elif not in_subsection:
+ in_subsection = True
+ continue
+ if data.type != data.TYPE_OPTION:
+ continue
+ if section == 'defaults':
+ if data.option == 'enable_foreign':
+ conf.enable_foreign_exists = True
+ elif data.option == 'allow_usb_devices':
+ conf.allow_usb_exists = True
+ elif data.option == 'config_dir':
+ conf.config_dir = data.value
+ if data.option in _regexes and data.value == '*':
+ conf.invalid_regexes_exist = True
+ return conf
+
+
+def _parse_config_dir(config_dir):
+ res = []
+ try:
+ for config_file in sorted(os.listdir(config_dir)):
+ path = os.path.join(config_dir, config_file)
+ if not path.endswith('.conf'):
+ continue
+ conf = _parse_config(path)
+ if conf:
+ res.append(conf)
+ except OSError as e:
+ if e.errno == errno.ENOENT:
+ api.current_logger().debug('Multipath conf directory ' +
+ '"{}" doesn\'t exist'.format(config_dir))
+ else:
+ api.current_logger().warning('Failed to read multipath config ' +
+ 'directory ' +
+ '"{}": {}'.format(config_dir, e))
+ return res
+
+
+def is_processable():
+ res = has_package(InstalledRedHatSignedRPM, 'device-mapper-multipath')
+ if not res:
+ api.current_logger().debug('device-mapper-multipath is not installed.')
+ return res
+
+
+def get_multipath_conf_facts(config_file='/etc/multipath.conf'):
+ res_configs = []
+ conf = _parse_config(config_file)
+ if not conf:
+ return None
+ res_configs.append(conf)
+ if conf.config_dir:
+ res_configs.extend(_parse_config_dir(conf.config_dir))
+ else:
+ res_configs.extend(_parse_config_dir('/etc/multipath/conf.d'))
+ return MultipathConfFacts8to9(configs=res_configs)
+
+
+def produce_copy_to_target_task():
+ """
+ Produce task to copy files into the target userspace
+
+ The multipath configuration files are needed when the upgrade init ramdisk
+ is generated to ensure we are able to boot into the upgrade environment
+ and start the upgrade process itself. By this msg it's told that these
+ files/dirs will be available when the upgrade init ramdisk is generated.
+
+ See TargetUserSpaceUpgradeTasks and UpgradeInitramfsTasks for more info.
+ """
+ # TODO(pstodulk): move the function to the multipathconfcheck actor
+ # and get rid of the hardcoded stuff.
+ # - The current behaviour looks from the user POV same as before this
+ # * commit. I am going to keep the proper fix for additional PR as we do
+ # * not want to make the current PR even more complex than now and the solution
+ # * is not so trivial.
+ # - As well, I am missing some information around xDR devices, which are
+ # * possibly not handled correctly (maybe missing some executables?..)
+ # * Update: practically we do not have enough info about xDR drivers, but
+ # * discussed with Ben Marzinski, as the multipath dracut module includes
+ # * the xDR utils stuff, we should handle it in the same way.
+ # * See xdrgetuid, xdrgetinfo (these two utils are now missing in our initramfs)
+ copy_files = []
+ for fname in ['/etc/multipath.conf', '/etc/multipath', '/etc/xdrdevices.conf']:
+ if os.path.exists(fname):
+ copy_files.append(CopyFile(src=fname))
+
+ if copy_files:
+ api.produce(TargetUserSpaceUpgradeTasks(copy_files=copy_files))
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/all_the_things.conf b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/all_the_things.conf
new file mode 100644
index 00000000..263cdf9e
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/all_the_things.conf
@@ -0,0 +1,21 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ user_friendly_names yes
+ find_multipaths yes
+}
+
+blacklist {
+ devnode "*"
+}
+
+blacklist {
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/allow_usb.conf b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/allow_usb.conf
new file mode 100644
index 00000000..57b6f97b
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/allow_usb.conf
@@ -0,0 +1,1078 @@
+defaults {
+ verbosity 2
+ flush_on_last_del "no"
+ user_friendly_names "yes"
+ fast_io_fail_tmo 5
+ bindings_file "/etc/multipath/bindings"
+ wwids_file "/etc/multipath/wwids"
+ prkeys_file "/etc/multipath/prkeys"
+ log_checker_err always
+ all_tg_pt "no"
+ retain_attached_hw_handler "yes"
+ detect_prio "yes"
+ detect_checker "yes"
+ force_sync "yes"
+ strict_timing "no"
+ deferred_remove "no"
+ find_multipaths "on"
+ uxsock_timeout 4000
+ retrigger_tries 0
+ retrigger_delay 10
+ missing_uev_wait_timeout 30
+ skip_kpartx "no"
+ disable_changed_wwids ignored
+ remove_retries 0
+ ghost_delay "no"
+ find_multipaths_timeout -10
+ marginal_pathgroups "no"
+ recheck_wwid "no"
+ allow_usb_devices yes
+}
+blacklist {
+ devnode ".*"
+ device {
+ vendor "SGI"
+ product "Universal Xport"
+ }
+ device {
+ vendor "^DGC"
+ product "LUNZ"
+ }
+ wwid ".*"
+ device {
+ vendor "EMC"
+ product "LUNZ"
+ }
+ device {
+ vendor "DELL"
+ product "Universal Xport"
+ }
+ protocol ".*"
+ device {
+ vendor "FUJITSU"
+ product "Universal Xport"
+ }
+ device {
+ vendor "IBM"
+ product "Universal Xport"
+ }
+ device {
+ vendor "IBM"
+ product "S/390"
+ }
+ device {
+ vendor "LENOVO"
+ product "Universal Xport"
+ }
+ device {
+ vendor "(NETAPP|LSI|ENGENIO)"
+ product "Universal Xport"
+ }
+ device {
+ vendor "STK"
+ product "Universal Xport"
+ }
+ device {
+ vendor "foo"
+ product ".*"
+ }
+ device {
+ vendor "SUN"
+ product "Universal Xport"
+ }
+ device {
+ vendor "(Intel|INTEL)"
+ product "VTrak V-LUN"
+ }
+ device {
+ vendor "Promise"
+ product "VTrak V-LUN"
+ }
+ device {
+ vendor "Promise"
+ product "Vess V-LUN"
+ }
+ device {
+ vendor ".*"
+ product "bar"
+ }
+}
+blacklist_exceptions {
+ devnode "^sd[a-z]"
+ wwid "^3"
+ property ".*"
+ protocol "scsi"
+}
+devices {
+ device {
+ vendor "NVME"
+ product ".*"
+ uid_attribute "ID_WWN"
+ path_checker "none"
+ retain_attached_hw_handler "no"
+ }
+ device {
+ vendor "APPLE"
+ product "Xserve RAID"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "3PARdata"
+ product "VV"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ fast_io_fail_tmo 10
+ dev_loss_tmo "infinity"
+ vpd_vendor hp3par
+ }
+ device {
+ vendor "DEC"
+ product "HSG80"
+ path_grouping_policy "group_by_prio"
+ path_checker "hp_sw"
+ hardware_handler "1 hp_sw"
+ prio "hp_sw"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "HP"
+ product "A6189A"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "(MSA|HSV)1[01]0"
+ path_grouping_policy "group_by_prio"
+ path_checker "hp_sw"
+ hardware_handler "1 hp_sw"
+ prio "hp_sw"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "MSA VOLUME"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "(HSV1[01]1|HSV2[01]0|HSV3[046]0|HSV4[05]0)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "(MSA2[02]12fc|MSA2012i)"
+ path_grouping_policy "multibus"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "(MSA2012sa|MSA23(12|24)(fc|i|sa)|MSA2000s VOLUME)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "MSA [12]0[456]0 SA[NS]"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "HSVX700"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "LOGICAL VOLUME"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "(P2000 G3 FC|P2000G3 FC/iSCSI|P2000 G3 SAS|P2000 G3 iSCSI)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "LEFTHAND"
+ product "(P4000|iSCSIDisk|FCDISK)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "Nimble"
+ product "Server"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "SGI"
+ product "TP9100"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "SGI"
+ product "TP9[3457]00"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SGI"
+ product "IS"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SGI"
+ product "^DD[46]A-"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "DDN"
+ product "SAN DataDirector"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "DDN"
+ product "^EF3010"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "DDN"
+ product "^(EF3015|S2A|SFA)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NEXENTA"
+ product "COMSTAR"
+ path_grouping_policy "group_by_serial"
+ no_path_retry 30
+ }
+ device {
+ vendor "TEGILE"
+ product "(ZEBI-(FC|ISCSI)|INTELLIFLASH)"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "EMC"
+ product "SYMMETRIX"
+ path_grouping_policy "multibus"
+ no_path_retry 6
+ }
+ device {
+ vendor "^DGC"
+ product "^(RAID|DISK|VRAID)"
+ product_blacklist "LUNZ"
+ path_grouping_policy "group_by_prio"
+ path_checker "emc_clariion"
+ hardware_handler "1 emc"
+ prio "emc"
+ failback "immediate"
+ no_path_retry 60
+ }
+ device {
+ vendor "EMC"
+ product "Invista"
+ product_blacklist "LUNZ"
+ path_grouping_policy "multibus"
+ no_path_retry 5
+ }
+ device {
+ vendor "XtremIO"
+ product "XtremApp"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "COMPELNT"
+ product "Compellent Vol"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "DELL"
+ product "^MD3"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NVME"
+ product "^EMC PowerMax_"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "FSC"
+ product "CentricStor"
+ path_grouping_policy "group_by_serial"
+ }
+ device {
+ vendor "FUJITSU"
+ product "ETERNUS_DX(H|L|M|400|8000)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "(EUROLOGC|EuroLogc)"
+ product "FC2502"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "FUJITSU"
+ product "E[234]000"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "FUJITSU"
+ product "E[68]000"
+ path_grouping_policy "multibus"
+ no_path_retry 10
+ }
+ device {
+ vendor "FUJITSU"
+ product "ETERNUS_AHB"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "(HITACHI|HP)"
+ product "^OPEN-"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "HITACHI"
+ product "^DF"
+ path_grouping_policy "group_by_prio"
+ prio "hds"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "HITACHI"
+ product "^DF600F"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "ProFibre 4000R"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "^1722-600"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1724"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1726"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1742"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1746"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1813"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1814"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1815"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1818"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^3526"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^(3542|3552)"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^2105"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^1750500"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^2107900"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^2145"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "S/390 DASD ECKD"
+ product_blacklist "S/390"
+ path_grouping_policy "multibus"
+ uid_attribute "ID_UID"
+ path_checker "directio"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "S/390 DASD FBA"
+ product_blacklist "S/390"
+ path_grouping_policy "multibus"
+ uid_attribute "ID_UID"
+ path_checker "directio"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^IPR"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "1820N00"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(XIV|IBM)"
+ product "(NEXTRA|2810XIV)"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(TMS|IBM)"
+ product "(RamSan|FlashSystem)"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "^(DCS9900|2851)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "AIX"
+ product "VDASD"
+ path_grouping_policy "multibus"
+ no_path_retry 60
+ }
+ device {
+ vendor "IBM"
+ product "3303[ ]+NVDISK"
+ no_path_retry 60
+ }
+ device {
+ vendor "AIX"
+ product "NVDISK"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 60
+ }
+ device {
+ vendor "LENOVO"
+ product "DE_Series"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NETAPP"
+ product "LUN"
+ path_grouping_policy "group_by_prio"
+ features "2 pg_init_retries 50"
+ prio "ontap"
+ failback "immediate"
+ no_path_retry "queue"
+ flush_on_last_del "yes"
+ dev_loss_tmo "infinity"
+ user_friendly_names "no"
+ }
+ device {
+ vendor "(NETAPP|LSI|ENGENIO)"
+ product "INF-01-00"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SolidFir"
+ product "SSD SAN"
+ path_grouping_policy "multibus"
+ no_path_retry 24
+ }
+ device {
+ vendor "NVME"
+ product "^NetApp ONTAP Controller"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "NEC"
+ product "DISK ARRAY"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "^Pillar"
+ product "^Axiom"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "^Oracle"
+ product "^Oracle FS"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "STK"
+ product "BladeCtlr"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "STK"
+ product "OPENstorage"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "STK"
+ product "FLEXLINE 380"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "StorEdge 3"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "SUN"
+ product "STK6580_6780"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "CSM[12]00_R"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "LCSM100_[IEFS]"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "SUN_6180"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "ArrayStorage"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "(Sun Storage|ZFS Storage|COMSTAR)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "PIVOT3"
+ product "RAIGE VOLUME"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(NexGen|Pivot3)"
+ product "(TierStore|vSTAC)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(Intel|INTEL)"
+ product "Multi-Flex"
+ product_blacklist "VTrak V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(LIO-ORG|SUSE)"
+ product "RBD"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "DataCore"
+ product "SANmelody"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "DataCore"
+ product "Virtual Disk"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "PURE"
+ product "FlashArray"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ fast_io_fail_tmo 10
+ }
+ device {
+ vendor "HUAWEI"
+ product "XSG1"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ }
+ device {
+ vendor "KOVE"
+ product "XPD"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "NFINIDAT"
+ product "InfiniBox"
+ path_grouping_policy "group_by_prio"
+ path_selector "round-robin 0"
+ prio "alua"
+ failback 30
+ rr_weight "priorities"
+ no_path_retry "fail"
+ rr_min_io 1
+ rr_min_io_rq 1
+ flush_on_last_del "yes"
+ fast_io_fail_tmo 15
+ dev_loss_tmo 15
+ }
+ device {
+ vendor "KMNRIO"
+ product "K2"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "NEXSAN"
+ product "NXS-B0"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 15
+ }
+ device {
+ vendor "NEXSAN"
+ product "SATAB"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 15
+ }
+ device {
+ vendor "Nexsan"
+ product "(NestOS|NST5000)"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "SAN ARRAY$"
+ path_grouping_policy "group_by_serial"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "SAN ARRAY ALUA"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "CONCERTO ARRAY"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "ISE"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "IGLU DISK"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "Magnitude"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "Promise"
+ product "VTrak"
+ product_blacklist "VTrak V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "Promise"
+ product "Vess"
+ product_blacklist "Vess V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "^IFT"
+ product ".*"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "foo"
+ product "bar"
+ product_blacklist "xyzzy"
+ revision ".*"
+ path_grouping_policy "failover"
+ }
+ device {
+ vendor "DotHill"
+ product "SANnet"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "DotHill"
+ product "R/Evo"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "DotHill"
+ product "^DH"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "AStor"
+ product "NeoSapphire"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "INSPUR"
+ product "MCS"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor ".*"
+ product "plugh"
+ no_path_retry 5
+ }
+}
+overrides {
+ no_path_retry fail
+ dev_loss_tmo 45
+}
+multipaths {
+ multipath {
+ wwid "333333330000007d0"
+ alias "test"
+ }
+ multipath {
+ wwid "33333333000001388"
+ alias "foo"
+ }
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/complicated.conf b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/complicated.conf
new file mode 100644
index 00000000..23d93ecf
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/complicated.conf
@@ -0,0 +1,1107 @@
+defaults {
+ verbosity 2
+ polling_interval 5
+ max_polling_interval 20
+ reassign_maps "no"
+ multipath_dir "/lib64/multipath"
+ path_selector "service-time 0"
+ path_grouping_policy "failover"
+ uid_attribute "ID_SERIAL"
+ prio "const"
+ prio_args ""
+ features "0"
+ path_checker "tur"
+ alias_prefix "mpath"
+ failback "manual"
+ rr_min_io 1000
+ rr_min_io_rq 1
+ max_fds "max"
+ rr_weight "uniform"
+ queue_without_daemon "no"
+ flush_on_last_del "no"
+ user_friendly_names "yes"
+ fast_io_fail_tmo 5
+ bindings_file "/etc/multipath/bindings"
+ wwids_file "/etc/multipath/wwids"
+ prkeys_file "/etc/multipath/prkeys"
+ log_checker_err always
+ all_tg_pt "no"
+ retain_attached_hw_handler "yes"
+ detect_prio "yes"
+ detect_checker "yes"
+ force_sync "yes"
+ strict_timing "no"
+ deferred_remove "no"
+ config_dir "/etc/multipath/conf.d"
+ delay_watch_checks "no"
+ delay_wait_checks "no"
+ san_path_err_threshold "no"
+ san_path_err_forget_rate "no"
+ san_path_err_recovery_time "no"
+ marginal_path_err_sample_time "no"
+ marginal_path_err_rate_threshold "no"
+ marginal_path_err_recheck_gap_time "no"
+ marginal_path_double_failed_time "no"
+ find_multipaths "on"
+ uxsock_timeout 4000
+ retrigger_tries 0
+ retrigger_delay 10
+ missing_uev_wait_timeout 30
+ skip_kpartx "no"
+ disable_changed_wwids ignored
+ remove_retries 0
+ ghost_delay "no"
+ find_multipaths_timeout -10
+ enable_foreign "^$"
+ marginal_pathgroups "no"
+ recheck_wwid "no"
+}
+blacklist {
+ devnode "*"
+ device {
+ vendor "SGI"
+ product "Universal Xport"
+ }
+ device {
+ vendor "^DGC"
+ product "LUNZ"
+ }
+ wwid ".*"
+ device {
+ vendor "EMC"
+ product "LUNZ"
+ }
+ device {
+ vendor "DELL"
+ product "Universal Xport"
+ }
+ protocol "*"
+ device {
+ vendor "FUJITSU"
+ product "Universal Xport"
+ }
+ device {
+ vendor "IBM"
+ product "Universal Xport"
+ }
+ device {
+ vendor "IBM"
+ product "S/390"
+ }
+ device {
+ vendor "LENOVO"
+ product "Universal Xport"
+ }
+ device {
+ vendor "(NETAPP|LSI|ENGENIO)"
+ product "Universal Xport"
+ }
+ device {
+ vendor "STK"
+ product "Universal Xport"
+ }
+ device {
+ vendor "foo"
+ product ".*"
+ }
+ device {
+ vendor "SUN"
+ product "Universal Xport"
+ }
+ device {
+ vendor "(Intel|INTEL)"
+ product "VTrak V-LUN"
+ }
+ device {
+ vendor "Promise"
+ product "VTrak V-LUN"
+ }
+ device {
+ vendor "Promise"
+ product "Vess V-LUN"
+ }
+ device {
+ vendor "*"
+ product "bar"
+ }
+}
+blacklist_exceptions {
+ devnode "^sd[a-z]"
+ wwid "^3"
+ property ".*"
+ protocol "scsi"
+}
+devices {
+ device {
+ vendor "NVME"
+ product "*"
+ uid_attribute "ID_WWN"
+ path_checker "none"
+ retain_attached_hw_handler "no"
+ }
+ device {
+ vendor "APPLE"
+ product "Xserve RAID"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "3PARdata"
+ product "VV"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ fast_io_fail_tmo 10
+ dev_loss_tmo "infinity"
+ vpd_vendor hp3par
+ }
+ device {
+ vendor "DEC"
+ product "HSG80"
+ path_grouping_policy "group_by_prio"
+ path_checker "hp_sw"
+ hardware_handler "1 hp_sw"
+ prio "hp_sw"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "HP"
+ product "A6189A"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "(MSA|HSV)1[01]0"
+ path_grouping_policy "group_by_prio"
+ path_checker "hp_sw"
+ hardware_handler "1 hp_sw"
+ prio "hp_sw"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "MSA VOLUME"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "(HSV1[01]1|HSV2[01]0|HSV3[046]0|HSV4[05]0)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "(MSA2[02]12fc|MSA2012i)"
+ path_grouping_policy "multibus"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "(MSA2012sa|MSA23(12|24)(fc|i|sa)|MSA2000s VOLUME)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "MSA [12]0[456]0 SA[NS]"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "HSVX700"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "LOGICAL VOLUME"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "(P2000 G3 FC|P2000G3 FC/iSCSI|P2000 G3 SAS|P2000 G3 iSCSI)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "LEFTHAND"
+ product "(P4000|iSCSIDisk|FCDISK)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "Nimble"
+ product "Server"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "SGI"
+ product "TP9100"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "SGI"
+ product "TP9[3457]00"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SGI"
+ product "IS"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SGI"
+ product "^DD[46]A-"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "DDN"
+ product "SAN DataDirector"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "DDN"
+ product "^EF3010"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "DDN"
+ product "^(EF3015|S2A|SFA)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NEXENTA"
+ product "COMSTAR"
+ path_grouping_policy "group_by_serial"
+ no_path_retry 30
+ }
+ device {
+ vendor "TEGILE"
+ product "(ZEBI-(FC|ISCSI)|INTELLIFLASH)"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "EMC"
+ product "SYMMETRIX"
+ path_grouping_policy "multibus"
+ no_path_retry 6
+ }
+ device {
+ vendor "^DGC"
+ product "^(RAID|DISK|VRAID)"
+ product_blacklist "LUNZ"
+ path_grouping_policy "group_by_prio"
+ path_checker "emc_clariion"
+ hardware_handler "1 emc"
+ prio "emc"
+ failback "immediate"
+ no_path_retry 60
+ }
+ device {
+ vendor "EMC"
+ product "Invista"
+ product_blacklist "LUNZ"
+ path_grouping_policy "multibus"
+ no_path_retry 5
+ }
+ device {
+ vendor "XtremIO"
+ product "XtremApp"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "COMPELNT"
+ product "Compellent Vol"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "DELL"
+ product "^MD3"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NVME"
+ product "^EMC PowerMax_"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "FSC"
+ product "CentricStor"
+ path_grouping_policy "group_by_serial"
+ }
+ device {
+ vendor "FUJITSU"
+ product "ETERNUS_DX(H|L|M|400|8000)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "(EUROLOGC|EuroLogc)"
+ product "FC2502"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "FUJITSU"
+ product "E[234]000"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "FUJITSU"
+ product "E[68]000"
+ path_grouping_policy "multibus"
+ no_path_retry 10
+ }
+ device {
+ vendor "FUJITSU"
+ product "ETERNUS_AHB"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "(HITACHI|HP)"
+ product "^OPEN-"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "HITACHI"
+ product "^DF"
+ path_grouping_policy "group_by_prio"
+ prio "hds"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "HITACHI"
+ product "^DF600F"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "ProFibre 4000R"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "^1722-600"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1724"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1726"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1742"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1746"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1813"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1814"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1815"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1818"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^3526"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^(3542|3552)"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^2105"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^1750500"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^2107900"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^2145"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "S/390 DASD ECKD"
+ product_blacklist "S/390"
+ path_grouping_policy "multibus"
+ uid_attribute "ID_UID"
+ path_checker "directio"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "S/390 DASD FBA"
+ product_blacklist "S/390"
+ path_grouping_policy "multibus"
+ uid_attribute "ID_UID"
+ path_checker "directio"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^IPR"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "1820N00"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(XIV|IBM)"
+ product "(NEXTRA|2810XIV)"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(TMS|IBM)"
+ product "(RamSan|FlashSystem)"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "^(DCS9900|2851)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "AIX"
+ product "VDASD"
+ path_grouping_policy "multibus"
+ no_path_retry 60
+ }
+ device {
+ vendor "IBM"
+ product "3303[ ]+NVDISK"
+ no_path_retry 60
+ }
+ device {
+ vendor "AIX"
+ product "NVDISK"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 60
+ }
+ device {
+ vendor "LENOVO"
+ product "DE_Series"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NETAPP"
+ product "LUN"
+ path_grouping_policy "group_by_prio"
+ features "2 pg_init_retries 50"
+ prio "ontap"
+ failback "immediate"
+ no_path_retry "queue"
+ flush_on_last_del "yes"
+ dev_loss_tmo "infinity"
+ user_friendly_names "no"
+ }
+ device {
+ vendor "(NETAPP|LSI|ENGENIO)"
+ product "INF-01-00"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SolidFir"
+ product "SSD SAN"
+ path_grouping_policy "multibus"
+ no_path_retry 24
+ }
+ device {
+ vendor "NVME"
+ product "^NetApp ONTAP Controller"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "NEC"
+ product "DISK ARRAY"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "^Pillar"
+ product "^Axiom"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "^Oracle"
+ product "^Oracle FS"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "STK"
+ product "BladeCtlr"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "STK"
+ product "OPENstorage"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "STK"
+ product "FLEXLINE 380"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "StorEdge 3"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "SUN"
+ product "STK6580_6780"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "CSM[12]00_R"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "LCSM100_[IEFS]"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "SUN_6180"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "ArrayStorage"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "(Sun Storage|ZFS Storage|COMSTAR)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "PIVOT3"
+ product "RAIGE VOLUME"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(NexGen|Pivot3)"
+ product "(TierStore|vSTAC)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(Intel|INTEL)"
+ product "Multi-Flex"
+ product_blacklist "VTrak V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(LIO-ORG|SUSE)"
+ product "RBD"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "DataCore"
+ product "SANmelody"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "DataCore"
+ product "Virtual Disk"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "PURE"
+ product "FlashArray"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ fast_io_fail_tmo 10
+ }
+ device {
+ vendor "HUAWEI"
+ product "XSG1"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ }
+ device {
+ vendor "KOVE"
+ product "XPD"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "NFINIDAT"
+ product "InfiniBox"
+ path_grouping_policy "group_by_prio"
+ path_selector "round-robin 0"
+ prio "alua"
+ failback 30
+ rr_weight "priorities"
+ no_path_retry "fail"
+ rr_min_io 1
+ rr_min_io_rq 1
+ flush_on_last_del "yes"
+ fast_io_fail_tmo 15
+ dev_loss_tmo 15
+ }
+ device {
+ vendor "KMNRIO"
+ product "K2"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "NEXSAN"
+ product "NXS-B0"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 15
+ }
+ device {
+ vendor "NEXSAN"
+ product "SATAB"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 15
+ }
+ device {
+ vendor "Nexsan"
+ product "(NestOS|NST5000)"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "SAN ARRAY$"
+ path_grouping_policy "group_by_serial"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "SAN ARRAY ALUA"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "CONCERTO ARRAY"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "ISE"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "IGLU DISK"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "Magnitude"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "Promise"
+ product "VTrak"
+ product_blacklist "VTrak V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "Promise"
+ product "Vess"
+ product_blacklist "Vess V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "^IFT"
+ product ".*"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "foo"
+ product "bar"
+ product_blacklist "xyzzy"
+ revision "*"
+ path_grouping_policy "failover"
+ }
+ device {
+ vendor "DotHill"
+ product "SANnet"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "DotHill"
+ product "R/Evo"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "DotHill"
+ product "^DH"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "AStor"
+ product "NeoSapphire"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "INSPUR"
+ product "MCS"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "*"
+ product "plugh"
+ no_path_retry 5
+ }
+}
+overrides {
+ no_path_retry fail
+ dev_loss_tmo 45
+ allow_usb_devices yes
+}
+multipaths {
+ multipath {
+ wwid "333333330000007d0"
+ alias "test"
+ }
+ multipath {
+ wwid "33333333000001388"
+ alias "foo"
+ }
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/conf1.d/empty.conf b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/conf1.d/empty.conf
new file mode 100644
index 00000000..e69de29b
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/conf1.d/nothing_important.conf b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/conf1.d/nothing_important.conf
new file mode 100644
index 00000000..70fbc929
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/conf1.d/nothing_important.conf
@@ -0,0 +1,26 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ user_friendly_names yes
+ find_multipaths yes
+ config_dir "this_gets_ignored"
+}
+
+devices {
+ device {
+ vendor "foo"
+ product "bar"
+ }
+}
+
+blacklist {
+ wwid ".*"
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/conf2.d/all_true.conf b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/conf2.d/all_true.conf
new file mode 100644
index 00000000..cf606807
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/conf2.d/all_true.conf
@@ -0,0 +1,24 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ user_friendly_names yes
+ allow_usb_devices no
+ find_multipaths yes
+ enable_foreign "^$"
+}
+
+blacklist {
+ devnode "*"
+}
+
+blacklist_exceptions {
+ wwid "^sd[a-z]"
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/conf3.d/README b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/conf3.d/README
new file mode 100644
index 00000000..c208af29
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/conf3.d/README
@@ -0,0 +1,2 @@
+This directory contains not *.conf files. This file exists so that git will
+track the directory.
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/converted_the_things.conf b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/converted_the_things.conf
new file mode 100644
index 00000000..f549b9b9
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/converted_the_things.conf
@@ -0,0 +1,23 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ user_friendly_names yes
+ find_multipaths yes
+ enable_foreign ""
+ allow_usb_devices yes
+}
+
+blacklist {
+ devnode ".*"
+}
+
+blacklist {
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/default_rhel8.conf b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/default_rhel8.conf
new file mode 100644
index 00000000..a08fae86
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/default_rhel8.conf
@@ -0,0 +1,22 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ user_friendly_names yes
+ find_multipaths yes
+ enable_foreign "^$"
+}
+
+blacklist_exceptions {
+ property "(SCSI_IDENT_|ID_WWN)"
+}
+
+blacklist {
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/empty.conf b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/empty.conf
new file mode 100644
index 00000000..e69de29b
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/empty_dir.conf b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/empty_dir.conf
new file mode 100644
index 00000000..73179b30
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/empty_dir.conf
@@ -0,0 +1,26 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ user_friendly_names yes
+ find_multipaths yes
+ config_dir "conf3.d"
+}
+
+devices {
+ device {
+ vendor "foo"
+ product "bar"
+ }
+}
+
+blacklist {
+ wwid ".*"
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/missing_dir.conf b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/missing_dir.conf
new file mode 100644
index 00000000..0b963000
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/missing_dir.conf
@@ -0,0 +1,27 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ user_friendly_names yes
+ find_multipaths yes
+ config_dir "missing"
+}
+
+devices {
+ device {
+ vendor "foo"
+ product "bar"
+ enable_foreign ""
+ }
+}
+
+blacklist {
+ wwid "*"
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/no_defaults.conf b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/no_defaults.conf
new file mode 100644
index 00000000..f7885ca8
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/no_defaults.conf
@@ -0,0 +1,1049 @@
+blacklist {
+ devnode "*"
+ device {
+ vendor "SGI"
+ product "Universal Xport"
+ }
+ device {
+ vendor "^DGC"
+ product "LUNZ"
+ }
+ wwid "*"
+ device {
+ vendor "EMC"
+ product "LUNZ"
+ }
+ device {
+ vendor "DELL"
+ product "Universal Xport"
+ }
+ protocol "*"
+ device {
+ vendor "FUJITSU"
+ product "Universal Xport"
+ }
+ device {
+ vendor "IBM"
+ product "Universal Xport"
+ }
+ device {
+ vendor "IBM"
+ product "S/390"
+ }
+ device {
+ vendor "LENOVO"
+ product "Universal Xport"
+ }
+ device {
+ vendor "(NETAPP|LSI|ENGENIO)"
+ product "Universal Xport"
+ }
+ device {
+ vendor "STK"
+ product "Universal Xport"
+ }
+ device {
+ vendor "foo"
+ product "*"
+ }
+ device {
+ vendor "SUN"
+ product "Universal Xport"
+ }
+ device {
+ vendor "(Intel|INTEL)"
+ product "VTrak V-LUN"
+ }
+ device {
+ vendor "Promise"
+ product "VTrak V-LUN"
+ }
+ device {
+ vendor "Promise"
+ product "Vess V-LUN"
+ }
+ device {
+ vendor "*"
+ product "bar"
+ }
+}
+blacklist_exceptions {
+ devnode "^sd[a-z]"
+ wwid "^3"
+ property "*"
+ protocol "scsi"
+}
+devices {
+ device {
+ vendor "NVME"
+ product "*"
+ uid_attribute "ID_WWN"
+ path_checker "none"
+ retain_attached_hw_handler "no"
+ }
+ device {
+ vendor "APPLE"
+ product "Xserve RAID"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "3PARdata"
+ product "VV"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ fast_io_fail_tmo 10
+ dev_loss_tmo "infinity"
+ vpd_vendor hp3par
+ }
+ device {
+ vendor "DEC"
+ product "HSG80"
+ path_grouping_policy "group_by_prio"
+ path_checker "hp_sw"
+ hardware_handler "1 hp_sw"
+ prio "hp_sw"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "HP"
+ product "A6189A"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "(MSA|HSV)1[01]0"
+ path_grouping_policy "group_by_prio"
+ path_checker "hp_sw"
+ hardware_handler "1 hp_sw"
+ prio "hp_sw"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "MSA VOLUME"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "(HSV1[01]1|HSV2[01]0|HSV3[046]0|HSV4[05]0)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "(MSA2[02]12fc|MSA2012i)"
+ path_grouping_policy "multibus"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "(MSA2012sa|MSA23(12|24)(fc|i|sa)|MSA2000s VOLUME)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "MSA [12]0[456]0 SA[NS]"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "HSVX700"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "LOGICAL VOLUME"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "(P2000 G3 FC|P2000G3 FC/iSCSI|P2000 G3 SAS|P2000 G3 iSCSI)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "LEFTHAND"
+ product "(P4000|iSCSIDisk|FCDISK)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "Nimble"
+ product "Server"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "SGI"
+ product "TP9100"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "SGI"
+ product "TP9[3457]00"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SGI"
+ product "IS"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SGI"
+ product "^DD[46]A-"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "DDN"
+ product "SAN DataDirector"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "DDN"
+ product "^EF3010"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "DDN"
+ product "^(EF3015|S2A|SFA)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NEXENTA"
+ product "COMSTAR"
+ path_grouping_policy "group_by_serial"
+ no_path_retry 30
+ }
+ device {
+ vendor "TEGILE"
+ product "(ZEBI-(FC|ISCSI)|INTELLIFLASH)"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "EMC"
+ product "SYMMETRIX"
+ path_grouping_policy "multibus"
+ no_path_retry 6
+ }
+ device {
+ vendor "^DGC"
+ product "^(RAID|DISK|VRAID)"
+ product_blacklist "LUNZ"
+ path_grouping_policy "group_by_prio"
+ path_checker "emc_clariion"
+ hardware_handler "1 emc"
+ prio "emc"
+ failback "immediate"
+ no_path_retry 60
+ }
+ device {
+ vendor "EMC"
+ product "Invista"
+ product_blacklist "LUNZ"
+ path_grouping_policy "multibus"
+ no_path_retry 5
+ }
+ device {
+ vendor "XtremIO"
+ product "XtremApp"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "COMPELNT"
+ product "Compellent Vol"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "DELL"
+ product "^MD3"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NVME"
+ product "^EMC PowerMax_"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "FSC"
+ product "CentricStor"
+ path_grouping_policy "group_by_serial"
+ }
+ device {
+ vendor "FUJITSU"
+ product "ETERNUS_DX(H|L|M|400|8000)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "(EUROLOGC|EuroLogc)"
+ product "FC2502"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "FUJITSU"
+ product "E[234]000"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "FUJITSU"
+ product "E[68]000"
+ path_grouping_policy "multibus"
+ no_path_retry 10
+ }
+ device {
+ vendor "FUJITSU"
+ product "ETERNUS_AHB"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "(HITACHI|HP)"
+ product "^OPEN-"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "HITACHI"
+ product "^DF"
+ path_grouping_policy "group_by_prio"
+ prio "hds"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "HITACHI"
+ product "^DF600F"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "ProFibre 4000R"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "^1722-600"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1724"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1726"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1742"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1746"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1813"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1814"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1815"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1818"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^3526"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^(3542|3552)"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^2105"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^1750500"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^2107900"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^2145"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "S/390 DASD ECKD"
+ product_blacklist "S/390"
+ path_grouping_policy "multibus"
+ uid_attribute "ID_UID"
+ path_checker "directio"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "S/390 DASD FBA"
+ product_blacklist "S/390"
+ path_grouping_policy "multibus"
+ uid_attribute "ID_UID"
+ path_checker "directio"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^IPR"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "1820N00"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(XIV|IBM)"
+ product "(NEXTRA|2810XIV)"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(TMS|IBM)"
+ product "(RamSan|FlashSystem)"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "^(DCS9900|2851)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "AIX"
+ product "VDASD"
+ path_grouping_policy "multibus"
+ no_path_retry 60
+ }
+ device {
+ vendor "IBM"
+ product "3303[ ]+NVDISK"
+ no_path_retry 60
+ }
+ device {
+ vendor "AIX"
+ product "NVDISK"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 60
+ }
+ device {
+ vendor "LENOVO"
+ product "DE_Series"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NETAPP"
+ product "LUN"
+ path_grouping_policy "group_by_prio"
+ features "2 pg_init_retries 50"
+ prio "ontap"
+ failback "immediate"
+ no_path_retry "queue"
+ flush_on_last_del "yes"
+ dev_loss_tmo "infinity"
+ user_friendly_names "no"
+ }
+ device {
+ vendor "(NETAPP|LSI|ENGENIO)"
+ product "INF-01-00"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SolidFir"
+ product "SSD SAN"
+ path_grouping_policy "multibus"
+ no_path_retry 24
+ }
+ device {
+ vendor "NVME"
+ product "^NetApp ONTAP Controller"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "NEC"
+ product "DISK ARRAY"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "^Pillar"
+ product "^Axiom"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "^Oracle"
+ product "^Oracle FS"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "STK"
+ product "BladeCtlr"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "STK"
+ product "OPENstorage"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "STK"
+ product "FLEXLINE 380"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "StorEdge 3"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "SUN"
+ product "STK6580_6780"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "CSM[12]00_R"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "LCSM100_[IEFS]"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "SUN_6180"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "ArrayStorage"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "(Sun Storage|ZFS Storage|COMSTAR)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "PIVOT3"
+ product "RAIGE VOLUME"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(NexGen|Pivot3)"
+ product "(TierStore|vSTAC)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(Intel|INTEL)"
+ product "Multi-Flex"
+ product_blacklist "VTrak V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(LIO-ORG|SUSE)"
+ product "RBD"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "DataCore"
+ product "SANmelody"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "DataCore"
+ product "Virtual Disk"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "PURE"
+ product "FlashArray"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ fast_io_fail_tmo 10
+ }
+ device {
+ vendor "HUAWEI"
+ product "XSG1"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ }
+ device {
+ vendor "KOVE"
+ product "XPD"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "NFINIDAT"
+ product "InfiniBox"
+ path_grouping_policy "group_by_prio"
+ path_selector "round-robin 0"
+ prio "alua"
+ failback 30
+ rr_weight "priorities"
+ no_path_retry "fail"
+ rr_min_io 1
+ rr_min_io_rq 1
+ flush_on_last_del "yes"
+ fast_io_fail_tmo 15
+ dev_loss_tmo 15
+ }
+ device {
+ vendor "KMNRIO"
+ product "K2"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "NEXSAN"
+ product "NXS-B0"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 15
+ }
+ device {
+ vendor "NEXSAN"
+ product "SATAB"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 15
+ }
+ device {
+ vendor "Nexsan"
+ product "(NestOS|NST5000)"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "SAN ARRAY$"
+ path_grouping_policy "group_by_serial"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "SAN ARRAY ALUA"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "CONCERTO ARRAY"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "ISE"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "IGLU DISK"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "Magnitude"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "Promise"
+ product "VTrak"
+ product_blacklist "VTrak V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "Promise"
+ product "Vess"
+ product_blacklist "Vess V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "^IFT"
+ product "*"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "foo"
+ product "bar"
+ product_blacklist "xyzzy"
+ revision "*"
+ path_grouping_policy "failover"
+ }
+ device {
+ vendor "DotHill"
+ product "SANnet"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "DotHill"
+ product "R/Evo"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "DotHill"
+ product "^DH"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "AStor"
+ product "NeoSapphire"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "INSPUR"
+ product "MCS"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "*"
+ product "plugh"
+ no_path_retry 5
+ }
+}
+overrides {
+ no_path_retry fail
+ dev_loss_tmo 45
+ allow_usb_devices yes
+}
+multipaths {
+ multipath {
+ wwid "333333330000007d0"
+ alias "test"
+ }
+ multipath {
+ wwid "33333333000001388"
+ alias "foo"
+ }
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/no_foreign.conf b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/no_foreign.conf
new file mode 100644
index 00000000..9525731c
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/no_foreign.conf
@@ -0,0 +1,1089 @@
+defaults {
+ failback "manual"
+ rr_min_io 1000
+ rr_min_io_rq 1
+ max_fds "max"
+ rr_weight "uniform"
+ queue_without_daemon "no"
+ flush_on_last_del "no"
+ user_friendly_names "yes"
+ allow_usb_devices no
+ fast_io_fail_tmo 5
+ bindings_file "/etc/multipath/bindings"
+ wwids_file "/etc/multipath/wwids"
+ prkeys_file "/etc/multipath/prkeys"
+ log_checker_err always
+ all_tg_pt "no"
+ retain_attached_hw_handler "yes"
+ detect_prio "yes"
+ detect_checker "yes"
+ force_sync "yes"
+ strict_timing "no"
+ deferred_remove "no"
+ delay_watch_checks "no"
+ delay_wait_checks "no"
+ san_path_err_threshold "no"
+ san_path_err_forget_rate "no"
+ san_path_err_recovery_time "no"
+ marginal_path_err_sample_time "no"
+ marginal_path_err_rate_threshold "no"
+ marginal_path_err_recheck_gap_time "no"
+ marginal_path_double_failed_time "no"
+ find_multipaths "on"
+ disable_changed_wwids ignored
+ remove_retries 0
+ ghost_delay "no"
+ find_multipaths_timeout -10
+ marginal_pathgroups "no"
+ recheck_wwid "no"
+}
+blacklist {
+ devnode ".*"
+ device {
+ vendor "SGI"
+ product "Universal Xport"
+ }
+ device {
+ vendor "^DGC"
+ product "LUNZ"
+ }
+ wwid "*"
+ device {
+ vendor "EMC"
+ product "LUNZ"
+ }
+ device {
+ vendor "DELL"
+ product "Universal Xport"
+ }
+ protocol "*"
+ device {
+ vendor "FUJITSU"
+ product "Universal Xport"
+ }
+ device {
+ vendor "IBM"
+ product "Universal Xport"
+ }
+ device {
+ vendor "IBM"
+ product "S/390"
+ }
+ device {
+ vendor "LENOVO"
+ product "Universal Xport"
+ }
+ device {
+ vendor "(NETAPP|LSI|ENGENIO)"
+ product "Universal Xport"
+ }
+ device {
+ vendor "STK"
+ product "Universal Xport"
+ }
+ device {
+ vendor "foo"
+ product ".*"
+ }
+ device {
+ vendor "SUN"
+ product "Universal Xport"
+ }
+ device {
+ vendor "(Intel|INTEL)"
+ product "VTrak V-LUN"
+ }
+ device {
+ vendor "Promise"
+ product "VTrak V-LUN"
+ }
+ device {
+ vendor "Promise"
+ product "Vess V-LUN"
+ }
+ device {
+ vendor "*"
+ product "bar"
+ }
+}
+blacklist_exceptions {
+ devnode "^sd[a-z]"
+ wwid "^3"
+ property "*"
+ protocol "scsi"
+}
+devices {
+ device {
+ vendor "NVME"
+ product ".*"
+ uid_attribute "ID_WWN"
+ path_checker "none"
+ enable_foreign "^$"
+ retain_attached_hw_handler "no"
+ }
+ device {
+ vendor "APPLE"
+ product "Xserve RAID"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "3PARdata"
+ product "VV"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ fast_io_fail_tmo 10
+ dev_loss_tmo "infinity"
+ vpd_vendor hp3par
+ }
+ device {
+ vendor "DEC"
+ product "HSG80"
+ path_grouping_policy "group_by_prio"
+ path_checker "hp_sw"
+ hardware_handler "1 hp_sw"
+ prio "hp_sw"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "HP"
+ product "A6189A"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "(MSA|HSV)1[01]0"
+ path_grouping_policy "group_by_prio"
+ path_checker "hp_sw"
+ hardware_handler "1 hp_sw"
+ prio "hp_sw"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "MSA VOLUME"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "(HSV1[01]1|HSV2[01]0|HSV3[046]0|HSV4[05]0)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "(MSA2[02]12fc|MSA2012i)"
+ path_grouping_policy "multibus"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "(MSA2012sa|MSA23(12|24)(fc|i|sa)|MSA2000s VOLUME)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "MSA [12]0[456]0 SA[NS]"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "HSVX700"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "LOGICAL VOLUME"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "(P2000 G3 FC|P2000G3 FC/iSCSI|P2000 G3 SAS|P2000 G3 iSCSI)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "LEFTHAND"
+ product "(P4000|iSCSIDisk|FCDISK)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "Nimble"
+ product "Server"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "SGI"
+ product "TP9100"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "SGI"
+ product "TP9[3457]00"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SGI"
+ product "IS"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SGI"
+ product "^DD[46]A-"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "DDN"
+ product "SAN DataDirector"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "DDN"
+ product "^EF3010"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "DDN"
+ product "^(EF3015|S2A|SFA)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NEXENTA"
+ product "COMSTAR"
+ path_grouping_policy "group_by_serial"
+ no_path_retry 30
+ }
+ device {
+ vendor "TEGILE"
+ product "(ZEBI-(FC|ISCSI)|INTELLIFLASH)"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "EMC"
+ product "SYMMETRIX"
+ path_grouping_policy "multibus"
+ no_path_retry 6
+ }
+ device {
+ vendor "^DGC"
+ product "^(RAID|DISK|VRAID)"
+ product_blacklist "LUNZ"
+ path_grouping_policy "group_by_prio"
+ path_checker "emc_clariion"
+ hardware_handler "1 emc"
+ prio "emc"
+ failback "immediate"
+ no_path_retry 60
+ }
+ device {
+ vendor "EMC"
+ product "Invista"
+ product_blacklist "LUNZ"
+ path_grouping_policy "multibus"
+ no_path_retry 5
+ }
+ device {
+ vendor "XtremIO"
+ product "XtremApp"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "COMPELNT"
+ product "Compellent Vol"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "DELL"
+ product "^MD3"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NVME"
+ product "^EMC PowerMax_"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "FSC"
+ product "CentricStor"
+ path_grouping_policy "group_by_serial"
+ }
+ device {
+ vendor "FUJITSU"
+ product "ETERNUS_DX(H|L|M|400|8000)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "(EUROLOGC|EuroLogc)"
+ product "FC2502"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "FUJITSU"
+ product "E[234]000"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "FUJITSU"
+ product "E[68]000"
+ path_grouping_policy "multibus"
+ no_path_retry 10
+ }
+ device {
+ vendor "FUJITSU"
+ product "ETERNUS_AHB"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "(HITACHI|HP)"
+ product "^OPEN-"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "HITACHI"
+ product "^DF"
+ path_grouping_policy "group_by_prio"
+ prio "hds"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "HITACHI"
+ product "^DF600F"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "ProFibre 4000R"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "^1722-600"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1724"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1726"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1742"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1746"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1813"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1814"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1815"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1818"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^3526"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^(3542|3552)"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^2105"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^1750500"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^2107900"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^2145"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "S/390 DASD ECKD"
+ product_blacklist "S/390"
+ path_grouping_policy "multibus"
+ uid_attribute "ID_UID"
+ path_checker "directio"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "S/390 DASD FBA"
+ product_blacklist "S/390"
+ path_grouping_policy "multibus"
+ uid_attribute "ID_UID"
+ path_checker "directio"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^IPR"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "1820N00"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(XIV|IBM)"
+ product "(NEXTRA|2810XIV)"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(TMS|IBM)"
+ product "(RamSan|FlashSystem)"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "^(DCS9900|2851)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "AIX"
+ product "VDASD"
+ path_grouping_policy "multibus"
+ no_path_retry 60
+ }
+ device {
+ vendor "IBM"
+ product "3303[ ]+NVDISK"
+ no_path_retry 60
+ }
+ device {
+ vendor "AIX"
+ product "NVDISK"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 60
+ }
+ device {
+ vendor "LENOVO"
+ product "DE_Series"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NETAPP"
+ product "LUN"
+ path_grouping_policy "group_by_prio"
+ features "2 pg_init_retries 50"
+ prio "ontap"
+ failback "immediate"
+ no_path_retry "queue"
+ flush_on_last_del "yes"
+ dev_loss_tmo "infinity"
+ user_friendly_names "no"
+ }
+ device {
+ vendor "(NETAPP|LSI|ENGENIO)"
+ product "INF-01-00"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SolidFir"
+ product "SSD SAN"
+ path_grouping_policy "multibus"
+ no_path_retry 24
+ }
+ device {
+ vendor "NVME"
+ product "^NetApp ONTAP Controller"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "NEC"
+ product "DISK ARRAY"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "^Pillar"
+ product "^Axiom"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "^Oracle"
+ product "^Oracle FS"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "STK"
+ product "BladeCtlr"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "STK"
+ product "OPENstorage"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "STK"
+ product "FLEXLINE 380"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "StorEdge 3"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "SUN"
+ product "STK6580_6780"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "CSM[12]00_R"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "LCSM100_[IEFS]"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "SUN_6180"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "ArrayStorage"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "(Sun Storage|ZFS Storage|COMSTAR)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "PIVOT3"
+ product "RAIGE VOLUME"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(NexGen|Pivot3)"
+ product "(TierStore|vSTAC)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(Intel|INTEL)"
+ product "Multi-Flex"
+ product_blacklist "VTrak V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(LIO-ORG|SUSE)"
+ product "RBD"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "DataCore"
+ product "SANmelody"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "DataCore"
+ product "Virtual Disk"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "PURE"
+ product "FlashArray"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ fast_io_fail_tmo 10
+ }
+ device {
+ vendor "HUAWEI"
+ product "XSG1"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ }
+ device {
+ vendor "KOVE"
+ product "XPD"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "NFINIDAT"
+ product "InfiniBox"
+ path_grouping_policy "group_by_prio"
+ path_selector "round-robin 0"
+ prio "alua"
+ failback 30
+ rr_weight "priorities"
+ no_path_retry "fail"
+ rr_min_io 1
+ rr_min_io_rq 1
+ flush_on_last_del "yes"
+ fast_io_fail_tmo 15
+ dev_loss_tmo 15
+ }
+ device {
+ vendor "KMNRIO"
+ product "K2"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "NEXSAN"
+ product "NXS-B0"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 15
+ }
+ device {
+ vendor "NEXSAN"
+ product "SATAB"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 15
+ }
+ device {
+ vendor "Nexsan"
+ product "(NestOS|NST5000)"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "SAN ARRAY$"
+ path_grouping_policy "group_by_serial"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "SAN ARRAY ALUA"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "CONCERTO ARRAY"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "ISE"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "IGLU DISK"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "Magnitude"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "Promise"
+ product "VTrak"
+ product_blacklist "VTrak V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "Promise"
+ product "Vess"
+ product_blacklist "Vess V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "^IFT"
+ product "*"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "foo"
+ product "bar"
+ product_blacklist "xyzzy"
+ revision ".*"
+ path_grouping_policy "failover"
+ }
+ device {
+ vendor "DotHill"
+ product "SANnet"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "DotHill"
+ product "R/Evo"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "DotHill"
+ product "^DH"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "AStor"
+ product "NeoSapphire"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "INSPUR"
+ product "MCS"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "*"
+ product "plugh"
+ no_path_retry 5
+ }
+}
+overrides {
+ no_path_retry fail
+ dev_loss_tmo 45
+}
+multipaths {
+ multipath {
+ wwid "333333330000007d0"
+ alias "test"
+ enable_foreign "^$"
+ }
+ multipath {
+ wwid "33333333000001388"
+ alias "foo"
+ }
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/not_set_dir.conf b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/not_set_dir.conf
new file mode 100644
index 00000000..681eb906
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/not_set_dir.conf
@@ -0,0 +1,27 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ user_friendly_names yes
+ find_multipaths yes
+ config_dir "conf1.d"
+}
+
+devices {
+ device {
+ vendor "foo"
+ product "bar"
+ enable_foreign ""
+ }
+}
+
+blacklist {
+ wwid "*"
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/set_in_dir.conf b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/set_in_dir.conf
new file mode 100644
index 00000000..acc068c5
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/set_in_dir.conf
@@ -0,0 +1,33 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ user_friendly_names yes
+ find_multipaths yes
+ config_dir "conf2.d"
+}
+
+devices {
+ device {
+ vendor "foo"
+ product "bar"
+ }
+}
+
+blacklist {
+ wwid ".*"
+}
+
+wwids {
+ wwid {
+ wwid "123456789"
+ alias "test"
+ }
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/two_defaults.conf b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/two_defaults.conf
new file mode 100644
index 00000000..ae59013a
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/files/two_defaults.conf
@@ -0,0 +1,26 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ user_friendly_names yes
+ find_multipaths yes
+ enable_foreign "^$"
+}
+
+blacklist_exceptions {
+ property "(SCSI_IDENT_|ID_WWN)"
+}
+
+blacklist {
+}
+
+defaults {
+ no_path_retry queue
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/test_multipath_conf_read_8to9.py b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/test_multipath_conf_read_8to9.py
new file mode 100644
index 00000000..9134e1d7
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfread/tests/test_multipath_conf_read_8to9.py
@@ -0,0 +1,144 @@
+import os
+
+from leapp.libraries.actor import multipathconfread
+from leapp.models import MultipathConfig8to9
+
+TEST_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'files')
+
+
+def build_config(pathname, config_dir, enable_foreign_exists, invalid_regexes_exist, allow_usb_exists):
+ return MultipathConfig8to9(
+ pathname=pathname,
+ config_dir=config_dir,
+ enable_foreign_exists=enable_foreign_exists,
+ invalid_regexes_exist=invalid_regexes_exist,
+ allow_usb_exists=allow_usb_exists,
+ )
+
+
+def assert_config(config, expected):
+ assert config.pathname == expected.pathname
+ assert config.config_dir == expected.config_dir
+ assert config.enable_foreign_exists == expected.enable_foreign_exists
+ assert config.invalid_regexes_exist == expected.invalid_regexes_exist
+ assert config.allow_usb_exists == expected.allow_usb_exists
+
+
+default_rhel8_conf = build_config(
+ os.path.join(TEST_DIR, 'default_rhel8.conf'), None, True, False, False)
+
+all_the_things_conf = build_config(
+ os.path.join(TEST_DIR, 'all_the_things.conf'), None, False, True, False)
+
+converted_the_things_conf = build_config(
+ os.path.join(TEST_DIR, 'converted_the_things.conf'), None, True, False, True)
+
+complicated_conf = build_config(
+ os.path.join(TEST_DIR, 'complicated.conf'), "/etc/multipath/conf.d", True, True, False)
+
+no_foreign_conf = build_config(
+ os.path.join(TEST_DIR, 'no_foreign.conf'), None, False, True, True)
+
+allow_usb_conf = build_config(
+ os.path.join(TEST_DIR, 'allow_usb.conf'), None, False, False, True)
+
+empty_conf = build_config(
+ os.path.join(TEST_DIR, 'empty.conf'), None, False, False, False)
+
+missing_dir_conf = build_config(
+ os.path.join(TEST_DIR, 'missing_dir.conf'), os.path.join(TEST_DIR, 'missing'), False, True, False)
+
+empty_dir_conf = build_config(
+ os.path.join(TEST_DIR, 'empty_dir.conf'), os.path.join(TEST_DIR, 'conf3.d'), False, False, False)
+
+not_set_dir_conf = build_config(
+ os.path.join(TEST_DIR, 'not_set_dir.conf'), os.path.join(TEST_DIR, "conf1.d"), False, True, False)
+
+empty1_conf = build_config(
+ os.path.join(TEST_DIR, 'conf1.d/empty.conf'), None, False, False, False)
+
+nothing_important_conf = build_config(
+ os.path.join(TEST_DIR, 'conf1.d/nothing_important.conf'),
+ os.path.join(TEST_DIR, 'this_gets_ignored'), False, False, False)
+
+set_in_dir_conf = build_config(
+ os.path.join(TEST_DIR, 'set_in_dir.conf'), os.path.join(TEST_DIR, "conf2.d"), False, False, False)
+
+all_true_conf = build_config(
+ os.path.join(TEST_DIR, 'conf2.d/all_true.conf'), None, True, True, True)
+
+no_defaults_conf = build_config(
+ os.path.join(TEST_DIR, 'no_defaults.conf'), None, False, True, False)
+
+two_defaults_conf = build_config(
+ os.path.join(TEST_DIR, 'two_defaults.conf'), None, True, False, False)
+
+
+def mock_parse_config(path):
+ """Convert config_dir into full pathname"""
+ conf = multipathconfread._parse_config_orig(path)
+ if not conf:
+ return None
+ if conf.config_dir:
+ conf.config_dir = os.path.join(TEST_DIR, conf.config_dir)
+ return conf
+
+
+def test_parse_config():
+ test_map = {'default_rhel8.conf': default_rhel8_conf,
+ 'all_the_things.conf': all_the_things_conf,
+ 'converted_the_things.conf': converted_the_things_conf,
+ 'complicated.conf': complicated_conf,
+ 'no_foreign.conf': no_foreign_conf,
+ 'allow_usb.conf': allow_usb_conf,
+ 'no_defaults.conf': no_defaults_conf,
+ 'two_defaults.conf': two_defaults_conf,
+ 'empty.conf': empty_conf}
+ for config_name, expected_data in test_map.items():
+ config = multipathconfread._parse_config(os.path.join(TEST_DIR, config_name))
+ assert config
+ assert_config(config, expected_data)
+
+
+def test_get_facts_missing_dir(monkeypatch):
+ monkeypatch.setattr(multipathconfread, '_parse_config_orig', multipathconfread._parse_config, raising=False)
+ monkeypatch.setattr(multipathconfread, '_parse_config', mock_parse_config)
+
+ facts = multipathconfread.get_multipath_conf_facts(os.path.join(TEST_DIR, 'missing_dir.conf'))
+ assert facts
+ assert len(facts.configs) == 1
+ assert_config(facts.configs[0], missing_dir_conf)
+
+
+def test_get_facts_empty_dir(monkeypatch):
+ monkeypatch.setattr(multipathconfread, '_parse_config_orig', multipathconfread._parse_config, raising=False)
+ monkeypatch.setattr(multipathconfread, '_parse_config', mock_parse_config)
+
+ facts = multipathconfread.get_multipath_conf_facts(os.path.join(TEST_DIR, 'empty_dir.conf'))
+ assert facts
+ assert len(facts.configs) == 1
+ assert_config(facts.configs[0], empty_dir_conf)
+
+
+def test_get_facts_not_set_dir(monkeypatch):
+ monkeypatch.setattr(multipathconfread, '_parse_config_orig', multipathconfread._parse_config, raising=False)
+ monkeypatch.setattr(multipathconfread, '_parse_config', mock_parse_config)
+
+ expected_configs = (not_set_dir_conf, empty1_conf, nothing_important_conf)
+ facts = multipathconfread.get_multipath_conf_facts(os.path.join(TEST_DIR, 'not_set_dir.conf'))
+ assert facts
+ assert len(facts.configs) == 3
+ for i in range(len(facts.configs)):
+ assert_config(facts.configs[i], expected_configs[i])
+
+
+def test_get_facts_set_in_dir(monkeypatch):
+ monkeypatch.setattr(multipathconfread, '_parse_config_orig', multipathconfread._parse_config, raising=False)
+ monkeypatch.setattr(multipathconfread, '_parse_config', mock_parse_config)
+
+ expected_configs = (set_in_dir_conf, all_true_conf)
+ facts = multipathconfread.get_multipath_conf_facts(os.path.join(TEST_DIR, 'set_in_dir.conf'))
+ assert facts
+ assert len(facts.configs) == 2
+ for i in range(len(facts.configs)):
+ assert_config(facts.configs[i], expected_configs[i])
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/actor.py b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/actor.py
new file mode 100644
index 00000000..6c3ef41b
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/actor.py
@@ -0,0 +1,27 @@
+from leapp.actors import Actor
+from leapp.libraries.actor import multipathconfupdate
+from leapp.models import MultipathConfFacts8to9
+from leapp.tags import ApplicationsPhaseTag, IPUWorkflowTag
+
+
+class MultipathConfUpdate8to9(Actor):
+ """
+ Modifies multipath configuration files on the target RHEL-9 system so that
+ they will run properly. This is done in three ways
+ 1. Adding the allow_usb_devices and enable_foreign options to
+ /etc/multipath.conf if they are not present, to retain RHEL-8 behavior
+ 2. Converting any "*" regular expression strings to ".*"
+ """
+
+ name = 'multipath_conf_update_8to9'
+ consumes = (MultipathConfFacts8to9,)
+ produces = ()
+ tags = (ApplicationsPhaseTag, IPUWorkflowTag)
+
+ def process(self):
+ facts = next(self.consume(MultipathConfFacts8to9), None)
+ if facts is None:
+ self.log.debug('Skipping execution. No MultipathConfFacts8to9 has '
+ 'been produced')
+ return
+ multipathconfupdate.update_configs(facts)
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/libraries/multipathconfupdate.py b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/libraries/multipathconfupdate.py
new file mode 100644
index 00000000..9e49d78f
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/libraries/multipathconfupdate.py
@@ -0,0 +1,86 @@
+from leapp.libraries.common import multipathutil
+
+_regexes = ('vendor', 'product', 'revision', 'product_blacklist', 'devnode',
+ 'wwid', 'property', 'protocol')
+
+
+def _update_config(need_foreign, need_allow_usb, config):
+ if not (need_foreign or need_allow_usb or config.invalid_regexes_exist):
+ return None
+ contents = multipathutil.read_config(config.pathname)
+ if contents is None:
+ return None
+ lines = contents.split('\n')
+
+ section = None
+ in_subsection = False
+ updated_file = False
+ defaults_start = -1
+ for i, line in enumerate(lines):
+ try:
+ data = multipathutil.LineData(line, section, in_subsection)
+ except ValueError:
+ continue
+ if data.type == data.TYPE_SECTION_END:
+ if in_subsection:
+ in_subsection = False
+ elif section is not None:
+ section = None
+ elif data.type == data.TYPE_SECTION_START:
+ if section is None:
+ section = data.section
+ if section == 'defaults':
+ defaults_start = i + 1
+ elif not in_subsection:
+ in_subsection = True
+ elif data.type == data.TYPE_OPTION:
+ if section == 'defaults':
+ if data.option == 'enable_foreign':
+ need_foreign = False
+ elif data.option == 'allow_usb_devices':
+ need_allow_usb = False
+ if data.option in _regexes and data.value == '*':
+ lines[i] = line.replace('*', '.*', 1)
+ lines[i] += ' # line modified by Leapp'
+ updated_file = True
+
+ if need_foreign or need_allow_usb:
+ updated_file = True
+ if defaults_start < 0:
+ if in_subsection:
+ lines.append('\t} # line added by Leapp')
+ if section is not None:
+ lines.append('} # line added by Leapp')
+ lines.append('defaults { # section added by Leapp')
+ if need_foreign:
+ lines.append('\tenable_foreign ""')
+ if need_allow_usb:
+ lines.append('\tallow_usb_devices yes')
+ lines.append('}')
+ lines.append('')
+ else:
+ if need_allow_usb:
+ lines.insert(defaults_start, '\tallow_usb_devices yes # line added by Leapp')
+ if need_foreign:
+ lines.insert(defaults_start, '\tenable_foreign "" # line added by Leapp')
+
+ if not updated_file:
+ return None
+
+ contents = '\n'.join(lines)
+ return contents
+
+
+def update_configs(facts):
+ need_foreign = not any(x for x in facts.configs if x.enable_foreign_exists)
+ need_allow_usb = not any(x for x in facts.configs if x.allow_usb_exists)
+ for config in facts.configs:
+ contents = _update_config(need_foreign, need_allow_usb, config)
+ need_foreign = False
+ need_allow_usb = False
+ """
+ foreign_exists and allow_usb_exists only matter for the main
+ config file.
+ """
+ if contents:
+ multipathutil.write_config(config.pathname, contents)
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/all_the_things.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/all_the_things.conf
new file mode 100644
index 00000000..eb07d503
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/all_the_things.conf
@@ -0,0 +1,23 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ enable_foreign "" # line added by Leapp
+ allow_usb_devices yes # line added by Leapp
+ user_friendly_names yes
+ find_multipaths yes
+}
+
+blacklist {
+ devnode ".*" # line modified by Leapp
+}
+
+blacklist {
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/allow_usb.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/allow_usb.conf
new file mode 100644
index 00000000..e7a9c23e
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/allow_usb.conf
@@ -0,0 +1,1079 @@
+defaults {
+ enable_foreign "" # line added by Leapp
+ verbosity 2
+ flush_on_last_del "no"
+ user_friendly_names "yes"
+ fast_io_fail_tmo 5
+ bindings_file "/etc/multipath/bindings"
+ wwids_file "/etc/multipath/wwids"
+ prkeys_file "/etc/multipath/prkeys"
+ log_checker_err always
+ all_tg_pt "no"
+ retain_attached_hw_handler "yes"
+ detect_prio "yes"
+ detect_checker "yes"
+ force_sync "yes"
+ strict_timing "no"
+ deferred_remove "no"
+ find_multipaths "on"
+ uxsock_timeout 4000
+ retrigger_tries 0
+ retrigger_delay 10
+ missing_uev_wait_timeout 30
+ skip_kpartx "no"
+ disable_changed_wwids ignored
+ remove_retries 0
+ ghost_delay "no"
+ find_multipaths_timeout -10
+ marginal_pathgroups "no"
+ recheck_wwid "no"
+ allow_usb_devices yes
+}
+blacklist {
+ devnode ".*"
+ device {
+ vendor "SGI"
+ product "Universal Xport"
+ }
+ device {
+ vendor "^DGC"
+ product "LUNZ"
+ }
+ wwid ".*"
+ device {
+ vendor "EMC"
+ product "LUNZ"
+ }
+ device {
+ vendor "DELL"
+ product "Universal Xport"
+ }
+ protocol ".*"
+ device {
+ vendor "FUJITSU"
+ product "Universal Xport"
+ }
+ device {
+ vendor "IBM"
+ product "Universal Xport"
+ }
+ device {
+ vendor "IBM"
+ product "S/390"
+ }
+ device {
+ vendor "LENOVO"
+ product "Universal Xport"
+ }
+ device {
+ vendor "(NETAPP|LSI|ENGENIO)"
+ product "Universal Xport"
+ }
+ device {
+ vendor "STK"
+ product "Universal Xport"
+ }
+ device {
+ vendor "foo"
+ product ".*"
+ }
+ device {
+ vendor "SUN"
+ product "Universal Xport"
+ }
+ device {
+ vendor "(Intel|INTEL)"
+ product "VTrak V-LUN"
+ }
+ device {
+ vendor "Promise"
+ product "VTrak V-LUN"
+ }
+ device {
+ vendor "Promise"
+ product "Vess V-LUN"
+ }
+ device {
+ vendor ".*"
+ product "bar"
+ }
+}
+blacklist_exceptions {
+ devnode "^sd[a-z]"
+ wwid "^3"
+ property ".*"
+ protocol "scsi"
+}
+devices {
+ device {
+ vendor "NVME"
+ product ".*"
+ uid_attribute "ID_WWN"
+ path_checker "none"
+ retain_attached_hw_handler "no"
+ }
+ device {
+ vendor "APPLE"
+ product "Xserve RAID"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "3PARdata"
+ product "VV"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ fast_io_fail_tmo 10
+ dev_loss_tmo "infinity"
+ vpd_vendor hp3par
+ }
+ device {
+ vendor "DEC"
+ product "HSG80"
+ path_grouping_policy "group_by_prio"
+ path_checker "hp_sw"
+ hardware_handler "1 hp_sw"
+ prio "hp_sw"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "HP"
+ product "A6189A"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "(MSA|HSV)1[01]0"
+ path_grouping_policy "group_by_prio"
+ path_checker "hp_sw"
+ hardware_handler "1 hp_sw"
+ prio "hp_sw"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "MSA VOLUME"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "(HSV1[01]1|HSV2[01]0|HSV3[046]0|HSV4[05]0)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "(MSA2[02]12fc|MSA2012i)"
+ path_grouping_policy "multibus"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "(MSA2012sa|MSA23(12|24)(fc|i|sa)|MSA2000s VOLUME)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "MSA [12]0[456]0 SA[NS]"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "HSVX700"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "LOGICAL VOLUME"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "(P2000 G3 FC|P2000G3 FC/iSCSI|P2000 G3 SAS|P2000 G3 iSCSI)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "LEFTHAND"
+ product "(P4000|iSCSIDisk|FCDISK)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "Nimble"
+ product "Server"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "SGI"
+ product "TP9100"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "SGI"
+ product "TP9[3457]00"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SGI"
+ product "IS"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SGI"
+ product "^DD[46]A-"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "DDN"
+ product "SAN DataDirector"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "DDN"
+ product "^EF3010"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "DDN"
+ product "^(EF3015|S2A|SFA)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NEXENTA"
+ product "COMSTAR"
+ path_grouping_policy "group_by_serial"
+ no_path_retry 30
+ }
+ device {
+ vendor "TEGILE"
+ product "(ZEBI-(FC|ISCSI)|INTELLIFLASH)"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "EMC"
+ product "SYMMETRIX"
+ path_grouping_policy "multibus"
+ no_path_retry 6
+ }
+ device {
+ vendor "^DGC"
+ product "^(RAID|DISK|VRAID)"
+ product_blacklist "LUNZ"
+ path_grouping_policy "group_by_prio"
+ path_checker "emc_clariion"
+ hardware_handler "1 emc"
+ prio "emc"
+ failback "immediate"
+ no_path_retry 60
+ }
+ device {
+ vendor "EMC"
+ product "Invista"
+ product_blacklist "LUNZ"
+ path_grouping_policy "multibus"
+ no_path_retry 5
+ }
+ device {
+ vendor "XtremIO"
+ product "XtremApp"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "COMPELNT"
+ product "Compellent Vol"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "DELL"
+ product "^MD3"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NVME"
+ product "^EMC PowerMax_"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "FSC"
+ product "CentricStor"
+ path_grouping_policy "group_by_serial"
+ }
+ device {
+ vendor "FUJITSU"
+ product "ETERNUS_DX(H|L|M|400|8000)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "(EUROLOGC|EuroLogc)"
+ product "FC2502"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "FUJITSU"
+ product "E[234]000"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "FUJITSU"
+ product "E[68]000"
+ path_grouping_policy "multibus"
+ no_path_retry 10
+ }
+ device {
+ vendor "FUJITSU"
+ product "ETERNUS_AHB"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "(HITACHI|HP)"
+ product "^OPEN-"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "HITACHI"
+ product "^DF"
+ path_grouping_policy "group_by_prio"
+ prio "hds"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "HITACHI"
+ product "^DF600F"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "ProFibre 4000R"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "^1722-600"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1724"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1726"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1742"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1746"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1813"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1814"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1815"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1818"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^3526"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^(3542|3552)"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^2105"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^1750500"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^2107900"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^2145"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "S/390 DASD ECKD"
+ product_blacklist "S/390"
+ path_grouping_policy "multibus"
+ uid_attribute "ID_UID"
+ path_checker "directio"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "S/390 DASD FBA"
+ product_blacklist "S/390"
+ path_grouping_policy "multibus"
+ uid_attribute "ID_UID"
+ path_checker "directio"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^IPR"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "1820N00"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(XIV|IBM)"
+ product "(NEXTRA|2810XIV)"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(TMS|IBM)"
+ product "(RamSan|FlashSystem)"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "^(DCS9900|2851)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "AIX"
+ product "VDASD"
+ path_grouping_policy "multibus"
+ no_path_retry 60
+ }
+ device {
+ vendor "IBM"
+ product "3303[ ]+NVDISK"
+ no_path_retry 60
+ }
+ device {
+ vendor "AIX"
+ product "NVDISK"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 60
+ }
+ device {
+ vendor "LENOVO"
+ product "DE_Series"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NETAPP"
+ product "LUN"
+ path_grouping_policy "group_by_prio"
+ features "2 pg_init_retries 50"
+ prio "ontap"
+ failback "immediate"
+ no_path_retry "queue"
+ flush_on_last_del "yes"
+ dev_loss_tmo "infinity"
+ user_friendly_names "no"
+ }
+ device {
+ vendor "(NETAPP|LSI|ENGENIO)"
+ product "INF-01-00"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SolidFir"
+ product "SSD SAN"
+ path_grouping_policy "multibus"
+ no_path_retry 24
+ }
+ device {
+ vendor "NVME"
+ product "^NetApp ONTAP Controller"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "NEC"
+ product "DISK ARRAY"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "^Pillar"
+ product "^Axiom"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "^Oracle"
+ product "^Oracle FS"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "STK"
+ product "BladeCtlr"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "STK"
+ product "OPENstorage"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "STK"
+ product "FLEXLINE 380"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "StorEdge 3"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "SUN"
+ product "STK6580_6780"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "CSM[12]00_R"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "LCSM100_[IEFS]"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "SUN_6180"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "ArrayStorage"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "(Sun Storage|ZFS Storage|COMSTAR)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "PIVOT3"
+ product "RAIGE VOLUME"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(NexGen|Pivot3)"
+ product "(TierStore|vSTAC)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(Intel|INTEL)"
+ product "Multi-Flex"
+ product_blacklist "VTrak V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(LIO-ORG|SUSE)"
+ product "RBD"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "DataCore"
+ product "SANmelody"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "DataCore"
+ product "Virtual Disk"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "PURE"
+ product "FlashArray"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ fast_io_fail_tmo 10
+ }
+ device {
+ vendor "HUAWEI"
+ product "XSG1"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ }
+ device {
+ vendor "KOVE"
+ product "XPD"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "NFINIDAT"
+ product "InfiniBox"
+ path_grouping_policy "group_by_prio"
+ path_selector "round-robin 0"
+ prio "alua"
+ failback 30
+ rr_weight "priorities"
+ no_path_retry "fail"
+ rr_min_io 1
+ rr_min_io_rq 1
+ flush_on_last_del "yes"
+ fast_io_fail_tmo 15
+ dev_loss_tmo 15
+ }
+ device {
+ vendor "KMNRIO"
+ product "K2"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "NEXSAN"
+ product "NXS-B0"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 15
+ }
+ device {
+ vendor "NEXSAN"
+ product "SATAB"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 15
+ }
+ device {
+ vendor "Nexsan"
+ product "(NestOS|NST5000)"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "SAN ARRAY$"
+ path_grouping_policy "group_by_serial"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "SAN ARRAY ALUA"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "CONCERTO ARRAY"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "ISE"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "IGLU DISK"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "Magnitude"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "Promise"
+ product "VTrak"
+ product_blacklist "VTrak V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "Promise"
+ product "Vess"
+ product_blacklist "Vess V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "^IFT"
+ product ".*"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "foo"
+ product "bar"
+ product_blacklist "xyzzy"
+ revision ".*"
+ path_grouping_policy "failover"
+ }
+ device {
+ vendor "DotHill"
+ product "SANnet"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "DotHill"
+ product "R/Evo"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "DotHill"
+ product "^DH"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "AStor"
+ product "NeoSapphire"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "INSPUR"
+ product "MCS"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor ".*"
+ product "plugh"
+ no_path_retry 5
+ }
+}
+overrides {
+ no_path_retry fail
+ dev_loss_tmo 45
+}
+multipaths {
+ multipath {
+ wwid "333333330000007d0"
+ alias "test"
+ }
+ multipath {
+ wwid "33333333000001388"
+ alias "foo"
+ }
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/complicated.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/complicated.conf
new file mode 100644
index 00000000..cbfaf801
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/complicated.conf
@@ -0,0 +1,1108 @@
+defaults {
+ allow_usb_devices yes # line added by Leapp
+ verbosity 2
+ polling_interval 5
+ max_polling_interval 20
+ reassign_maps "no"
+ multipath_dir "/lib64/multipath"
+ path_selector "service-time 0"
+ path_grouping_policy "failover"
+ uid_attribute "ID_SERIAL"
+ prio "const"
+ prio_args ""
+ features "0"
+ path_checker "tur"
+ alias_prefix "mpath"
+ failback "manual"
+ rr_min_io 1000
+ rr_min_io_rq 1
+ max_fds "max"
+ rr_weight "uniform"
+ queue_without_daemon "no"
+ flush_on_last_del "no"
+ user_friendly_names "yes"
+ fast_io_fail_tmo 5
+ bindings_file "/etc/multipath/bindings"
+ wwids_file "/etc/multipath/wwids"
+ prkeys_file "/etc/multipath/prkeys"
+ log_checker_err always
+ all_tg_pt "no"
+ retain_attached_hw_handler "yes"
+ detect_prio "yes"
+ detect_checker "yes"
+ force_sync "yes"
+ strict_timing "no"
+ deferred_remove "no"
+ config_dir "/etc/multipath/conf.d"
+ delay_watch_checks "no"
+ delay_wait_checks "no"
+ san_path_err_threshold "no"
+ san_path_err_forget_rate "no"
+ san_path_err_recovery_time "no"
+ marginal_path_err_sample_time "no"
+ marginal_path_err_rate_threshold "no"
+ marginal_path_err_recheck_gap_time "no"
+ marginal_path_double_failed_time "no"
+ find_multipaths "on"
+ uxsock_timeout 4000
+ retrigger_tries 0
+ retrigger_delay 10
+ missing_uev_wait_timeout 30
+ skip_kpartx "no"
+ disable_changed_wwids ignored
+ remove_retries 0
+ ghost_delay "no"
+ find_multipaths_timeout -10
+ enable_foreign "^$"
+ marginal_pathgroups "no"
+ recheck_wwid "no"
+}
+blacklist {
+ devnode ".*" # line modified by Leapp
+ device {
+ vendor "SGI"
+ product "Universal Xport"
+ }
+ device {
+ vendor "^DGC"
+ product "LUNZ"
+ }
+ wwid ".*"
+ device {
+ vendor "EMC"
+ product "LUNZ"
+ }
+ device {
+ vendor "DELL"
+ product "Universal Xport"
+ }
+ protocol ".*" # line modified by Leapp
+ device {
+ vendor "FUJITSU"
+ product "Universal Xport"
+ }
+ device {
+ vendor "IBM"
+ product "Universal Xport"
+ }
+ device {
+ vendor "IBM"
+ product "S/390"
+ }
+ device {
+ vendor "LENOVO"
+ product "Universal Xport"
+ }
+ device {
+ vendor "(NETAPP|LSI|ENGENIO)"
+ product "Universal Xport"
+ }
+ device {
+ vendor "STK"
+ product "Universal Xport"
+ }
+ device {
+ vendor "foo"
+ product ".*"
+ }
+ device {
+ vendor "SUN"
+ product "Universal Xport"
+ }
+ device {
+ vendor "(Intel|INTEL)"
+ product "VTrak V-LUN"
+ }
+ device {
+ vendor "Promise"
+ product "VTrak V-LUN"
+ }
+ device {
+ vendor "Promise"
+ product "Vess V-LUN"
+ }
+ device {
+ vendor ".*" # line modified by Leapp
+ product "bar"
+ }
+}
+blacklist_exceptions {
+ devnode "^sd[a-z]"
+ wwid "^3"
+ property ".*"
+ protocol "scsi"
+}
+devices {
+ device {
+ vendor "NVME"
+ product ".*" # line modified by Leapp
+ uid_attribute "ID_WWN"
+ path_checker "none"
+ retain_attached_hw_handler "no"
+ }
+ device {
+ vendor "APPLE"
+ product "Xserve RAID"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "3PARdata"
+ product "VV"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ fast_io_fail_tmo 10
+ dev_loss_tmo "infinity"
+ vpd_vendor hp3par
+ }
+ device {
+ vendor "DEC"
+ product "HSG80"
+ path_grouping_policy "group_by_prio"
+ path_checker "hp_sw"
+ hardware_handler "1 hp_sw"
+ prio "hp_sw"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "HP"
+ product "A6189A"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "(MSA|HSV)1[01]0"
+ path_grouping_policy "group_by_prio"
+ path_checker "hp_sw"
+ hardware_handler "1 hp_sw"
+ prio "hp_sw"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "MSA VOLUME"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "(HSV1[01]1|HSV2[01]0|HSV3[046]0|HSV4[05]0)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "(MSA2[02]12fc|MSA2012i)"
+ path_grouping_policy "multibus"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "(MSA2012sa|MSA23(12|24)(fc|i|sa)|MSA2000s VOLUME)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "MSA [12]0[456]0 SA[NS]"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "HSVX700"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "LOGICAL VOLUME"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "(P2000 G3 FC|P2000G3 FC/iSCSI|P2000 G3 SAS|P2000 G3 iSCSI)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "LEFTHAND"
+ product "(P4000|iSCSIDisk|FCDISK)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "Nimble"
+ product "Server"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "SGI"
+ product "TP9100"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "SGI"
+ product "TP9[3457]00"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SGI"
+ product "IS"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SGI"
+ product "^DD[46]A-"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "DDN"
+ product "SAN DataDirector"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "DDN"
+ product "^EF3010"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "DDN"
+ product "^(EF3015|S2A|SFA)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NEXENTA"
+ product "COMSTAR"
+ path_grouping_policy "group_by_serial"
+ no_path_retry 30
+ }
+ device {
+ vendor "TEGILE"
+ product "(ZEBI-(FC|ISCSI)|INTELLIFLASH)"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "EMC"
+ product "SYMMETRIX"
+ path_grouping_policy "multibus"
+ no_path_retry 6
+ }
+ device {
+ vendor "^DGC"
+ product "^(RAID|DISK|VRAID)"
+ product_blacklist "LUNZ"
+ path_grouping_policy "group_by_prio"
+ path_checker "emc_clariion"
+ hardware_handler "1 emc"
+ prio "emc"
+ failback "immediate"
+ no_path_retry 60
+ }
+ device {
+ vendor "EMC"
+ product "Invista"
+ product_blacklist "LUNZ"
+ path_grouping_policy "multibus"
+ no_path_retry 5
+ }
+ device {
+ vendor "XtremIO"
+ product "XtremApp"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "COMPELNT"
+ product "Compellent Vol"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "DELL"
+ product "^MD3"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NVME"
+ product "^EMC PowerMax_"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "FSC"
+ product "CentricStor"
+ path_grouping_policy "group_by_serial"
+ }
+ device {
+ vendor "FUJITSU"
+ product "ETERNUS_DX(H|L|M|400|8000)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "(EUROLOGC|EuroLogc)"
+ product "FC2502"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "FUJITSU"
+ product "E[234]000"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "FUJITSU"
+ product "E[68]000"
+ path_grouping_policy "multibus"
+ no_path_retry 10
+ }
+ device {
+ vendor "FUJITSU"
+ product "ETERNUS_AHB"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "(HITACHI|HP)"
+ product "^OPEN-"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "HITACHI"
+ product "^DF"
+ path_grouping_policy "group_by_prio"
+ prio "hds"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "HITACHI"
+ product "^DF600F"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "ProFibre 4000R"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "^1722-600"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1724"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1726"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1742"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1746"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1813"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1814"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1815"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1818"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^3526"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^(3542|3552)"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^2105"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^1750500"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^2107900"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^2145"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "S/390 DASD ECKD"
+ product_blacklist "S/390"
+ path_grouping_policy "multibus"
+ uid_attribute "ID_UID"
+ path_checker "directio"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "S/390 DASD FBA"
+ product_blacklist "S/390"
+ path_grouping_policy "multibus"
+ uid_attribute "ID_UID"
+ path_checker "directio"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^IPR"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "1820N00"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(XIV|IBM)"
+ product "(NEXTRA|2810XIV)"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(TMS|IBM)"
+ product "(RamSan|FlashSystem)"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "^(DCS9900|2851)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "AIX"
+ product "VDASD"
+ path_grouping_policy "multibus"
+ no_path_retry 60
+ }
+ device {
+ vendor "IBM"
+ product "3303[ ]+NVDISK"
+ no_path_retry 60
+ }
+ device {
+ vendor "AIX"
+ product "NVDISK"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 60
+ }
+ device {
+ vendor "LENOVO"
+ product "DE_Series"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NETAPP"
+ product "LUN"
+ path_grouping_policy "group_by_prio"
+ features "2 pg_init_retries 50"
+ prio "ontap"
+ failback "immediate"
+ no_path_retry "queue"
+ flush_on_last_del "yes"
+ dev_loss_tmo "infinity"
+ user_friendly_names "no"
+ }
+ device {
+ vendor "(NETAPP|LSI|ENGENIO)"
+ product "INF-01-00"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SolidFir"
+ product "SSD SAN"
+ path_grouping_policy "multibus"
+ no_path_retry 24
+ }
+ device {
+ vendor "NVME"
+ product "^NetApp ONTAP Controller"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "NEC"
+ product "DISK ARRAY"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "^Pillar"
+ product "^Axiom"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "^Oracle"
+ product "^Oracle FS"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "STK"
+ product "BladeCtlr"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "STK"
+ product "OPENstorage"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "STK"
+ product "FLEXLINE 380"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "StorEdge 3"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "SUN"
+ product "STK6580_6780"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "CSM[12]00_R"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "LCSM100_[IEFS]"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "SUN_6180"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "ArrayStorage"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "(Sun Storage|ZFS Storage|COMSTAR)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "PIVOT3"
+ product "RAIGE VOLUME"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(NexGen|Pivot3)"
+ product "(TierStore|vSTAC)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(Intel|INTEL)"
+ product "Multi-Flex"
+ product_blacklist "VTrak V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(LIO-ORG|SUSE)"
+ product "RBD"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "DataCore"
+ product "SANmelody"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "DataCore"
+ product "Virtual Disk"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "PURE"
+ product "FlashArray"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ fast_io_fail_tmo 10
+ }
+ device {
+ vendor "HUAWEI"
+ product "XSG1"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ }
+ device {
+ vendor "KOVE"
+ product "XPD"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "NFINIDAT"
+ product "InfiniBox"
+ path_grouping_policy "group_by_prio"
+ path_selector "round-robin 0"
+ prio "alua"
+ failback 30
+ rr_weight "priorities"
+ no_path_retry "fail"
+ rr_min_io 1
+ rr_min_io_rq 1
+ flush_on_last_del "yes"
+ fast_io_fail_tmo 15
+ dev_loss_tmo 15
+ }
+ device {
+ vendor "KMNRIO"
+ product "K2"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "NEXSAN"
+ product "NXS-B0"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 15
+ }
+ device {
+ vendor "NEXSAN"
+ product "SATAB"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 15
+ }
+ device {
+ vendor "Nexsan"
+ product "(NestOS|NST5000)"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "SAN ARRAY$"
+ path_grouping_policy "group_by_serial"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "SAN ARRAY ALUA"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "CONCERTO ARRAY"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "ISE"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "IGLU DISK"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "Magnitude"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "Promise"
+ product "VTrak"
+ product_blacklist "VTrak V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "Promise"
+ product "Vess"
+ product_blacklist "Vess V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "^IFT"
+ product ".*"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "foo"
+ product "bar"
+ product_blacklist "xyzzy"
+ revision ".*" # line modified by Leapp
+ path_grouping_policy "failover"
+ }
+ device {
+ vendor "DotHill"
+ product "SANnet"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "DotHill"
+ product "R/Evo"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "DotHill"
+ product "^DH"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "AStor"
+ product "NeoSapphire"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "INSPUR"
+ product "MCS"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor ".*" # line modified by Leapp
+ product "plugh"
+ no_path_retry 5
+ }
+}
+overrides {
+ no_path_retry fail
+ dev_loss_tmo 45
+ allow_usb_devices yes
+}
+multipaths {
+ multipath {
+ wwid "333333330000007d0"
+ alias "test"
+ }
+ multipath {
+ wwid "33333333000001388"
+ alias "foo"
+ }
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/conf2.d/all_true.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/conf2.d/all_true.conf
new file mode 100644
index 00000000..0e3991ae
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/conf2.d/all_true.conf
@@ -0,0 +1,24 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ user_friendly_names yes
+ allow_usb_devices no
+ find_multipaths yes
+ enable_foreign "^$"
+}
+
+blacklist {
+ devnode ".*" # line modified by Leapp
+}
+
+blacklist_exceptions {
+ wwid "^sd[a-z]"
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/default_rhel8.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/default_rhel8.conf
new file mode 100644
index 00000000..ea083d1c
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/default_rhel8.conf
@@ -0,0 +1,23 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ allow_usb_devices yes # line added by Leapp
+ user_friendly_names yes
+ find_multipaths yes
+ enable_foreign "^$"
+}
+
+blacklist_exceptions {
+ property "(SCSI_IDENT_|ID_WWN)"
+}
+
+blacklist {
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/empty.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/empty.conf
new file mode 100644
index 00000000..ecbd72cf
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/empty.conf
@@ -0,0 +1,5 @@
+
+defaults { # section added by Leapp
+ enable_foreign ""
+ allow_usb_devices yes
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/empty_dir.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/empty_dir.conf
new file mode 100644
index 00000000..39e714db
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/empty_dir.conf
@@ -0,0 +1,28 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ enable_foreign "" # line added by Leapp
+ allow_usb_devices yes # line added by Leapp
+ user_friendly_names yes
+ find_multipaths yes
+ config_dir "conf3.d"
+}
+
+devices {
+ device {
+ vendor "foo"
+ product "bar"
+ }
+}
+
+blacklist {
+ wwid ".*"
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/missing_dir.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/missing_dir.conf
new file mode 100644
index 00000000..c3e7599e
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/missing_dir.conf
@@ -0,0 +1,29 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ enable_foreign "" # line added by Leapp
+ allow_usb_devices yes # line added by Leapp
+ user_friendly_names yes
+ find_multipaths yes
+ config_dir "missing"
+}
+
+devices {
+ device {
+ vendor "foo"
+ product "bar"
+ enable_foreign ""
+ }
+}
+
+blacklist {
+ wwid ".*" # line modified by Leapp
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/no_defaults.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/no_defaults.conf
new file mode 100644
index 00000000..02d7c1a2
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/no_defaults.conf
@@ -0,0 +1,1054 @@
+blacklist {
+ devnode ".*" # line modified by Leapp
+ device {
+ vendor "SGI"
+ product "Universal Xport"
+ }
+ device {
+ vendor "^DGC"
+ product "LUNZ"
+ }
+ wwid ".*" # line modified by Leapp
+ device {
+ vendor "EMC"
+ product "LUNZ"
+ }
+ device {
+ vendor "DELL"
+ product "Universal Xport"
+ }
+ protocol ".*" # line modified by Leapp
+ device {
+ vendor "FUJITSU"
+ product "Universal Xport"
+ }
+ device {
+ vendor "IBM"
+ product "Universal Xport"
+ }
+ device {
+ vendor "IBM"
+ product "S/390"
+ }
+ device {
+ vendor "LENOVO"
+ product "Universal Xport"
+ }
+ device {
+ vendor "(NETAPP|LSI|ENGENIO)"
+ product "Universal Xport"
+ }
+ device {
+ vendor "STK"
+ product "Universal Xport"
+ }
+ device {
+ vendor "foo"
+ product ".*" # line modified by Leapp
+ }
+ device {
+ vendor "SUN"
+ product "Universal Xport"
+ }
+ device {
+ vendor "(Intel|INTEL)"
+ product "VTrak V-LUN"
+ }
+ device {
+ vendor "Promise"
+ product "VTrak V-LUN"
+ }
+ device {
+ vendor "Promise"
+ product "Vess V-LUN"
+ }
+ device {
+ vendor ".*" # line modified by Leapp
+ product "bar"
+ }
+}
+blacklist_exceptions {
+ devnode "^sd[a-z]"
+ wwid "^3"
+ property ".*" # line modified by Leapp
+ protocol "scsi"
+}
+devices {
+ device {
+ vendor "NVME"
+ product ".*" # line modified by Leapp
+ uid_attribute "ID_WWN"
+ path_checker "none"
+ retain_attached_hw_handler "no"
+ }
+ device {
+ vendor "APPLE"
+ product "Xserve RAID"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "3PARdata"
+ product "VV"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ fast_io_fail_tmo 10
+ dev_loss_tmo "infinity"
+ vpd_vendor hp3par
+ }
+ device {
+ vendor "DEC"
+ product "HSG80"
+ path_grouping_policy "group_by_prio"
+ path_checker "hp_sw"
+ hardware_handler "1 hp_sw"
+ prio "hp_sw"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "HP"
+ product "A6189A"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "(MSA|HSV)1[01]0"
+ path_grouping_policy "group_by_prio"
+ path_checker "hp_sw"
+ hardware_handler "1 hp_sw"
+ prio "hp_sw"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "MSA VOLUME"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "(HSV1[01]1|HSV2[01]0|HSV3[046]0|HSV4[05]0)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "(MSA2[02]12fc|MSA2012i)"
+ path_grouping_policy "multibus"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "(MSA2012sa|MSA23(12|24)(fc|i|sa)|MSA2000s VOLUME)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "MSA [12]0[456]0 SA[NS]"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "HSVX700"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "LOGICAL VOLUME"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "(P2000 G3 FC|P2000G3 FC/iSCSI|P2000 G3 SAS|P2000 G3 iSCSI)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "LEFTHAND"
+ product "(P4000|iSCSIDisk|FCDISK)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "Nimble"
+ product "Server"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "SGI"
+ product "TP9100"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "SGI"
+ product "TP9[3457]00"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SGI"
+ product "IS"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SGI"
+ product "^DD[46]A-"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "DDN"
+ product "SAN DataDirector"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "DDN"
+ product "^EF3010"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "DDN"
+ product "^(EF3015|S2A|SFA)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NEXENTA"
+ product "COMSTAR"
+ path_grouping_policy "group_by_serial"
+ no_path_retry 30
+ }
+ device {
+ vendor "TEGILE"
+ product "(ZEBI-(FC|ISCSI)|INTELLIFLASH)"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "EMC"
+ product "SYMMETRIX"
+ path_grouping_policy "multibus"
+ no_path_retry 6
+ }
+ device {
+ vendor "^DGC"
+ product "^(RAID|DISK|VRAID)"
+ product_blacklist "LUNZ"
+ path_grouping_policy "group_by_prio"
+ path_checker "emc_clariion"
+ hardware_handler "1 emc"
+ prio "emc"
+ failback "immediate"
+ no_path_retry 60
+ }
+ device {
+ vendor "EMC"
+ product "Invista"
+ product_blacklist "LUNZ"
+ path_grouping_policy "multibus"
+ no_path_retry 5
+ }
+ device {
+ vendor "XtremIO"
+ product "XtremApp"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "COMPELNT"
+ product "Compellent Vol"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "DELL"
+ product "^MD3"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NVME"
+ product "^EMC PowerMax_"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "FSC"
+ product "CentricStor"
+ path_grouping_policy "group_by_serial"
+ }
+ device {
+ vendor "FUJITSU"
+ product "ETERNUS_DX(H|L|M|400|8000)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "(EUROLOGC|EuroLogc)"
+ product "FC2502"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "FUJITSU"
+ product "E[234]000"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "FUJITSU"
+ product "E[68]000"
+ path_grouping_policy "multibus"
+ no_path_retry 10
+ }
+ device {
+ vendor "FUJITSU"
+ product "ETERNUS_AHB"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "(HITACHI|HP)"
+ product "^OPEN-"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "HITACHI"
+ product "^DF"
+ path_grouping_policy "group_by_prio"
+ prio "hds"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "HITACHI"
+ product "^DF600F"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "ProFibre 4000R"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "^1722-600"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1724"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1726"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1742"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1746"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1813"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1814"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1815"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1818"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^3526"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^(3542|3552)"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^2105"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^1750500"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^2107900"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^2145"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "S/390 DASD ECKD"
+ product_blacklist "S/390"
+ path_grouping_policy "multibus"
+ uid_attribute "ID_UID"
+ path_checker "directio"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "S/390 DASD FBA"
+ product_blacklist "S/390"
+ path_grouping_policy "multibus"
+ uid_attribute "ID_UID"
+ path_checker "directio"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^IPR"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "1820N00"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(XIV|IBM)"
+ product "(NEXTRA|2810XIV)"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(TMS|IBM)"
+ product "(RamSan|FlashSystem)"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "^(DCS9900|2851)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "AIX"
+ product "VDASD"
+ path_grouping_policy "multibus"
+ no_path_retry 60
+ }
+ device {
+ vendor "IBM"
+ product "3303[ ]+NVDISK"
+ no_path_retry 60
+ }
+ device {
+ vendor "AIX"
+ product "NVDISK"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 60
+ }
+ device {
+ vendor "LENOVO"
+ product "DE_Series"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NETAPP"
+ product "LUN"
+ path_grouping_policy "group_by_prio"
+ features "2 pg_init_retries 50"
+ prio "ontap"
+ failback "immediate"
+ no_path_retry "queue"
+ flush_on_last_del "yes"
+ dev_loss_tmo "infinity"
+ user_friendly_names "no"
+ }
+ device {
+ vendor "(NETAPP|LSI|ENGENIO)"
+ product "INF-01-00"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SolidFir"
+ product "SSD SAN"
+ path_grouping_policy "multibus"
+ no_path_retry 24
+ }
+ device {
+ vendor "NVME"
+ product "^NetApp ONTAP Controller"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "NEC"
+ product "DISK ARRAY"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "^Pillar"
+ product "^Axiom"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "^Oracle"
+ product "^Oracle FS"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "STK"
+ product "BladeCtlr"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "STK"
+ product "OPENstorage"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "STK"
+ product "FLEXLINE 380"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "StorEdge 3"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "SUN"
+ product "STK6580_6780"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "CSM[12]00_R"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "LCSM100_[IEFS]"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "SUN_6180"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "ArrayStorage"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "(Sun Storage|ZFS Storage|COMSTAR)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "PIVOT3"
+ product "RAIGE VOLUME"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(NexGen|Pivot3)"
+ product "(TierStore|vSTAC)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(Intel|INTEL)"
+ product "Multi-Flex"
+ product_blacklist "VTrak V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(LIO-ORG|SUSE)"
+ product "RBD"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "DataCore"
+ product "SANmelody"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "DataCore"
+ product "Virtual Disk"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "PURE"
+ product "FlashArray"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ fast_io_fail_tmo 10
+ }
+ device {
+ vendor "HUAWEI"
+ product "XSG1"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ }
+ device {
+ vendor "KOVE"
+ product "XPD"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "NFINIDAT"
+ product "InfiniBox"
+ path_grouping_policy "group_by_prio"
+ path_selector "round-robin 0"
+ prio "alua"
+ failback 30
+ rr_weight "priorities"
+ no_path_retry "fail"
+ rr_min_io 1
+ rr_min_io_rq 1
+ flush_on_last_del "yes"
+ fast_io_fail_tmo 15
+ dev_loss_tmo 15
+ }
+ device {
+ vendor "KMNRIO"
+ product "K2"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "NEXSAN"
+ product "NXS-B0"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 15
+ }
+ device {
+ vendor "NEXSAN"
+ product "SATAB"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 15
+ }
+ device {
+ vendor "Nexsan"
+ product "(NestOS|NST5000)"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "SAN ARRAY$"
+ path_grouping_policy "group_by_serial"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "SAN ARRAY ALUA"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "CONCERTO ARRAY"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "ISE"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "IGLU DISK"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "Magnitude"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "Promise"
+ product "VTrak"
+ product_blacklist "VTrak V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "Promise"
+ product "Vess"
+ product_blacklist "Vess V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "^IFT"
+ product ".*" # line modified by Leapp
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "foo"
+ product "bar"
+ product_blacklist "xyzzy"
+ revision ".*" # line modified by Leapp
+ path_grouping_policy "failover"
+ }
+ device {
+ vendor "DotHill"
+ product "SANnet"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "DotHill"
+ product "R/Evo"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "DotHill"
+ product "^DH"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "AStor"
+ product "NeoSapphire"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "INSPUR"
+ product "MCS"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor ".*" # line modified by Leapp
+ product "plugh"
+ no_path_retry 5
+ }
+}
+overrides {
+ no_path_retry fail
+ dev_loss_tmo 45
+ allow_usb_devices yes
+}
+multipaths {
+ multipath {
+ wwid "333333330000007d0"
+ alias "test"
+ }
+ multipath {
+ wwid "33333333000001388"
+ alias "foo"
+ }
+}
+
+defaults { # section added by Leapp
+ enable_foreign ""
+ allow_usb_devices yes
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/no_foreign.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/no_foreign.conf
new file mode 100644
index 00000000..9abffc40
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/no_foreign.conf
@@ -0,0 +1,1090 @@
+defaults {
+ enable_foreign "" # line added by Leapp
+ failback "manual"
+ rr_min_io 1000
+ rr_min_io_rq 1
+ max_fds "max"
+ rr_weight "uniform"
+ queue_without_daemon "no"
+ flush_on_last_del "no"
+ user_friendly_names "yes"
+ allow_usb_devices no
+ fast_io_fail_tmo 5
+ bindings_file "/etc/multipath/bindings"
+ wwids_file "/etc/multipath/wwids"
+ prkeys_file "/etc/multipath/prkeys"
+ log_checker_err always
+ all_tg_pt "no"
+ retain_attached_hw_handler "yes"
+ detect_prio "yes"
+ detect_checker "yes"
+ force_sync "yes"
+ strict_timing "no"
+ deferred_remove "no"
+ delay_watch_checks "no"
+ delay_wait_checks "no"
+ san_path_err_threshold "no"
+ san_path_err_forget_rate "no"
+ san_path_err_recovery_time "no"
+ marginal_path_err_sample_time "no"
+ marginal_path_err_rate_threshold "no"
+ marginal_path_err_recheck_gap_time "no"
+ marginal_path_double_failed_time "no"
+ find_multipaths "on"
+ disable_changed_wwids ignored
+ remove_retries 0
+ ghost_delay "no"
+ find_multipaths_timeout -10
+ marginal_pathgroups "no"
+ recheck_wwid "no"
+}
+blacklist {
+ devnode ".*"
+ device {
+ vendor "SGI"
+ product "Universal Xport"
+ }
+ device {
+ vendor "^DGC"
+ product "LUNZ"
+ }
+ wwid ".*" # line modified by Leapp
+ device {
+ vendor "EMC"
+ product "LUNZ"
+ }
+ device {
+ vendor "DELL"
+ product "Universal Xport"
+ }
+ protocol ".*" # line modified by Leapp
+ device {
+ vendor "FUJITSU"
+ product "Universal Xport"
+ }
+ device {
+ vendor "IBM"
+ product "Universal Xport"
+ }
+ device {
+ vendor "IBM"
+ product "S/390"
+ }
+ device {
+ vendor "LENOVO"
+ product "Universal Xport"
+ }
+ device {
+ vendor "(NETAPP|LSI|ENGENIO)"
+ product "Universal Xport"
+ }
+ device {
+ vendor "STK"
+ product "Universal Xport"
+ }
+ device {
+ vendor "foo"
+ product ".*"
+ }
+ device {
+ vendor "SUN"
+ product "Universal Xport"
+ }
+ device {
+ vendor "(Intel|INTEL)"
+ product "VTrak V-LUN"
+ }
+ device {
+ vendor "Promise"
+ product "VTrak V-LUN"
+ }
+ device {
+ vendor "Promise"
+ product "Vess V-LUN"
+ }
+ device {
+ vendor ".*" # line modified by Leapp
+ product "bar"
+ }
+}
+blacklist_exceptions {
+ devnode "^sd[a-z]"
+ wwid "^3"
+ property ".*" # line modified by Leapp
+ protocol "scsi"
+}
+devices {
+ device {
+ vendor "NVME"
+ product ".*"
+ uid_attribute "ID_WWN"
+ path_checker "none"
+ enable_foreign "^$"
+ retain_attached_hw_handler "no"
+ }
+ device {
+ vendor "APPLE"
+ product "Xserve RAID"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "3PARdata"
+ product "VV"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ fast_io_fail_tmo 10
+ dev_loss_tmo "infinity"
+ vpd_vendor hp3par
+ }
+ device {
+ vendor "DEC"
+ product "HSG80"
+ path_grouping_policy "group_by_prio"
+ path_checker "hp_sw"
+ hardware_handler "1 hp_sw"
+ prio "hp_sw"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "HP"
+ product "A6189A"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "(MSA|HSV)1[01]0"
+ path_grouping_policy "group_by_prio"
+ path_checker "hp_sw"
+ hardware_handler "1 hp_sw"
+ prio "hp_sw"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "MSA VOLUME"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "(HSV1[01]1|HSV2[01]0|HSV3[046]0|HSV4[05]0)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "(MSA2[02]12fc|MSA2012i)"
+ path_grouping_policy "multibus"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "(MSA2012sa|MSA23(12|24)(fc|i|sa)|MSA2000s VOLUME)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "MSA [12]0[456]0 SA[NS]"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "HSVX700"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "LOGICAL VOLUME"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "(P2000 G3 FC|P2000G3 FC/iSCSI|P2000 G3 SAS|P2000 G3 iSCSI)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "LEFTHAND"
+ product "(P4000|iSCSIDisk|FCDISK)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "Nimble"
+ product "Server"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "SGI"
+ product "TP9100"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "SGI"
+ product "TP9[3457]00"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SGI"
+ product "IS"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SGI"
+ product "^DD[46]A-"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "DDN"
+ product "SAN DataDirector"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "DDN"
+ product "^EF3010"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "DDN"
+ product "^(EF3015|S2A|SFA)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NEXENTA"
+ product "COMSTAR"
+ path_grouping_policy "group_by_serial"
+ no_path_retry 30
+ }
+ device {
+ vendor "TEGILE"
+ product "(ZEBI-(FC|ISCSI)|INTELLIFLASH)"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "EMC"
+ product "SYMMETRIX"
+ path_grouping_policy "multibus"
+ no_path_retry 6
+ }
+ device {
+ vendor "^DGC"
+ product "^(RAID|DISK|VRAID)"
+ product_blacklist "LUNZ"
+ path_grouping_policy "group_by_prio"
+ path_checker "emc_clariion"
+ hardware_handler "1 emc"
+ prio "emc"
+ failback "immediate"
+ no_path_retry 60
+ }
+ device {
+ vendor "EMC"
+ product "Invista"
+ product_blacklist "LUNZ"
+ path_grouping_policy "multibus"
+ no_path_retry 5
+ }
+ device {
+ vendor "XtremIO"
+ product "XtremApp"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "COMPELNT"
+ product "Compellent Vol"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "DELL"
+ product "^MD3"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NVME"
+ product "^EMC PowerMax_"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "FSC"
+ product "CentricStor"
+ path_grouping_policy "group_by_serial"
+ }
+ device {
+ vendor "FUJITSU"
+ product "ETERNUS_DX(H|L|M|400|8000)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "(EUROLOGC|EuroLogc)"
+ product "FC2502"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "FUJITSU"
+ product "E[234]000"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "FUJITSU"
+ product "E[68]000"
+ path_grouping_policy "multibus"
+ no_path_retry 10
+ }
+ device {
+ vendor "FUJITSU"
+ product "ETERNUS_AHB"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "(HITACHI|HP)"
+ product "^OPEN-"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "HITACHI"
+ product "^DF"
+ path_grouping_policy "group_by_prio"
+ prio "hds"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "HITACHI"
+ product "^DF600F"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "ProFibre 4000R"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "^1722-600"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1724"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1726"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1742"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1746"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1813"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1814"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1815"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1818"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^3526"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^(3542|3552)"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^2105"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^1750500"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^2107900"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^2145"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "S/390 DASD ECKD"
+ product_blacklist "S/390"
+ path_grouping_policy "multibus"
+ uid_attribute "ID_UID"
+ path_checker "directio"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "S/390 DASD FBA"
+ product_blacklist "S/390"
+ path_grouping_policy "multibus"
+ uid_attribute "ID_UID"
+ path_checker "directio"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^IPR"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "1820N00"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(XIV|IBM)"
+ product "(NEXTRA|2810XIV)"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(TMS|IBM)"
+ product "(RamSan|FlashSystem)"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "^(DCS9900|2851)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "AIX"
+ product "VDASD"
+ path_grouping_policy "multibus"
+ no_path_retry 60
+ }
+ device {
+ vendor "IBM"
+ product "3303[ ]+NVDISK"
+ no_path_retry 60
+ }
+ device {
+ vendor "AIX"
+ product "NVDISK"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 60
+ }
+ device {
+ vendor "LENOVO"
+ product "DE_Series"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NETAPP"
+ product "LUN"
+ path_grouping_policy "group_by_prio"
+ features "2 pg_init_retries 50"
+ prio "ontap"
+ failback "immediate"
+ no_path_retry "queue"
+ flush_on_last_del "yes"
+ dev_loss_tmo "infinity"
+ user_friendly_names "no"
+ }
+ device {
+ vendor "(NETAPP|LSI|ENGENIO)"
+ product "INF-01-00"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SolidFir"
+ product "SSD SAN"
+ path_grouping_policy "multibus"
+ no_path_retry 24
+ }
+ device {
+ vendor "NVME"
+ product "^NetApp ONTAP Controller"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "NEC"
+ product "DISK ARRAY"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "^Pillar"
+ product "^Axiom"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "^Oracle"
+ product "^Oracle FS"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "STK"
+ product "BladeCtlr"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "STK"
+ product "OPENstorage"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "STK"
+ product "FLEXLINE 380"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "StorEdge 3"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "SUN"
+ product "STK6580_6780"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "CSM[12]00_R"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "LCSM100_[IEFS]"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "SUN_6180"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "ArrayStorage"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "(Sun Storage|ZFS Storage|COMSTAR)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "PIVOT3"
+ product "RAIGE VOLUME"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(NexGen|Pivot3)"
+ product "(TierStore|vSTAC)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(Intel|INTEL)"
+ product "Multi-Flex"
+ product_blacklist "VTrak V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(LIO-ORG|SUSE)"
+ product "RBD"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "DataCore"
+ product "SANmelody"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "DataCore"
+ product "Virtual Disk"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "PURE"
+ product "FlashArray"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ fast_io_fail_tmo 10
+ }
+ device {
+ vendor "HUAWEI"
+ product "XSG1"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ }
+ device {
+ vendor "KOVE"
+ product "XPD"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "NFINIDAT"
+ product "InfiniBox"
+ path_grouping_policy "group_by_prio"
+ path_selector "round-robin 0"
+ prio "alua"
+ failback 30
+ rr_weight "priorities"
+ no_path_retry "fail"
+ rr_min_io 1
+ rr_min_io_rq 1
+ flush_on_last_del "yes"
+ fast_io_fail_tmo 15
+ dev_loss_tmo 15
+ }
+ device {
+ vendor "KMNRIO"
+ product "K2"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "NEXSAN"
+ product "NXS-B0"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 15
+ }
+ device {
+ vendor "NEXSAN"
+ product "SATAB"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 15
+ }
+ device {
+ vendor "Nexsan"
+ product "(NestOS|NST5000)"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "SAN ARRAY$"
+ path_grouping_policy "group_by_serial"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "SAN ARRAY ALUA"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "CONCERTO ARRAY"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "ISE"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "IGLU DISK"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "Magnitude"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "Promise"
+ product "VTrak"
+ product_blacklist "VTrak V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "Promise"
+ product "Vess"
+ product_blacklist "Vess V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "^IFT"
+ product ".*" # line modified by Leapp
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "foo"
+ product "bar"
+ product_blacklist "xyzzy"
+ revision ".*"
+ path_grouping_policy "failover"
+ }
+ device {
+ vendor "DotHill"
+ product "SANnet"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "DotHill"
+ product "R/Evo"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "DotHill"
+ product "^DH"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "AStor"
+ product "NeoSapphire"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "INSPUR"
+ product "MCS"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor ".*" # line modified by Leapp
+ product "plugh"
+ no_path_retry 5
+ }
+}
+overrides {
+ no_path_retry fail
+ dev_loss_tmo 45
+}
+multipaths {
+ multipath {
+ wwid "333333330000007d0"
+ alias "test"
+ enable_foreign "^$"
+ }
+ multipath {
+ wwid "33333333000001388"
+ alias "foo"
+ }
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/not_set_dir.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/not_set_dir.conf
new file mode 100644
index 00000000..189da997
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/not_set_dir.conf
@@ -0,0 +1,29 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ enable_foreign "" # line added by Leapp
+ allow_usb_devices yes # line added by Leapp
+ user_friendly_names yes
+ find_multipaths yes
+ config_dir "conf1.d"
+}
+
+devices {
+ device {
+ vendor "foo"
+ product "bar"
+ enable_foreign ""
+ }
+}
+
+blacklist {
+ wwid ".*" # line modified by Leapp
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/two_defaults.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/two_defaults.conf
new file mode 100644
index 00000000..29549849
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/after/two_defaults.conf
@@ -0,0 +1,27 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ user_friendly_names yes
+ find_multipaths yes
+ enable_foreign "^$"
+}
+
+blacklist_exceptions {
+ property "(SCSI_IDENT_|ID_WWN)"
+}
+
+blacklist {
+}
+
+defaults {
+ allow_usb_devices yes # line added by Leapp
+ no_path_retry queue
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/all_the_things.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/all_the_things.conf
new file mode 100644
index 00000000..263cdf9e
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/all_the_things.conf
@@ -0,0 +1,21 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ user_friendly_names yes
+ find_multipaths yes
+}
+
+blacklist {
+ devnode "*"
+}
+
+blacklist {
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/allow_usb.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/allow_usb.conf
new file mode 100644
index 00000000..57b6f97b
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/allow_usb.conf
@@ -0,0 +1,1078 @@
+defaults {
+ verbosity 2
+ flush_on_last_del "no"
+ user_friendly_names "yes"
+ fast_io_fail_tmo 5
+ bindings_file "/etc/multipath/bindings"
+ wwids_file "/etc/multipath/wwids"
+ prkeys_file "/etc/multipath/prkeys"
+ log_checker_err always
+ all_tg_pt "no"
+ retain_attached_hw_handler "yes"
+ detect_prio "yes"
+ detect_checker "yes"
+ force_sync "yes"
+ strict_timing "no"
+ deferred_remove "no"
+ find_multipaths "on"
+ uxsock_timeout 4000
+ retrigger_tries 0
+ retrigger_delay 10
+ missing_uev_wait_timeout 30
+ skip_kpartx "no"
+ disable_changed_wwids ignored
+ remove_retries 0
+ ghost_delay "no"
+ find_multipaths_timeout -10
+ marginal_pathgroups "no"
+ recheck_wwid "no"
+ allow_usb_devices yes
+}
+blacklist {
+ devnode ".*"
+ device {
+ vendor "SGI"
+ product "Universal Xport"
+ }
+ device {
+ vendor "^DGC"
+ product "LUNZ"
+ }
+ wwid ".*"
+ device {
+ vendor "EMC"
+ product "LUNZ"
+ }
+ device {
+ vendor "DELL"
+ product "Universal Xport"
+ }
+ protocol ".*"
+ device {
+ vendor "FUJITSU"
+ product "Universal Xport"
+ }
+ device {
+ vendor "IBM"
+ product "Universal Xport"
+ }
+ device {
+ vendor "IBM"
+ product "S/390"
+ }
+ device {
+ vendor "LENOVO"
+ product "Universal Xport"
+ }
+ device {
+ vendor "(NETAPP|LSI|ENGENIO)"
+ product "Universal Xport"
+ }
+ device {
+ vendor "STK"
+ product "Universal Xport"
+ }
+ device {
+ vendor "foo"
+ product ".*"
+ }
+ device {
+ vendor "SUN"
+ product "Universal Xport"
+ }
+ device {
+ vendor "(Intel|INTEL)"
+ product "VTrak V-LUN"
+ }
+ device {
+ vendor "Promise"
+ product "VTrak V-LUN"
+ }
+ device {
+ vendor "Promise"
+ product "Vess V-LUN"
+ }
+ device {
+ vendor ".*"
+ product "bar"
+ }
+}
+blacklist_exceptions {
+ devnode "^sd[a-z]"
+ wwid "^3"
+ property ".*"
+ protocol "scsi"
+}
+devices {
+ device {
+ vendor "NVME"
+ product ".*"
+ uid_attribute "ID_WWN"
+ path_checker "none"
+ retain_attached_hw_handler "no"
+ }
+ device {
+ vendor "APPLE"
+ product "Xserve RAID"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "3PARdata"
+ product "VV"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ fast_io_fail_tmo 10
+ dev_loss_tmo "infinity"
+ vpd_vendor hp3par
+ }
+ device {
+ vendor "DEC"
+ product "HSG80"
+ path_grouping_policy "group_by_prio"
+ path_checker "hp_sw"
+ hardware_handler "1 hp_sw"
+ prio "hp_sw"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "HP"
+ product "A6189A"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "(MSA|HSV)1[01]0"
+ path_grouping_policy "group_by_prio"
+ path_checker "hp_sw"
+ hardware_handler "1 hp_sw"
+ prio "hp_sw"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "MSA VOLUME"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "(HSV1[01]1|HSV2[01]0|HSV3[046]0|HSV4[05]0)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "(MSA2[02]12fc|MSA2012i)"
+ path_grouping_policy "multibus"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "(MSA2012sa|MSA23(12|24)(fc|i|sa)|MSA2000s VOLUME)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "MSA [12]0[456]0 SA[NS]"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "HSVX700"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "LOGICAL VOLUME"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "(P2000 G3 FC|P2000G3 FC/iSCSI|P2000 G3 SAS|P2000 G3 iSCSI)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "LEFTHAND"
+ product "(P4000|iSCSIDisk|FCDISK)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "Nimble"
+ product "Server"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "SGI"
+ product "TP9100"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "SGI"
+ product "TP9[3457]00"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SGI"
+ product "IS"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SGI"
+ product "^DD[46]A-"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "DDN"
+ product "SAN DataDirector"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "DDN"
+ product "^EF3010"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "DDN"
+ product "^(EF3015|S2A|SFA)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NEXENTA"
+ product "COMSTAR"
+ path_grouping_policy "group_by_serial"
+ no_path_retry 30
+ }
+ device {
+ vendor "TEGILE"
+ product "(ZEBI-(FC|ISCSI)|INTELLIFLASH)"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "EMC"
+ product "SYMMETRIX"
+ path_grouping_policy "multibus"
+ no_path_retry 6
+ }
+ device {
+ vendor "^DGC"
+ product "^(RAID|DISK|VRAID)"
+ product_blacklist "LUNZ"
+ path_grouping_policy "group_by_prio"
+ path_checker "emc_clariion"
+ hardware_handler "1 emc"
+ prio "emc"
+ failback "immediate"
+ no_path_retry 60
+ }
+ device {
+ vendor "EMC"
+ product "Invista"
+ product_blacklist "LUNZ"
+ path_grouping_policy "multibus"
+ no_path_retry 5
+ }
+ device {
+ vendor "XtremIO"
+ product "XtremApp"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "COMPELNT"
+ product "Compellent Vol"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "DELL"
+ product "^MD3"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NVME"
+ product "^EMC PowerMax_"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "FSC"
+ product "CentricStor"
+ path_grouping_policy "group_by_serial"
+ }
+ device {
+ vendor "FUJITSU"
+ product "ETERNUS_DX(H|L|M|400|8000)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "(EUROLOGC|EuroLogc)"
+ product "FC2502"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "FUJITSU"
+ product "E[234]000"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "FUJITSU"
+ product "E[68]000"
+ path_grouping_policy "multibus"
+ no_path_retry 10
+ }
+ device {
+ vendor "FUJITSU"
+ product "ETERNUS_AHB"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "(HITACHI|HP)"
+ product "^OPEN-"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "HITACHI"
+ product "^DF"
+ path_grouping_policy "group_by_prio"
+ prio "hds"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "HITACHI"
+ product "^DF600F"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "ProFibre 4000R"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "^1722-600"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1724"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1726"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1742"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1746"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1813"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1814"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1815"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1818"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^3526"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^(3542|3552)"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^2105"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^1750500"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^2107900"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^2145"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "S/390 DASD ECKD"
+ product_blacklist "S/390"
+ path_grouping_policy "multibus"
+ uid_attribute "ID_UID"
+ path_checker "directio"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "S/390 DASD FBA"
+ product_blacklist "S/390"
+ path_grouping_policy "multibus"
+ uid_attribute "ID_UID"
+ path_checker "directio"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^IPR"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "1820N00"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(XIV|IBM)"
+ product "(NEXTRA|2810XIV)"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(TMS|IBM)"
+ product "(RamSan|FlashSystem)"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "^(DCS9900|2851)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "AIX"
+ product "VDASD"
+ path_grouping_policy "multibus"
+ no_path_retry 60
+ }
+ device {
+ vendor "IBM"
+ product "3303[ ]+NVDISK"
+ no_path_retry 60
+ }
+ device {
+ vendor "AIX"
+ product "NVDISK"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 60
+ }
+ device {
+ vendor "LENOVO"
+ product "DE_Series"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NETAPP"
+ product "LUN"
+ path_grouping_policy "group_by_prio"
+ features "2 pg_init_retries 50"
+ prio "ontap"
+ failback "immediate"
+ no_path_retry "queue"
+ flush_on_last_del "yes"
+ dev_loss_tmo "infinity"
+ user_friendly_names "no"
+ }
+ device {
+ vendor "(NETAPP|LSI|ENGENIO)"
+ product "INF-01-00"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SolidFir"
+ product "SSD SAN"
+ path_grouping_policy "multibus"
+ no_path_retry 24
+ }
+ device {
+ vendor "NVME"
+ product "^NetApp ONTAP Controller"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "NEC"
+ product "DISK ARRAY"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "^Pillar"
+ product "^Axiom"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "^Oracle"
+ product "^Oracle FS"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "STK"
+ product "BladeCtlr"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "STK"
+ product "OPENstorage"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "STK"
+ product "FLEXLINE 380"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "StorEdge 3"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "SUN"
+ product "STK6580_6780"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "CSM[12]00_R"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "LCSM100_[IEFS]"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "SUN_6180"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "ArrayStorage"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "(Sun Storage|ZFS Storage|COMSTAR)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "PIVOT3"
+ product "RAIGE VOLUME"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(NexGen|Pivot3)"
+ product "(TierStore|vSTAC)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(Intel|INTEL)"
+ product "Multi-Flex"
+ product_blacklist "VTrak V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(LIO-ORG|SUSE)"
+ product "RBD"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "DataCore"
+ product "SANmelody"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "DataCore"
+ product "Virtual Disk"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "PURE"
+ product "FlashArray"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ fast_io_fail_tmo 10
+ }
+ device {
+ vendor "HUAWEI"
+ product "XSG1"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ }
+ device {
+ vendor "KOVE"
+ product "XPD"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "NFINIDAT"
+ product "InfiniBox"
+ path_grouping_policy "group_by_prio"
+ path_selector "round-robin 0"
+ prio "alua"
+ failback 30
+ rr_weight "priorities"
+ no_path_retry "fail"
+ rr_min_io 1
+ rr_min_io_rq 1
+ flush_on_last_del "yes"
+ fast_io_fail_tmo 15
+ dev_loss_tmo 15
+ }
+ device {
+ vendor "KMNRIO"
+ product "K2"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "NEXSAN"
+ product "NXS-B0"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 15
+ }
+ device {
+ vendor "NEXSAN"
+ product "SATAB"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 15
+ }
+ device {
+ vendor "Nexsan"
+ product "(NestOS|NST5000)"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "SAN ARRAY$"
+ path_grouping_policy "group_by_serial"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "SAN ARRAY ALUA"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "CONCERTO ARRAY"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "ISE"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "IGLU DISK"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "Magnitude"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "Promise"
+ product "VTrak"
+ product_blacklist "VTrak V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "Promise"
+ product "Vess"
+ product_blacklist "Vess V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "^IFT"
+ product ".*"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "foo"
+ product "bar"
+ product_blacklist "xyzzy"
+ revision ".*"
+ path_grouping_policy "failover"
+ }
+ device {
+ vendor "DotHill"
+ product "SANnet"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "DotHill"
+ product "R/Evo"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "DotHill"
+ product "^DH"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "AStor"
+ product "NeoSapphire"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "INSPUR"
+ product "MCS"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor ".*"
+ product "plugh"
+ no_path_retry 5
+ }
+}
+overrides {
+ no_path_retry fail
+ dev_loss_tmo 45
+}
+multipaths {
+ multipath {
+ wwid "333333330000007d0"
+ alias "test"
+ }
+ multipath {
+ wwid "33333333000001388"
+ alias "foo"
+ }
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/complicated.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/complicated.conf
new file mode 100644
index 00000000..23d93ecf
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/complicated.conf
@@ -0,0 +1,1107 @@
+defaults {
+ verbosity 2
+ polling_interval 5
+ max_polling_interval 20
+ reassign_maps "no"
+ multipath_dir "/lib64/multipath"
+ path_selector "service-time 0"
+ path_grouping_policy "failover"
+ uid_attribute "ID_SERIAL"
+ prio "const"
+ prio_args ""
+ features "0"
+ path_checker "tur"
+ alias_prefix "mpath"
+ failback "manual"
+ rr_min_io 1000
+ rr_min_io_rq 1
+ max_fds "max"
+ rr_weight "uniform"
+ queue_without_daemon "no"
+ flush_on_last_del "no"
+ user_friendly_names "yes"
+ fast_io_fail_tmo 5
+ bindings_file "/etc/multipath/bindings"
+ wwids_file "/etc/multipath/wwids"
+ prkeys_file "/etc/multipath/prkeys"
+ log_checker_err always
+ all_tg_pt "no"
+ retain_attached_hw_handler "yes"
+ detect_prio "yes"
+ detect_checker "yes"
+ force_sync "yes"
+ strict_timing "no"
+ deferred_remove "no"
+ config_dir "/etc/multipath/conf.d"
+ delay_watch_checks "no"
+ delay_wait_checks "no"
+ san_path_err_threshold "no"
+ san_path_err_forget_rate "no"
+ san_path_err_recovery_time "no"
+ marginal_path_err_sample_time "no"
+ marginal_path_err_rate_threshold "no"
+ marginal_path_err_recheck_gap_time "no"
+ marginal_path_double_failed_time "no"
+ find_multipaths "on"
+ uxsock_timeout 4000
+ retrigger_tries 0
+ retrigger_delay 10
+ missing_uev_wait_timeout 30
+ skip_kpartx "no"
+ disable_changed_wwids ignored
+ remove_retries 0
+ ghost_delay "no"
+ find_multipaths_timeout -10
+ enable_foreign "^$"
+ marginal_pathgroups "no"
+ recheck_wwid "no"
+}
+blacklist {
+ devnode "*"
+ device {
+ vendor "SGI"
+ product "Universal Xport"
+ }
+ device {
+ vendor "^DGC"
+ product "LUNZ"
+ }
+ wwid ".*"
+ device {
+ vendor "EMC"
+ product "LUNZ"
+ }
+ device {
+ vendor "DELL"
+ product "Universal Xport"
+ }
+ protocol "*"
+ device {
+ vendor "FUJITSU"
+ product "Universal Xport"
+ }
+ device {
+ vendor "IBM"
+ product "Universal Xport"
+ }
+ device {
+ vendor "IBM"
+ product "S/390"
+ }
+ device {
+ vendor "LENOVO"
+ product "Universal Xport"
+ }
+ device {
+ vendor "(NETAPP|LSI|ENGENIO)"
+ product "Universal Xport"
+ }
+ device {
+ vendor "STK"
+ product "Universal Xport"
+ }
+ device {
+ vendor "foo"
+ product ".*"
+ }
+ device {
+ vendor "SUN"
+ product "Universal Xport"
+ }
+ device {
+ vendor "(Intel|INTEL)"
+ product "VTrak V-LUN"
+ }
+ device {
+ vendor "Promise"
+ product "VTrak V-LUN"
+ }
+ device {
+ vendor "Promise"
+ product "Vess V-LUN"
+ }
+ device {
+ vendor "*"
+ product "bar"
+ }
+}
+blacklist_exceptions {
+ devnode "^sd[a-z]"
+ wwid "^3"
+ property ".*"
+ protocol "scsi"
+}
+devices {
+ device {
+ vendor "NVME"
+ product "*"
+ uid_attribute "ID_WWN"
+ path_checker "none"
+ retain_attached_hw_handler "no"
+ }
+ device {
+ vendor "APPLE"
+ product "Xserve RAID"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "3PARdata"
+ product "VV"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ fast_io_fail_tmo 10
+ dev_loss_tmo "infinity"
+ vpd_vendor hp3par
+ }
+ device {
+ vendor "DEC"
+ product "HSG80"
+ path_grouping_policy "group_by_prio"
+ path_checker "hp_sw"
+ hardware_handler "1 hp_sw"
+ prio "hp_sw"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "HP"
+ product "A6189A"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "(MSA|HSV)1[01]0"
+ path_grouping_policy "group_by_prio"
+ path_checker "hp_sw"
+ hardware_handler "1 hp_sw"
+ prio "hp_sw"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "MSA VOLUME"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "(HSV1[01]1|HSV2[01]0|HSV3[046]0|HSV4[05]0)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "(MSA2[02]12fc|MSA2012i)"
+ path_grouping_policy "multibus"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "(MSA2012sa|MSA23(12|24)(fc|i|sa)|MSA2000s VOLUME)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "MSA [12]0[456]0 SA[NS]"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "HSVX700"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "LOGICAL VOLUME"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "(P2000 G3 FC|P2000G3 FC/iSCSI|P2000 G3 SAS|P2000 G3 iSCSI)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "LEFTHAND"
+ product "(P4000|iSCSIDisk|FCDISK)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "Nimble"
+ product "Server"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "SGI"
+ product "TP9100"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "SGI"
+ product "TP9[3457]00"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SGI"
+ product "IS"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SGI"
+ product "^DD[46]A-"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "DDN"
+ product "SAN DataDirector"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "DDN"
+ product "^EF3010"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "DDN"
+ product "^(EF3015|S2A|SFA)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NEXENTA"
+ product "COMSTAR"
+ path_grouping_policy "group_by_serial"
+ no_path_retry 30
+ }
+ device {
+ vendor "TEGILE"
+ product "(ZEBI-(FC|ISCSI)|INTELLIFLASH)"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "EMC"
+ product "SYMMETRIX"
+ path_grouping_policy "multibus"
+ no_path_retry 6
+ }
+ device {
+ vendor "^DGC"
+ product "^(RAID|DISK|VRAID)"
+ product_blacklist "LUNZ"
+ path_grouping_policy "group_by_prio"
+ path_checker "emc_clariion"
+ hardware_handler "1 emc"
+ prio "emc"
+ failback "immediate"
+ no_path_retry 60
+ }
+ device {
+ vendor "EMC"
+ product "Invista"
+ product_blacklist "LUNZ"
+ path_grouping_policy "multibus"
+ no_path_retry 5
+ }
+ device {
+ vendor "XtremIO"
+ product "XtremApp"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "COMPELNT"
+ product "Compellent Vol"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "DELL"
+ product "^MD3"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NVME"
+ product "^EMC PowerMax_"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "FSC"
+ product "CentricStor"
+ path_grouping_policy "group_by_serial"
+ }
+ device {
+ vendor "FUJITSU"
+ product "ETERNUS_DX(H|L|M|400|8000)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "(EUROLOGC|EuroLogc)"
+ product "FC2502"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "FUJITSU"
+ product "E[234]000"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "FUJITSU"
+ product "E[68]000"
+ path_grouping_policy "multibus"
+ no_path_retry 10
+ }
+ device {
+ vendor "FUJITSU"
+ product "ETERNUS_AHB"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "(HITACHI|HP)"
+ product "^OPEN-"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "HITACHI"
+ product "^DF"
+ path_grouping_policy "group_by_prio"
+ prio "hds"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "HITACHI"
+ product "^DF600F"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "ProFibre 4000R"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "^1722-600"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1724"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1726"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1742"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1746"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1813"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1814"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1815"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1818"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^3526"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^(3542|3552)"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^2105"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^1750500"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^2107900"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^2145"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "S/390 DASD ECKD"
+ product_blacklist "S/390"
+ path_grouping_policy "multibus"
+ uid_attribute "ID_UID"
+ path_checker "directio"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "S/390 DASD FBA"
+ product_blacklist "S/390"
+ path_grouping_policy "multibus"
+ uid_attribute "ID_UID"
+ path_checker "directio"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^IPR"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "1820N00"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(XIV|IBM)"
+ product "(NEXTRA|2810XIV)"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(TMS|IBM)"
+ product "(RamSan|FlashSystem)"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "^(DCS9900|2851)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "AIX"
+ product "VDASD"
+ path_grouping_policy "multibus"
+ no_path_retry 60
+ }
+ device {
+ vendor "IBM"
+ product "3303[ ]+NVDISK"
+ no_path_retry 60
+ }
+ device {
+ vendor "AIX"
+ product "NVDISK"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 60
+ }
+ device {
+ vendor "LENOVO"
+ product "DE_Series"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NETAPP"
+ product "LUN"
+ path_grouping_policy "group_by_prio"
+ features "2 pg_init_retries 50"
+ prio "ontap"
+ failback "immediate"
+ no_path_retry "queue"
+ flush_on_last_del "yes"
+ dev_loss_tmo "infinity"
+ user_friendly_names "no"
+ }
+ device {
+ vendor "(NETAPP|LSI|ENGENIO)"
+ product "INF-01-00"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SolidFir"
+ product "SSD SAN"
+ path_grouping_policy "multibus"
+ no_path_retry 24
+ }
+ device {
+ vendor "NVME"
+ product "^NetApp ONTAP Controller"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "NEC"
+ product "DISK ARRAY"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "^Pillar"
+ product "^Axiom"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "^Oracle"
+ product "^Oracle FS"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "STK"
+ product "BladeCtlr"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "STK"
+ product "OPENstorage"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "STK"
+ product "FLEXLINE 380"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "StorEdge 3"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "SUN"
+ product "STK6580_6780"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "CSM[12]00_R"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "LCSM100_[IEFS]"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "SUN_6180"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "ArrayStorage"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "(Sun Storage|ZFS Storage|COMSTAR)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "PIVOT3"
+ product "RAIGE VOLUME"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(NexGen|Pivot3)"
+ product "(TierStore|vSTAC)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(Intel|INTEL)"
+ product "Multi-Flex"
+ product_blacklist "VTrak V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(LIO-ORG|SUSE)"
+ product "RBD"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "DataCore"
+ product "SANmelody"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "DataCore"
+ product "Virtual Disk"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "PURE"
+ product "FlashArray"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ fast_io_fail_tmo 10
+ }
+ device {
+ vendor "HUAWEI"
+ product "XSG1"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ }
+ device {
+ vendor "KOVE"
+ product "XPD"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "NFINIDAT"
+ product "InfiniBox"
+ path_grouping_policy "group_by_prio"
+ path_selector "round-robin 0"
+ prio "alua"
+ failback 30
+ rr_weight "priorities"
+ no_path_retry "fail"
+ rr_min_io 1
+ rr_min_io_rq 1
+ flush_on_last_del "yes"
+ fast_io_fail_tmo 15
+ dev_loss_tmo 15
+ }
+ device {
+ vendor "KMNRIO"
+ product "K2"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "NEXSAN"
+ product "NXS-B0"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 15
+ }
+ device {
+ vendor "NEXSAN"
+ product "SATAB"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 15
+ }
+ device {
+ vendor "Nexsan"
+ product "(NestOS|NST5000)"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "SAN ARRAY$"
+ path_grouping_policy "group_by_serial"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "SAN ARRAY ALUA"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "CONCERTO ARRAY"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "ISE"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "IGLU DISK"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "Magnitude"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "Promise"
+ product "VTrak"
+ product_blacklist "VTrak V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "Promise"
+ product "Vess"
+ product_blacklist "Vess V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "^IFT"
+ product ".*"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "foo"
+ product "bar"
+ product_blacklist "xyzzy"
+ revision "*"
+ path_grouping_policy "failover"
+ }
+ device {
+ vendor "DotHill"
+ product "SANnet"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "DotHill"
+ product "R/Evo"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "DotHill"
+ product "^DH"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "AStor"
+ product "NeoSapphire"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "INSPUR"
+ product "MCS"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "*"
+ product "plugh"
+ no_path_retry 5
+ }
+}
+overrides {
+ no_path_retry fail
+ dev_loss_tmo 45
+ allow_usb_devices yes
+}
+multipaths {
+ multipath {
+ wwid "333333330000007d0"
+ alias "test"
+ }
+ multipath {
+ wwid "33333333000001388"
+ alias "foo"
+ }
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/conf1.d/empty.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/conf1.d/empty.conf
new file mode 100644
index 00000000..e69de29b
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/conf1.d/nothing_important.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/conf1.d/nothing_important.conf
new file mode 100644
index 00000000..70fbc929
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/conf1.d/nothing_important.conf
@@ -0,0 +1,26 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ user_friendly_names yes
+ find_multipaths yes
+ config_dir "this_gets_ignored"
+}
+
+devices {
+ device {
+ vendor "foo"
+ product "bar"
+ }
+}
+
+blacklist {
+ wwid ".*"
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/conf2.d/all_true.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/conf2.d/all_true.conf
new file mode 100644
index 00000000..cf606807
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/conf2.d/all_true.conf
@@ -0,0 +1,24 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ user_friendly_names yes
+ allow_usb_devices no
+ find_multipaths yes
+ enable_foreign "^$"
+}
+
+blacklist {
+ devnode "*"
+}
+
+blacklist_exceptions {
+ wwid "^sd[a-z]"
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/conf3.d/README b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/conf3.d/README
new file mode 100644
index 00000000..c208af29
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/conf3.d/README
@@ -0,0 +1,2 @@
+This directory contains not *.conf files. This file exists so that git will
+track the directory.
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/converted_the_things.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/converted_the_things.conf
new file mode 100644
index 00000000..f549b9b9
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/converted_the_things.conf
@@ -0,0 +1,23 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ user_friendly_names yes
+ find_multipaths yes
+ enable_foreign ""
+ allow_usb_devices yes
+}
+
+blacklist {
+ devnode ".*"
+}
+
+blacklist {
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/default_rhel8.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/default_rhel8.conf
new file mode 100644
index 00000000..a08fae86
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/default_rhel8.conf
@@ -0,0 +1,22 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ user_friendly_names yes
+ find_multipaths yes
+ enable_foreign "^$"
+}
+
+blacklist_exceptions {
+ property "(SCSI_IDENT_|ID_WWN)"
+}
+
+blacklist {
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/empty.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/empty.conf
new file mode 100644
index 00000000..e69de29b
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/empty_dir.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/empty_dir.conf
new file mode 100644
index 00000000..73179b30
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/empty_dir.conf
@@ -0,0 +1,26 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ user_friendly_names yes
+ find_multipaths yes
+ config_dir "conf3.d"
+}
+
+devices {
+ device {
+ vendor "foo"
+ product "bar"
+ }
+}
+
+blacklist {
+ wwid ".*"
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/missing_dir.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/missing_dir.conf
new file mode 100644
index 00000000..0b963000
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/missing_dir.conf
@@ -0,0 +1,27 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ user_friendly_names yes
+ find_multipaths yes
+ config_dir "missing"
+}
+
+devices {
+ device {
+ vendor "foo"
+ product "bar"
+ enable_foreign ""
+ }
+}
+
+blacklist {
+ wwid "*"
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/no_defaults.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/no_defaults.conf
new file mode 100644
index 00000000..f7885ca8
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/no_defaults.conf
@@ -0,0 +1,1049 @@
+blacklist {
+ devnode "*"
+ device {
+ vendor "SGI"
+ product "Universal Xport"
+ }
+ device {
+ vendor "^DGC"
+ product "LUNZ"
+ }
+ wwid "*"
+ device {
+ vendor "EMC"
+ product "LUNZ"
+ }
+ device {
+ vendor "DELL"
+ product "Universal Xport"
+ }
+ protocol "*"
+ device {
+ vendor "FUJITSU"
+ product "Universal Xport"
+ }
+ device {
+ vendor "IBM"
+ product "Universal Xport"
+ }
+ device {
+ vendor "IBM"
+ product "S/390"
+ }
+ device {
+ vendor "LENOVO"
+ product "Universal Xport"
+ }
+ device {
+ vendor "(NETAPP|LSI|ENGENIO)"
+ product "Universal Xport"
+ }
+ device {
+ vendor "STK"
+ product "Universal Xport"
+ }
+ device {
+ vendor "foo"
+ product "*"
+ }
+ device {
+ vendor "SUN"
+ product "Universal Xport"
+ }
+ device {
+ vendor "(Intel|INTEL)"
+ product "VTrak V-LUN"
+ }
+ device {
+ vendor "Promise"
+ product "VTrak V-LUN"
+ }
+ device {
+ vendor "Promise"
+ product "Vess V-LUN"
+ }
+ device {
+ vendor "*"
+ product "bar"
+ }
+}
+blacklist_exceptions {
+ devnode "^sd[a-z]"
+ wwid "^3"
+ property "*"
+ protocol "scsi"
+}
+devices {
+ device {
+ vendor "NVME"
+ product "*"
+ uid_attribute "ID_WWN"
+ path_checker "none"
+ retain_attached_hw_handler "no"
+ }
+ device {
+ vendor "APPLE"
+ product "Xserve RAID"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "3PARdata"
+ product "VV"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ fast_io_fail_tmo 10
+ dev_loss_tmo "infinity"
+ vpd_vendor hp3par
+ }
+ device {
+ vendor "DEC"
+ product "HSG80"
+ path_grouping_policy "group_by_prio"
+ path_checker "hp_sw"
+ hardware_handler "1 hp_sw"
+ prio "hp_sw"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "HP"
+ product "A6189A"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "(MSA|HSV)1[01]0"
+ path_grouping_policy "group_by_prio"
+ path_checker "hp_sw"
+ hardware_handler "1 hp_sw"
+ prio "hp_sw"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "MSA VOLUME"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "(HSV1[01]1|HSV2[01]0|HSV3[046]0|HSV4[05]0)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "(MSA2[02]12fc|MSA2012i)"
+ path_grouping_policy "multibus"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "(MSA2012sa|MSA23(12|24)(fc|i|sa)|MSA2000s VOLUME)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "MSA [12]0[456]0 SA[NS]"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "HSVX700"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "LOGICAL VOLUME"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "(P2000 G3 FC|P2000G3 FC/iSCSI|P2000 G3 SAS|P2000 G3 iSCSI)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "LEFTHAND"
+ product "(P4000|iSCSIDisk|FCDISK)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "Nimble"
+ product "Server"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "SGI"
+ product "TP9100"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "SGI"
+ product "TP9[3457]00"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SGI"
+ product "IS"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SGI"
+ product "^DD[46]A-"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "DDN"
+ product "SAN DataDirector"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "DDN"
+ product "^EF3010"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "DDN"
+ product "^(EF3015|S2A|SFA)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NEXENTA"
+ product "COMSTAR"
+ path_grouping_policy "group_by_serial"
+ no_path_retry 30
+ }
+ device {
+ vendor "TEGILE"
+ product "(ZEBI-(FC|ISCSI)|INTELLIFLASH)"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "EMC"
+ product "SYMMETRIX"
+ path_grouping_policy "multibus"
+ no_path_retry 6
+ }
+ device {
+ vendor "^DGC"
+ product "^(RAID|DISK|VRAID)"
+ product_blacklist "LUNZ"
+ path_grouping_policy "group_by_prio"
+ path_checker "emc_clariion"
+ hardware_handler "1 emc"
+ prio "emc"
+ failback "immediate"
+ no_path_retry 60
+ }
+ device {
+ vendor "EMC"
+ product "Invista"
+ product_blacklist "LUNZ"
+ path_grouping_policy "multibus"
+ no_path_retry 5
+ }
+ device {
+ vendor "XtremIO"
+ product "XtremApp"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "COMPELNT"
+ product "Compellent Vol"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "DELL"
+ product "^MD3"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NVME"
+ product "^EMC PowerMax_"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "FSC"
+ product "CentricStor"
+ path_grouping_policy "group_by_serial"
+ }
+ device {
+ vendor "FUJITSU"
+ product "ETERNUS_DX(H|L|M|400|8000)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "(EUROLOGC|EuroLogc)"
+ product "FC2502"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "FUJITSU"
+ product "E[234]000"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "FUJITSU"
+ product "E[68]000"
+ path_grouping_policy "multibus"
+ no_path_retry 10
+ }
+ device {
+ vendor "FUJITSU"
+ product "ETERNUS_AHB"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "(HITACHI|HP)"
+ product "^OPEN-"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "HITACHI"
+ product "^DF"
+ path_grouping_policy "group_by_prio"
+ prio "hds"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "HITACHI"
+ product "^DF600F"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "ProFibre 4000R"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "^1722-600"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1724"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1726"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1742"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1746"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1813"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1814"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1815"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1818"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^3526"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^(3542|3552)"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^2105"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^1750500"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^2107900"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^2145"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "S/390 DASD ECKD"
+ product_blacklist "S/390"
+ path_grouping_policy "multibus"
+ uid_attribute "ID_UID"
+ path_checker "directio"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "S/390 DASD FBA"
+ product_blacklist "S/390"
+ path_grouping_policy "multibus"
+ uid_attribute "ID_UID"
+ path_checker "directio"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^IPR"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "1820N00"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(XIV|IBM)"
+ product "(NEXTRA|2810XIV)"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(TMS|IBM)"
+ product "(RamSan|FlashSystem)"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "^(DCS9900|2851)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "AIX"
+ product "VDASD"
+ path_grouping_policy "multibus"
+ no_path_retry 60
+ }
+ device {
+ vendor "IBM"
+ product "3303[ ]+NVDISK"
+ no_path_retry 60
+ }
+ device {
+ vendor "AIX"
+ product "NVDISK"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 60
+ }
+ device {
+ vendor "LENOVO"
+ product "DE_Series"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NETAPP"
+ product "LUN"
+ path_grouping_policy "group_by_prio"
+ features "2 pg_init_retries 50"
+ prio "ontap"
+ failback "immediate"
+ no_path_retry "queue"
+ flush_on_last_del "yes"
+ dev_loss_tmo "infinity"
+ user_friendly_names "no"
+ }
+ device {
+ vendor "(NETAPP|LSI|ENGENIO)"
+ product "INF-01-00"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SolidFir"
+ product "SSD SAN"
+ path_grouping_policy "multibus"
+ no_path_retry 24
+ }
+ device {
+ vendor "NVME"
+ product "^NetApp ONTAP Controller"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "NEC"
+ product "DISK ARRAY"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "^Pillar"
+ product "^Axiom"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "^Oracle"
+ product "^Oracle FS"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "STK"
+ product "BladeCtlr"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "STK"
+ product "OPENstorage"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "STK"
+ product "FLEXLINE 380"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "StorEdge 3"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "SUN"
+ product "STK6580_6780"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "CSM[12]00_R"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "LCSM100_[IEFS]"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "SUN_6180"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "ArrayStorage"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "(Sun Storage|ZFS Storage|COMSTAR)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "PIVOT3"
+ product "RAIGE VOLUME"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(NexGen|Pivot3)"
+ product "(TierStore|vSTAC)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(Intel|INTEL)"
+ product "Multi-Flex"
+ product_blacklist "VTrak V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(LIO-ORG|SUSE)"
+ product "RBD"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "DataCore"
+ product "SANmelody"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "DataCore"
+ product "Virtual Disk"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "PURE"
+ product "FlashArray"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ fast_io_fail_tmo 10
+ }
+ device {
+ vendor "HUAWEI"
+ product "XSG1"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ }
+ device {
+ vendor "KOVE"
+ product "XPD"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "NFINIDAT"
+ product "InfiniBox"
+ path_grouping_policy "group_by_prio"
+ path_selector "round-robin 0"
+ prio "alua"
+ failback 30
+ rr_weight "priorities"
+ no_path_retry "fail"
+ rr_min_io 1
+ rr_min_io_rq 1
+ flush_on_last_del "yes"
+ fast_io_fail_tmo 15
+ dev_loss_tmo 15
+ }
+ device {
+ vendor "KMNRIO"
+ product "K2"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "NEXSAN"
+ product "NXS-B0"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 15
+ }
+ device {
+ vendor "NEXSAN"
+ product "SATAB"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 15
+ }
+ device {
+ vendor "Nexsan"
+ product "(NestOS|NST5000)"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "SAN ARRAY$"
+ path_grouping_policy "group_by_serial"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "SAN ARRAY ALUA"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "CONCERTO ARRAY"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "ISE"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "IGLU DISK"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "Magnitude"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "Promise"
+ product "VTrak"
+ product_blacklist "VTrak V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "Promise"
+ product "Vess"
+ product_blacklist "Vess V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "^IFT"
+ product "*"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "foo"
+ product "bar"
+ product_blacklist "xyzzy"
+ revision "*"
+ path_grouping_policy "failover"
+ }
+ device {
+ vendor "DotHill"
+ product "SANnet"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "DotHill"
+ product "R/Evo"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "DotHill"
+ product "^DH"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "AStor"
+ product "NeoSapphire"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "INSPUR"
+ product "MCS"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "*"
+ product "plugh"
+ no_path_retry 5
+ }
+}
+overrides {
+ no_path_retry fail
+ dev_loss_tmo 45
+ allow_usb_devices yes
+}
+multipaths {
+ multipath {
+ wwid "333333330000007d0"
+ alias "test"
+ }
+ multipath {
+ wwid "33333333000001388"
+ alias "foo"
+ }
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/no_foreign.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/no_foreign.conf
new file mode 100644
index 00000000..9525731c
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/no_foreign.conf
@@ -0,0 +1,1089 @@
+defaults {
+ failback "manual"
+ rr_min_io 1000
+ rr_min_io_rq 1
+ max_fds "max"
+ rr_weight "uniform"
+ queue_without_daemon "no"
+ flush_on_last_del "no"
+ user_friendly_names "yes"
+ allow_usb_devices no
+ fast_io_fail_tmo 5
+ bindings_file "/etc/multipath/bindings"
+ wwids_file "/etc/multipath/wwids"
+ prkeys_file "/etc/multipath/prkeys"
+ log_checker_err always
+ all_tg_pt "no"
+ retain_attached_hw_handler "yes"
+ detect_prio "yes"
+ detect_checker "yes"
+ force_sync "yes"
+ strict_timing "no"
+ deferred_remove "no"
+ delay_watch_checks "no"
+ delay_wait_checks "no"
+ san_path_err_threshold "no"
+ san_path_err_forget_rate "no"
+ san_path_err_recovery_time "no"
+ marginal_path_err_sample_time "no"
+ marginal_path_err_rate_threshold "no"
+ marginal_path_err_recheck_gap_time "no"
+ marginal_path_double_failed_time "no"
+ find_multipaths "on"
+ disable_changed_wwids ignored
+ remove_retries 0
+ ghost_delay "no"
+ find_multipaths_timeout -10
+ marginal_pathgroups "no"
+ recheck_wwid "no"
+}
+blacklist {
+ devnode ".*"
+ device {
+ vendor "SGI"
+ product "Universal Xport"
+ }
+ device {
+ vendor "^DGC"
+ product "LUNZ"
+ }
+ wwid "*"
+ device {
+ vendor "EMC"
+ product "LUNZ"
+ }
+ device {
+ vendor "DELL"
+ product "Universal Xport"
+ }
+ protocol "*"
+ device {
+ vendor "FUJITSU"
+ product "Universal Xport"
+ }
+ device {
+ vendor "IBM"
+ product "Universal Xport"
+ }
+ device {
+ vendor "IBM"
+ product "S/390"
+ }
+ device {
+ vendor "LENOVO"
+ product "Universal Xport"
+ }
+ device {
+ vendor "(NETAPP|LSI|ENGENIO)"
+ product "Universal Xport"
+ }
+ device {
+ vendor "STK"
+ product "Universal Xport"
+ }
+ device {
+ vendor "foo"
+ product ".*"
+ }
+ device {
+ vendor "SUN"
+ product "Universal Xport"
+ }
+ device {
+ vendor "(Intel|INTEL)"
+ product "VTrak V-LUN"
+ }
+ device {
+ vendor "Promise"
+ product "VTrak V-LUN"
+ }
+ device {
+ vendor "Promise"
+ product "Vess V-LUN"
+ }
+ device {
+ vendor "*"
+ product "bar"
+ }
+}
+blacklist_exceptions {
+ devnode "^sd[a-z]"
+ wwid "^3"
+ property "*"
+ protocol "scsi"
+}
+devices {
+ device {
+ vendor "NVME"
+ product ".*"
+ uid_attribute "ID_WWN"
+ path_checker "none"
+ enable_foreign "^$"
+ retain_attached_hw_handler "no"
+ }
+ device {
+ vendor "APPLE"
+ product "Xserve RAID"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "3PARdata"
+ product "VV"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ fast_io_fail_tmo 10
+ dev_loss_tmo "infinity"
+ vpd_vendor hp3par
+ }
+ device {
+ vendor "DEC"
+ product "HSG80"
+ path_grouping_policy "group_by_prio"
+ path_checker "hp_sw"
+ hardware_handler "1 hp_sw"
+ prio "hp_sw"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "HP"
+ product "A6189A"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "(MSA|HSV)1[01]0"
+ path_grouping_policy "group_by_prio"
+ path_checker "hp_sw"
+ hardware_handler "1 hp_sw"
+ prio "hp_sw"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "MSA VOLUME"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "(COMPAQ|HP)"
+ product "(HSV1[01]1|HSV2[01]0|HSV3[046]0|HSV4[05]0)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "(MSA2[02]12fc|MSA2012i)"
+ path_grouping_policy "multibus"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "(MSA2012sa|MSA23(12|24)(fc|i|sa)|MSA2000s VOLUME)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "MSA [12]0[456]0 SA[NS]"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "HP"
+ product "HSVX700"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "LOGICAL VOLUME"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "HP"
+ product "(P2000 G3 FC|P2000G3 FC/iSCSI|P2000 G3 SAS|P2000 G3 iSCSI)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "LEFTHAND"
+ product "(P4000|iSCSIDisk|FCDISK)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 18
+ }
+ device {
+ vendor "Nimble"
+ product "Server"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "SGI"
+ product "TP9100"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "SGI"
+ product "TP9[3457]00"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SGI"
+ product "IS"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SGI"
+ product "^DD[46]A-"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "DDN"
+ product "SAN DataDirector"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "DDN"
+ product "^EF3010"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "DDN"
+ product "^(EF3015|S2A|SFA)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NEXENTA"
+ product "COMSTAR"
+ path_grouping_policy "group_by_serial"
+ no_path_retry 30
+ }
+ device {
+ vendor "TEGILE"
+ product "(ZEBI-(FC|ISCSI)|INTELLIFLASH)"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "EMC"
+ product "SYMMETRIX"
+ path_grouping_policy "multibus"
+ no_path_retry 6
+ }
+ device {
+ vendor "^DGC"
+ product "^(RAID|DISK|VRAID)"
+ product_blacklist "LUNZ"
+ path_grouping_policy "group_by_prio"
+ path_checker "emc_clariion"
+ hardware_handler "1 emc"
+ prio "emc"
+ failback "immediate"
+ no_path_retry 60
+ }
+ device {
+ vendor "EMC"
+ product "Invista"
+ product_blacklist "LUNZ"
+ path_grouping_policy "multibus"
+ no_path_retry 5
+ }
+ device {
+ vendor "XtremIO"
+ product "XtremApp"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "COMPELNT"
+ product "Compellent Vol"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "DELL"
+ product "^MD3"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NVME"
+ product "^EMC PowerMax_"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "FSC"
+ product "CentricStor"
+ path_grouping_policy "group_by_serial"
+ }
+ device {
+ vendor "FUJITSU"
+ product "ETERNUS_DX(H|L|M|400|8000)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "(EUROLOGC|EuroLogc)"
+ product "FC2502"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "FUJITSU"
+ product "E[234]000"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 10
+ }
+ device {
+ vendor "FUJITSU"
+ product "E[68]000"
+ path_grouping_policy "multibus"
+ no_path_retry 10
+ }
+ device {
+ vendor "FUJITSU"
+ product "ETERNUS_AHB"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "(HITACHI|HP)"
+ product "^OPEN-"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "HITACHI"
+ product "^DF"
+ path_grouping_policy "group_by_prio"
+ prio "hds"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "HITACHI"
+ product "^DF600F"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "ProFibre 4000R"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "^1722-600"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1724"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1726"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1742"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1746"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1813"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1814"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1815"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^1818"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^3526"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^(3542|3552)"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "IBM"
+ product "^2105"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^1750500"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^2107900"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^2145"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "S/390 DASD ECKD"
+ product_blacklist "S/390"
+ path_grouping_policy "multibus"
+ uid_attribute "ID_UID"
+ path_checker "directio"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "S/390 DASD FBA"
+ product_blacklist "S/390"
+ path_grouping_policy "multibus"
+ uid_attribute "ID_UID"
+ path_checker "directio"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "^IPR"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "IBM"
+ product "1820N00"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(XIV|IBM)"
+ product "(NEXTRA|2810XIV)"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(TMS|IBM)"
+ product "(RamSan|FlashSystem)"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "IBM"
+ product "^(DCS9900|2851)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "AIX"
+ product "VDASD"
+ path_grouping_policy "multibus"
+ no_path_retry 60
+ }
+ device {
+ vendor "IBM"
+ product "3303[ ]+NVDISK"
+ no_path_retry 60
+ }
+ device {
+ vendor "AIX"
+ product "NVDISK"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 60
+ }
+ device {
+ vendor "LENOVO"
+ product "DE_Series"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "NETAPP"
+ product "LUN"
+ path_grouping_policy "group_by_prio"
+ features "2 pg_init_retries 50"
+ prio "ontap"
+ failback "immediate"
+ no_path_retry "queue"
+ flush_on_last_del "yes"
+ dev_loss_tmo "infinity"
+ user_friendly_names "no"
+ }
+ device {
+ vendor "(NETAPP|LSI|ENGENIO)"
+ product "INF-01-00"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SolidFir"
+ product "SSD SAN"
+ path_grouping_policy "multibus"
+ no_path_retry 24
+ }
+ device {
+ vendor "NVME"
+ product "^NetApp ONTAP Controller"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "NEC"
+ product "DISK ARRAY"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "^Pillar"
+ product "^Axiom"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "^Oracle"
+ product "^Oracle FS"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "STK"
+ product "BladeCtlr"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "STK"
+ product "OPENstorage"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "STK"
+ product "FLEXLINE 380"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "StorEdge 3"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "SUN"
+ product "STK6580_6780"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "CSM[12]00_R"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "LCSM100_[IEFS]"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "SUN_6180"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "ArrayStorage"
+ product_blacklist "Universal Xport"
+ path_grouping_policy "group_by_prio"
+ path_checker "rdac"
+ features "2 pg_init_retries 50"
+ hardware_handler "1 rdac"
+ prio "rdac"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "SUN"
+ product "(Sun Storage|ZFS Storage|COMSTAR)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "PIVOT3"
+ product "RAIGE VOLUME"
+ path_grouping_policy "multibus"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(NexGen|Pivot3)"
+ product "(TierStore|vSTAC)"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(Intel|INTEL)"
+ product "Multi-Flex"
+ product_blacklist "VTrak V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "(LIO-ORG|SUSE)"
+ product "RBD"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 12
+ }
+ device {
+ vendor "DataCore"
+ product "SANmelody"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "DataCore"
+ product "Virtual Disk"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry "queue"
+ }
+ device {
+ vendor "PURE"
+ product "FlashArray"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ fast_io_fail_tmo 10
+ }
+ device {
+ vendor "HUAWEI"
+ product "XSG1"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ }
+ device {
+ vendor "KOVE"
+ product "XPD"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "NFINIDAT"
+ product "InfiniBox"
+ path_grouping_policy "group_by_prio"
+ path_selector "round-robin 0"
+ prio "alua"
+ failback 30
+ rr_weight "priorities"
+ no_path_retry "fail"
+ rr_min_io 1
+ rr_min_io_rq 1
+ flush_on_last_del "yes"
+ fast_io_fail_tmo 15
+ dev_loss_tmo 15
+ }
+ device {
+ vendor "KMNRIO"
+ product "K2"
+ path_grouping_policy "multibus"
+ }
+ device {
+ vendor "NEXSAN"
+ product "NXS-B0"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 15
+ }
+ device {
+ vendor "NEXSAN"
+ product "SATAB"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 15
+ }
+ device {
+ vendor "Nexsan"
+ product "(NestOS|NST5000)"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "SAN ARRAY$"
+ path_grouping_policy "group_by_serial"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "SAN ARRAY ALUA"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "VIOLIN"
+ product "CONCERTO ARRAY"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "ISE"
+ path_grouping_policy "multibus"
+ no_path_retry 12
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "IGLU DISK"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "(XIOTECH|XIOtech)"
+ product "Magnitude"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "Promise"
+ product "VTrak"
+ product_blacklist "VTrak V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "Promise"
+ product "Vess"
+ product_blacklist "Vess V-LUN"
+ path_grouping_policy "group_by_prio"
+ hardware_handler "1 alua"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "^IFT"
+ product "*"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "foo"
+ product "bar"
+ product_blacklist "xyzzy"
+ revision ".*"
+ path_grouping_policy "failover"
+ }
+ device {
+ vendor "DotHill"
+ product "SANnet"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "DotHill"
+ product "R/Evo"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "DotHill"
+ product "^DH"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ no_path_retry 30
+ }
+ device {
+ vendor "AStor"
+ product "NeoSapphire"
+ path_grouping_policy "multibus"
+ no_path_retry 30
+ }
+ device {
+ vendor "INSPUR"
+ product "MCS"
+ path_grouping_policy "group_by_prio"
+ prio "alua"
+ failback "immediate"
+ }
+ device {
+ vendor "*"
+ product "plugh"
+ no_path_retry 5
+ }
+}
+overrides {
+ no_path_retry fail
+ dev_loss_tmo 45
+}
+multipaths {
+ multipath {
+ wwid "333333330000007d0"
+ alias "test"
+ enable_foreign "^$"
+ }
+ multipath {
+ wwid "33333333000001388"
+ alias "foo"
+ }
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/not_set_dir.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/not_set_dir.conf
new file mode 100644
index 00000000..681eb906
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/not_set_dir.conf
@@ -0,0 +1,27 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ user_friendly_names yes
+ find_multipaths yes
+ config_dir "conf1.d"
+}
+
+devices {
+ device {
+ vendor "foo"
+ product "bar"
+ enable_foreign ""
+ }
+}
+
+blacklist {
+ wwid "*"
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/set_in_dir.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/set_in_dir.conf
new file mode 100644
index 00000000..acc068c5
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/set_in_dir.conf
@@ -0,0 +1,33 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ user_friendly_names yes
+ find_multipaths yes
+ config_dir "conf2.d"
+}
+
+devices {
+ device {
+ vendor "foo"
+ product "bar"
+ }
+}
+
+blacklist {
+ wwid ".*"
+}
+
+wwids {
+ wwid {
+ wwid "123456789"
+ alias "test"
+ }
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/two_defaults.conf b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/two_defaults.conf
new file mode 100644
index 00000000..ae59013a
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/files/before/two_defaults.conf
@@ -0,0 +1,26 @@
+# device-mapper-multipath configuration file
+
+# For a complete list of the default configuration values, run either:
+# # multipath -t
+# or
+# # multipathd show config
+
+# For a list of configuration options with descriptions, see the
+# multipath.conf man page.
+
+defaults {
+ user_friendly_names yes
+ find_multipaths yes
+ enable_foreign "^$"
+}
+
+blacklist_exceptions {
+ property "(SCSI_IDENT_|ID_WWN)"
+}
+
+blacklist {
+}
+
+defaults {
+ no_path_retry queue
+}
diff --git a/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/test_multipath_conf_update_8to9.py b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/test_multipath_conf_update_8to9.py
new file mode 100644
index 00000000..c18d6b85
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/actors/multipathconfupdate/tests/test_multipath_conf_update_8to9.py
@@ -0,0 +1,119 @@
+import os
+
+from leapp.libraries.actor import multipathconfupdate
+from leapp.libraries.common import multipathutil
+from leapp.models import MultipathConfFacts8to9, MultipathConfig8to9
+
+BEFORE_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'files/before')
+AFTER_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'files/after')
+
+converted_data = {}
+
+
+def build_config(pathname, config_dir, enable_foreign_exists, invalid_regexes_exist, allow_usb_exists):
+ return MultipathConfig8to9(
+ pathname=pathname,
+ config_dir=config_dir,
+ enable_foreign_exists=enable_foreign_exists,
+ invalid_regexes_exist=invalid_regexes_exist,
+ allow_usb_exists=allow_usb_exists,
+ )
+
+
+def build_facts(confs):
+ return MultipathConfFacts8to9(configs=confs)
+
+
+def mock_read_config(path):
+ """convert to full pathname"""
+ return multipathutil.read_config_orig(os.path.join(BEFORE_DIR, path))
+
+
+def mock_write_config(path, contents):
+ converted_data[path] = contents
+
+
+default_rhel8_conf = build_config(
+ 'default_rhel8.conf', None, True, False, False)
+
+all_the_things_conf = build_config(
+ 'all_the_things.conf', None, False, True, False)
+
+converted_the_things_conf = build_config(
+ 'converted_the_things.conf', None, True, False, True)
+
+idempotent_conf = build_config(
+ 'converted_the_things.conf', None, False, True, False)
+
+complicated_conf = build_config(
+ 'complicated.conf', '/etc/multipath/conf.d', True, True, False)
+
+no_foreign_conf = build_config(
+ 'no_foreign.conf', None, False, True, True)
+
+allow_usb_conf = build_config(
+ 'allow_usb.conf', None, False, False, True)
+
+no_defaults_conf = build_config(
+ 'no_defaults.conf', None, False, True, False)
+
+two_defaults_conf = build_config(
+ 'two_defaults.conf', None, True, False, False)
+
+empty_conf = build_config(
+ 'empty.conf', None, False, False, False)
+
+missing_dir_conf = build_config(
+ 'missing_dir.conf', 'missing', False, True, False)
+
+not_set_dir_conf = build_config(
+ 'not_set_dir.conf', 'conf1.d', False, True, False)
+
+empty1_conf = build_config(
+ 'conf1.d/empty.conf', None, False, False, False)
+
+nothing_important_conf = build_config(
+ 'conf1.d/nothing_important.conf', 'this_gets_ignored', False, False, False)
+
+set_in_dir_conf = build_config(
+ 'set_in_dir.conf', 'conf2.d', False, False, False)
+
+all_true_conf = build_config(
+ 'conf2.d/all_true.conf', None, True, True, True)
+
+empty_dir_conf = build_config(
+ 'empty_dir.conf', 'conf3.d', False, False, False)
+
+facts_list = [build_facts([default_rhel8_conf]),
+ build_facts([all_the_things_conf]),
+ build_facts([converted_the_things_conf]),
+ build_facts([complicated_conf]),
+ build_facts([no_foreign_conf]),
+ build_facts([allow_usb_conf]),
+ build_facts([no_defaults_conf]),
+ build_facts([two_defaults_conf]),
+ build_facts([empty_conf]),
+ build_facts([missing_dir_conf]),
+ build_facts([empty_dir_conf]),
+ build_facts([not_set_dir_conf, empty1_conf, nothing_important_conf]),
+ build_facts([set_in_dir_conf, all_true_conf]),
+ build_facts([idempotent_conf])]
+
+
+def _test_facts(facts):
+ multipathconfupdate.update_configs(facts)
+ for config in facts.configs:
+ expected_data = multipathutil.read_config_orig(os.path.join(AFTER_DIR, config.pathname))
+ if config.pathname in converted_data:
+ assert converted_data[config.pathname] == expected_data
+ else:
+ assert expected_data is None
+
+
+def test_all_facts(monkeypatch):
+ monkeypatch.setattr(multipathutil, 'read_config_orig', multipathutil.read_config, raising=False)
+ monkeypatch.setattr(multipathutil, 'read_config', mock_read_config)
+ monkeypatch.setattr(multipathutil, 'write_config', mock_write_config)
+ for facts in facts_list:
+ _test_facts(facts)
+ converted_data.clear()
diff --git a/repos/system_upgrade/el8toel9/models/multipathconffacts.py b/repos/system_upgrade/el8toel9/models/multipathconffacts.py
new file mode 100644
index 00000000..91d3ce35
--- /dev/null
+++ b/repos/system_upgrade/el8toel9/models/multipathconffacts.py
@@ -0,0 +1,30 @@
+from leapp.models import fields, Model
+from leapp.topics import SystemInfoTopic
+
+
+class MultipathConfig8to9(Model):
+ """Model representing information about a multipath configuration file"""
+ topic = SystemInfoTopic
+
+ pathname = fields.String()
+ """Config file path name"""
+
+ config_dir = fields.Nullable(fields.String())
+ """Value of config_dir in the defaults section. None if not set"""
+
+ enable_foreign_exists = fields.Boolean(default=False)
+ """True if enable_foreign is set in the defaults section"""
+
+ invalid_regexes_exist = fields.Boolean(default=False)
+ """True if any regular expressions have the value of "*" """
+
+ allow_usb_exists = fields.Boolean(default=False)
+ """True if allow_usb_devices is set in the defaults section."""
+
+
+class MultipathConfFacts8to9(Model):
+ """Model representing information from multipath configuration files"""
+ topic = SystemInfoTopic
+
+ configs = fields.List(fields.Model(MultipathConfig8to9), default=[])
+ """List of multipath configuration files"""
--
2.35.3