summaryrefslogtreecommitdiff
path: root/test/harness/iscsi.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/harness/iscsi.py')
-rw-r--r--test/harness/iscsi.py63
1 files changed, 63 insertions, 0 deletions
diff --git a/test/harness/iscsi.py b/test/harness/iscsi.py
new file mode 100644
index 0000000..a252d7a
--- /dev/null
+++ b/test/harness/iscsi.py
@@ -0,0 +1,63 @@
+"""
+ISCSI classes and utilities
+"""
+
+from .util import *
+
+class IscsiData:
+ """
+ Gather all the iscsi data in one place
+ """
+ imm_data_en = 'Yes'
+ initial_r2t_en = 'No'
+ hdrdgst_en = 'None,CRC32C'
+ datdgst_en = 'None,CRC32C'
+ first_burst = 256 * 1024
+ max_burst = 16 * 1024 * 1024 - 1024
+ max_recv_dlength = 128 * 1024
+ max_r2t = 1
+ # the target-name and IP:Port
+ target = None
+ ipnr = None
+
+ def __init__(self,
+ imm_data_en=imm_data_en,
+ initial_r2t_en=initial_r2t_en,
+ hdrdgst_en=hdrdgst_en,
+ datdgst_en=datdgst_en,
+ first_burst=first_burst,
+ max_burst=max_burst,
+ max_recv_dlength=max_recv_dlength,
+ max_r2t=max_r2t):
+ self.imm_data_en = imm_data_en
+ self.initial_r2t_en = initial_r2t_en
+ self.hdrdgst_en = hdrdgst_en
+ self.datdgst_en = datdgst_en
+ self.first_burst = first_burst
+ self.max_burst = max_burst
+ self.max_recv_dlength = max_recv_dlength
+ self.max_r2t = max_r2t
+
+ def update_cfg(self, target, ipnr):
+ """
+ Update the configuration -- we could do this by hacking on the
+ appropriate DB file, but this is safer (and slower) by far
+ """
+ if Global.verbosity > 1:
+ print('* ImmediateData = %s' % self.imm_data_en)
+ print('* InitialR2T = %s' % self.initial_r2t_en)
+ print('* HeaderDigest = %s' % self.hdrdgst_en)
+ print('* DataDigest = %s' % self.datdgst_en)
+ print('* FirstBurstLength = %d' % self.first_burst)
+ print('* MaxBurstLength = %d' % self.max_burst)
+ print('* MaxRecvDataSegmentLength = %d' % self.max_recv_dlength)
+ print('* MaxOutstandingR2T = %d' % self.max_r2t)
+ c = ['iscsiadm', '-m', 'node', '-T', target, '-p', ipnr, '-o', 'update']
+ run_cmd(c + ['-n', 'node.session.iscsi.ImmediateData', '-v', self.imm_data_en])
+ run_cmd(c + ['-n', 'node.session.iscsi.InitialR2T', '-v', self.initial_r2t_en])
+ run_cmd(c + ['-n', 'node.conn[0].iscsi.HeaderDigest', '-v', self.hdrdgst_en])
+ run_cmd(c + ['-n', 'node.conn[0].iscsi.DataDigest', '-v', self.datdgst_en])
+ run_cmd(c + ['-n', 'node.session.iscsi.FirstBurstLength', '-v', str(self.first_burst)])
+ run_cmd(c + ['-n', 'node.session.iscsi.MaxBurstLength', '-v', str(self.max_burst)])
+ run_cmd(c + ['-n', 'node.conn[0].iscsi.MaxRecvDataSegmentLength', '-v', str(self.max_recv_dlength)])
+ run_cmd(c + ['-n', 'node.session.iscsi.MaxOutstandingR2T', '-v', str(self.max_r2t)])