diff options
Diffstat (limited to 'test/harness/iscsi.py')
-rw-r--r-- | test/harness/iscsi.py | 63 |
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)]) |