[PATCH 4/3 rfc nvmetcli] nvmetcli: expose nvmet port status and state

Sagi Grimberg sagi at grimberg.me
Thu Mar 22 12:03:03 PDT 2018


status reflects if any subsystems are bound and can
accept existing connections. state reflects the
physical state of the port.

Signed-off-by: Sagi Grimberg <sagi at grimberg.me>
---
 nvmetcli | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/nvmetcli b/nvmetcli
index 6b102a235450..86f7c01708cb 100755
--- a/nvmetcli
+++ b/nvmetcli
@@ -388,7 +388,14 @@ class UIPortNode(UINode):
         if trsvcid != "none":
             info.append("trsvcid=%s" % trsvcid)
         enabled = not (not self.cfnode.subsystems and not list(self.cfnode.referrals))
-        return (", ".join(info), True if enabled else 0)
+        info.append("status=" + ("enabled" if enabled else "disabled"))
+        if not enabled:
+            ret = 0
+        else:
+            active = not (not int(self.cfnode.get_attr("addr", "tractive")))
+            info.append("state=" + ("up" if active else "down"))
+            ret = True if active else False
+        return (", ".join(info), ret)
 
 class UIPortSubsystemsNode(UINode):
     def __init__(self, parent):
-- 
2.14.1




More information about the Linux-nvme mailing list