From b670142b1cef17824018dc3943e2be3601cce9b8 Mon Sep 17 00:00:00 2001 From: Brian M Date: Thu, 1 Oct 2026 08:16:06 -0700 Subject: [PATCH] Add support for iscsi_set_isid_oui and iscsi_set_isid_en --- src/iscsi.pyx | 10 ++++++++++ tests/iscsi_test.py | 5 +++++ 2 files changed, 15 insertions(+) diff --git a/src/iscsi.pyx b/src/iscsi.pyx index dbd69ed..2493f48 100644 --- a/src/iscsi.pyx +++ b/src/iscsi.pyx @@ -79,6 +79,8 @@ cdef extern from "iscsi/iscsi.h": cdef int iscsi_set_header_digest(iscsi_context *iscsi, iscsi_header_digest header_digest) cdef int iscsi_set_initiator_username_pwd(iscsi_context *iscsi, const char *user, const char *passwd) cdef int iscsi_set_target_username_pwd(iscsi_context *iscsi, const char *user, const char *passwd) + cdef int iscsi_set_isid_oui(iscsi_context *iscsi, uint32_t oui, uint32_t qualifier) + cdef int iscsi_set_isid_en(iscsi_context *iscsi, uint32_t en, uint32_t qualifier) cdef int iscsi_full_connect_sync(iscsi_context *iscsi, const char *portal, int lun) cdef int iscsi_disconnect(iscsi_context *iscsi) @@ -142,6 +144,14 @@ cdef class Context: if iscsi_set_target_username_pwd(self._ctx, user.encode('utf-8'), passwd.encode('utf-8')) < 0: raise ValueError("Invalid target user/pass: %s" % user) + def set_isid_oui(self, uint32_t oui, uint32_t qualifier): + if iscsi_set_isid_oui(self._ctx, oui, qualifier) < 0: + raise ValueError("Invalid ISID OUI/qualifier: %#x/%#x" % (oui, qualifier)) + + def set_isid_en(self, uint32_t en, uint32_t qualifier): + if iscsi_set_isid_en(self._ctx, en, qualifier) < 0: + raise ValueError("Invalid ISID EN/qualifier: %#x/%#x" % (en, qualifier)) + def connect(self, str portal, int lun): if iscsi_full_connect_sync(self._ctx, portal.encode('utf-8'), lun) < 0: raise RuntimeError("Unable to connect to %s" % portal) diff --git a/tests/iscsi_test.py b/tests/iscsi_test.py index 0a4d748..300b56d 100644 --- a/tests/iscsi_test.py +++ b/tests/iscsi_test.py @@ -19,6 +19,11 @@ def test_set_context_params(self): context.set_targetname("my-target") context.set_header_digest(iscsi.iscsi_header_digest.ISCSI_HEADER_DIGEST_NONE) + def test_set_isid(self): + context = iscsi.Context("foobar") + context.set_isid_oui(0x001405, 0x0) + context.set_isid_en(0x001405, 0x0) + def test_command(self): context = iscsi.Context("foobar") task = iscsi.Task(