From bbec590266a7d1aaf276437b551c03ddbe72bf56 Mon Sep 17 00:00:00 2001
From: Ejner Fergo <efer@dtu.dk>
Date: Fri, 8 Nov 2019 13:59:22 +0100
Subject: [PATCH] check for nvme ses capability

---
 ssd-eraser | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/ssd-eraser b/ssd-eraser
index a317bd4..216228d 100755
--- a/ssd-eraser
+++ b/ssd-eraser
@@ -13,8 +13,9 @@
 __version__ = '0.1'
 
 import os
+import json
 from time import sleep
-from subprocess import run, CalledProcessError
+from subprocess import run, CalledProcessError, PIPE
 try:
     import pyudev
 except ImportError:
@@ -148,7 +149,14 @@ def unfreeze():
 def erase(disk):
     print(YELLOW+"Erasing "+disk+WHITE)
     if DINFO[disk][1] == 'NVMe':
-        cmd = ['nvme', 'format', disk, '--ses=2']
+        checkcap = ['nvme', 'id-ctrl', disk, '-o', 'json']
+        getcap = run(checkcap, stdout=PIPE, check=True)
+        nvmecap = json.loads(getcap.stdout)
+        if nvmecap['fna'] == 5:
+            ses = '--ses=2'
+        else:
+            ses = '--ses=1'
+        cmd = ['nvme', 'format', disk, ses]
         try:
             run(cmd, check=True)
             sleep(20)
-- 
GitLab