Skip to content

Commit 2c90d97

Browse files
Martin Belangerigaw
authored andcommitted
python: remove "iter" elements
This is just a bit of clean up. After reworking iterators by using actual Python code instead of C++, we don't need to keep these "iter" elements: host_iter, subsystem_iter, ctrl_iter, ns_iter. Signed-off-by: Martin Belanger <martin.belanger@dell.com>
1 parent 2c7e3b2 commit 2c90d97

File tree

1 file changed

+1
-156
lines changed

1 file changed

+1
-156
lines changed

libnvme/nvme.i

Lines changed: 1 addition & 156 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,6 @@
3030
#include "nvme/types.h"
3131
#include "nvme/nbft.h"
3232

33-
static int host_iter_err = 0;
34-
static int subsys_iter_err = 0;
35-
static int ctrl_iter_err = 0;
36-
static int ns_iter_err = 0;
3733
static int connect_err = 0;
3834
static int discover_err = 0;
3935

@@ -57,65 +53,6 @@
5753
PyObject *hostnqn_from_file();
5854
PyObject *hostid_from_file();
5955

60-
%inline %{
61-
struct host_iter {
62-
struct nvme_root *root;
63-
struct nvme_host *pos;
64-
};
65-
66-
struct subsystem_iter {
67-
struct nvme_host *host;
68-
struct nvme_subsystem *pos;
69-
};
70-
71-
struct ctrl_iter {
72-
struct nvme_subsystem *subsystem;
73-
struct nvme_ctrl *pos;
74-
};
75-
76-
struct ns_iter {
77-
struct nvme_subsystem *subsystem;
78-
struct nvme_ctrl *ctrl;
79-
struct nvme_ns *pos;
80-
};
81-
%}
82-
83-
%exception host_iter::__next__ {
84-
host_iter_err = 0;
85-
$action /* $action sets host_iter_err to non-zero value on failure */
86-
if (host_iter_err) {
87-
PyErr_SetString(PyExc_StopIteration, "End of list");
88-
return NULL;
89-
}
90-
}
91-
92-
%exception subsystem_iter::__next__ {
93-
subsys_iter_err = 0;
94-
$action /* $action sets subsys_iter_err to non-zero value on failure */
95-
if (subsys_iter_err) {
96-
PyErr_SetString(PyExc_StopIteration, "End of list");
97-
return NULL;
98-
}
99-
}
100-
101-
%exception ctrl_iter::__next__ {
102-
ctrl_iter_err = 0;
103-
$action /* $action sets ctrl_iter_err to non-zero value on failure */
104-
if (ctrl_iter_err) {
105-
PyErr_SetString(PyExc_StopIteration, "End of list");
106-
return NULL;
107-
}
108-
}
109-
110-
%exception ns_iter::__next__ {
111-
ns_iter_err = 0;
112-
$action /* $action sets ns_iter_err to non-zero value on failure */
113-
if (ns_iter_err) {
114-
PyErr_SetString(PyExc_StopIteration, "End of list");
115-
return NULL;
116-
}
117-
}
118-
11956
%exception nvme_ctrl::connect {
12057
connect_err = 0;
12158
errno = 0;
@@ -590,21 +527,6 @@ struct nvme_ns {
590527
}
591528
}
592529

593-
%extend host_iter {
594-
struct host_iter *__iter__() {
595-
return $self;
596-
}
597-
struct nvme_host *__next__() {
598-
struct nvme_host *this = $self->pos;
599-
600-
if (!this) {
601-
host_iter_err = 1;
602-
return NULL;
603-
}
604-
$self->pos = nvme_next_host($self->root, this);
605-
return this;
606-
}
607-
}
608530

609531
%define SET_SYMNAME_DOCSTRING
610532
"@brief Set or Clear Host's Symbolic Name
@@ -645,13 +567,6 @@ struct nvme_ns {
645567
PyObject* __str__() {
646568
return PyUnicode_FromFormat("nvme.host(%s,%s)", STR_OR_NONE($self->hostnqn), STR_OR_NONE($self->hostid));
647569
}
648-
struct host_iter __iter__() {
649-
struct host_iter ret = {
650-
.root = nvme_host_get_root($self),
651-
.pos = $self
652-
};
653-
return ret;
654-
}
655570
%pythoncode %{
656571
def subsystems(self):
657572
"""Iterator over all subsystem objects"""
@@ -671,41 +586,6 @@ struct nvme_ns {
671586
}
672587
%};
673588

674-
%extend subsystem_iter {
675-
struct subsystem_iter *__iter__() {
676-
return $self;
677-
}
678-
struct nvme_subsystem *__next__() {
679-
struct nvme_subsystem *this = $self->pos;
680-
681-
if (!this) {
682-
subsys_iter_err = 1;
683-
return NULL;
684-
}
685-
$self->pos = nvme_next_subsystem($self->host, this);
686-
return this;
687-
}
688-
}
689-
690-
%extend ns_iter {
691-
struct ns_iter *__iter__() {
692-
return $self;
693-
}
694-
struct nvme_ns *__next__() {
695-
struct nvme_ns *this = $self->pos;
696-
697-
if (!this) {
698-
ns_iter_err = 1;
699-
return NULL;
700-
}
701-
if ($self->ctrl)
702-
$self->pos = nvme_ctrl_next_ns($self->ctrl, this);
703-
else
704-
$self->pos = nvme_subsystem_next_ns($self->subsystem, this);
705-
return this;
706-
}
707-
}
708-
709589
%pythonappend nvme_subsystem::nvme_subsystem(struct nvme_host *host,
710590
const char *subsysnqn,
711591
const char *name) {
@@ -722,13 +602,6 @@ struct nvme_ns {
722602
PyObject *__str__() {
723603
return PyUnicode_FromFormat("nvme.subsystem(%s,%s)", STR_OR_NONE($self->name), STR_OR_NONE($self->subsysnqn));
724604
}
725-
struct subsystem_iter __iter__() {
726-
struct subsystem_iter ret = {
727-
.host = nvme_subsystem_get_host($self),
728-
.pos = $self
729-
};
730-
return ret;
731-
}
732605
%pythoncode %{
733606
def controllers(self):
734607
"""Iterator over all controller objects"""
@@ -772,22 +645,6 @@ struct nvme_ns {
772645
}
773646
%};
774647

775-
%extend ctrl_iter {
776-
struct ctrl_iter *__iter__() {
777-
return $self;
778-
}
779-
struct nvme_ctrl *__next__() {
780-
struct nvme_ctrl *this = $self->pos;
781-
782-
if (!this) {
783-
ctrl_iter_err = 1;
784-
return NULL;
785-
}
786-
$self->pos = nvme_subsystem_next_ctrl($self->subsystem, this);
787-
return this;
788-
}
789-
}
790-
791648
%pythonappend nvme_ctrl::connect(struct nvme_host *h,
792649
struct nvme_fabrics_config *cfg) {
793650
self.__host = h # Keep a reference to parent to ensure ctrl obj gets GCed before host}
@@ -948,13 +805,7 @@ struct nvme_ns {
948805
PyUnicode_FromFormat("nvme_ctrl(transport=%s,%s)", STR_OR_NONE($self->transport), STR_OR_NONE($self->address)) :
949806
PyUnicode_FromFormat("nvme_ctrl(transport=%s)", STR_OR_NONE($self->transport));
950807
}
951-
struct ctrl_iter __iter__() {
952-
struct ctrl_iter ret = {
953-
.subsystem = nvme_ctrl_get_subsystem($self),
954-
.pos = $self
955-
};
956-
return ret;
957-
}
808+
958809
%pythoncode %{
959810
def namespaces(self):
960811
"""Iterator over all namespace objects"""
@@ -1114,12 +965,6 @@ struct nvme_ns {
1114965
PyObject *__str__() {
1115966
return PyUnicode_FromFormat("nvme.ns(%u)", $self->nsid);
1116967
}
1117-
struct ns_iter __iter__() {
1118-
struct ns_iter ret = { .ctrl = nvme_ns_get_ctrl($self),
1119-
.subsystem = nvme_ns_get_subsystem($self),
1120-
.pos = $self };
1121-
return ret;
1122-
}
1123968
%immutable name;
1124969
const char *name;
1125970
}

0 commit comments

Comments
 (0)