diff options
Diffstat (limited to 'qa/tasks/ceph_iscsi_client.py')
-rw-r--r-- | qa/tasks/ceph_iscsi_client.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/qa/tasks/ceph_iscsi_client.py b/qa/tasks/ceph_iscsi_client.py new file mode 100644 index 000000000..189b7fa31 --- /dev/null +++ b/qa/tasks/ceph_iscsi_client.py @@ -0,0 +1,56 @@ +""" +Set up ceph-iscsi client. +""" +import logging +import contextlib +from textwrap import dedent + +log = logging.getLogger(__name__) + + +@contextlib.contextmanager +def task(ctx, config): + """ + Set up ceph-iscsi client. + + tasks: + ceph_iscsi_client: + clients: [client.1] + """ + log.info('Setting up ceph-iscsi client...') + for role in config['clients']: + (remote,) = (ctx.cluster.only(role).remotes.keys()) + + conf = dedent(''' + InitiatorName=iqn.1994-05.com.redhat:client + ''') + path = "/etc/iscsi/initiatorname.iscsi" + remote.sudo_write_file(path, conf, mkdir=True) + + # the restart is needed after the above change is applied + remote.run(args=['sudo', 'systemctl', 'restart', 'iscsid']) + + remote.run(args=['sudo', 'modprobe', 'dm_multipath']) + remote.run(args=['sudo', 'mpathconf', '--enable']) + conf = dedent(''' + devices { + device { + vendor "LIO-ORG" + product "TCMU device" + hardware_handler "1 alua" + path_grouping_policy "failover" + path_selector "queue-length 0" + failback 60 + path_checker tur + prio alua + prio_args exclusive_pref_bit + fast_io_fail_tmo 25 + no_path_retry queue + } + } + ''') + path = "/etc/multipath.conf" + remote.sudo_write_file(path, conf, append=True) + remote.run(args=['sudo', 'systemctl', 'start', 'multipathd']) + + yield |