Accepting request 704983 from home:sschricker:branches:Base:System
- Add new subpackage containing the nvme-cli regress script - Add script to determine host NQN based on the system UUID + 0008-nvme-cli-Add-script-to-determine-host-NQN.patch - Add new udev rule for NetApp E-Series and adjust udev rule naming scheme accordingly. (bsc#1124564) + 0006-nvme-cli-add-default-IO-policy-rule-for-NetApp-E-Ser.patch + 0007-nvme-cli-Rename-udev-rule-for-ONTAP-controller.patch - Update to version 1.8.1+git64.b969cf0: * fix json print for list-subsys command * Add Virtium plugin extension document * Add Virtium plugin extension * nvme.h: Fix typos in status code values * nvme-cli: remove unused NVME_AER_NOTICE_ * list-ctrl, create-ns, format: Do not return directly without freeing fd OBS-URL: https://build.opensuse.org/request/show/704983 OBS-URL: https://build.opensuse.org/package/show/Base:System/nvme-cli?expand=0&rev=75
This commit is contained in:
parent
d55eb58f3c
commit
c284f4a13b
@ -0,0 +1,24 @@
|
|||||||
|
From bfbcc6d02f0621bb9ff5afc39862aac55ff305bf Mon Sep 17 00:00:00 2001
|
||||||
|
From: Simon Schricker <sschricker@suse.de>
|
||||||
|
Date: Wed, 15 May 2019 13:36:41 +0200
|
||||||
|
Subject: [PATCH] nvme-cli: add default IO-policy rule for NetApp E-Series
|
||||||
|
|
||||||
|
NetApp E-Series controller provide several paths to the same subsystem,
|
||||||
|
so we should be switching to 'round-robin' iopolicy to provide the best
|
||||||
|
performance.
|
||||||
|
---
|
||||||
|
scripts/71-nvme-iopolicy-netapp-E-Series.rules | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
create mode 100644 scripts/71-nvme-iopolicy-netapp-E-Series.rules
|
||||||
|
|
||||||
|
diff --git a/scripts/71-nvme-iopolicy-netapp-E-Series.rules b/scripts/71-nvme-iopolicy-netapp-E-Series.rules
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..902c083
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/scripts/71-nvme-iopolicy-netapp-E-Series.rules
|
||||||
|
@@ -0,0 +1,2 @@
|
||||||
|
+# Enable round-robin for NetApp E-Series
|
||||||
|
+ACTION=="add", SUBSYSTEM=="nvme-subsystem", ATTR{model}=="NetApp E-Series", ATTR{iopolicy}="round-robin"
|
||||||
|
--
|
||||||
|
2.16.4
|
||||||
|
|
18
0007-nvme-cli-Rename-udev-rule-for-ONTAP-controller.patch
Normal file
18
0007-nvme-cli-Rename-udev-rule-for-ONTAP-controller.patch
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
From eae06c9af819f7d1782833783661ad3bf376fae4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Simon Schricker <sschricker@suse.de>
|
||||||
|
Date: Thu, 16 May 2019 16:42:49 +0200
|
||||||
|
Subject: [PATCH] nvme-cli: Rename udev rule for ONTAP controller
|
||||||
|
|
||||||
|
To have a consistent naming scheme with the E-Series udev rule.
|
||||||
|
---
|
||||||
|
...{71-nvme-iopolicy-netapp.rules => 71-nvme-iopolicy-netapp-ONTAP.rules} | 0
|
||||||
|
1 file changed, 0 insertions(+), 0 deletions(-)
|
||||||
|
rename scripts/{71-nvme-iopolicy-netapp.rules => 71-nvme-iopolicy-netapp-ONTAP.rules} (100%)
|
||||||
|
|
||||||
|
diff --git a/scripts/71-nvme-iopolicy-netapp.rules b/scripts/71-nvme-iopolicy-netapp-ONTAP.rules
|
||||||
|
similarity index 100%
|
||||||
|
rename from scripts/71-nvme-iopolicy-netapp.rules
|
||||||
|
rename to scripts/71-nvme-iopolicy-netapp-ONTAP.rules
|
||||||
|
--
|
||||||
|
2.16.4
|
||||||
|
|
64
0008-nvme-cli-Add-script-to-determine-host-NQN.patch
Normal file
64
0008-nvme-cli-Add-script-to-determine-host-NQN.patch
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
From b38de666b0ae385bb35c00280c48a20f4d4d6aae Mon Sep 17 00:00:00 2001
|
||||||
|
From: Simon Schricker <sschricker@suse.de>
|
||||||
|
Date: Fri, 17 May 2019 15:36:37 +0200
|
||||||
|
Subject: [PATCH] nvme-cli: Add script to determine host NQN
|
||||||
|
|
||||||
|
* Based on the system-UUID, via dmidecode
|
||||||
|
* verifies UUID format
|
||||||
|
* tries to catch fake/lazy UUIDs
|
||||||
|
---
|
||||||
|
scripts/det-hostnqn.sh | 42 ++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
1 file changed, 42 insertions(+)
|
||||||
|
create mode 100644 scripts/det-hostnqn.sh
|
||||||
|
|
||||||
|
diff --git a/scripts/det-hostnqn.sh b/scripts/det-hostnqn.sh
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..d8783cf
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/scripts/det-hostnqn.sh
|
||||||
|
@@ -0,0 +1,42 @@
|
||||||
|
+#!/bin/bash
|
||||||
|
+
|
||||||
|
+LC_ALL=C
|
||||||
|
+
|
||||||
|
+UUID=$(dmidecode -s system-uuid | tr -d '[:space:]')
|
||||||
|
+
|
||||||
|
+if [ -z "$UUID" ] ; then
|
||||||
|
+ >&2 echo "No UUID found, can't determine hostnqn."
|
||||||
|
+ exit 1
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+# convert UUID to lower-case only:
|
||||||
|
+UUID=$(echo $UUID | tr '[:upper:]' '[:lower:]')
|
||||||
|
+
|
||||||
|
+# check UUID format, e.g.: 4c4c4544-0156-4a10-8134-b7d04f383232, so: 8-4-4-4-12
|
||||||
|
+if ! [[ $UUID =~ ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ ]] ; then
|
||||||
|
+ >&2 echo "UUID has invalid format."
|
||||||
|
+ >&2 echo "Invalid UUID: ${UUID}"
|
||||||
|
+ exit 2
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+# HEURISTIC:
|
||||||
|
+# (1) if any one given character occurs more than 50% of the time, it is likely
|
||||||
|
+# that the UUID is fake.
|
||||||
|
+# (2) if the first or the last group consists of mostly the same character, it
|
||||||
|
+# is likely that the UUID is fake.
|
||||||
|
+FIRST_GROUP="$(echo $UUID | cut -d'-' -f1)"
|
||||||
|
+LAST_GROUP="$(echo $UUID | cut -d'-' -f5)"
|
||||||
|
+for i in {{0..9},{a..f}} ; do
|
||||||
|
+ COUNT_TOTAL="${UUID//[^$i]}"
|
||||||
|
+ COUNT_FIRST="${FIRST_GROUP//[^$i]}"
|
||||||
|
+ COUNT_LAST="${LAST_GROUP//[^$i]}"
|
||||||
|
+ if [ ${#COUNT_TOTAL} -ge 16 ] || [ ${#COUNT_FIRST} -ge 7 ] || [ ${#COUNT_LAST} -ge 11 ] ; then
|
||||||
|
+ >&2 echo "UUID is too repetitive. This may be a false alert."
|
||||||
|
+ >&2 echo "Repetitive UUID: ${UUID}"
|
||||||
|
+ exit 3
|
||||||
|
+ fi
|
||||||
|
+done
|
||||||
|
+
|
||||||
|
+HOSTNQN="nqn.2014-08.org.nvmexpress:uuid:${UUID}"
|
||||||
|
+
|
||||||
|
+echo $HOSTNQN
|
||||||
|
--
|
||||||
|
2.16.4
|
||||||
|
|
@ -1,4 +1,10 @@
|
|||||||
<servicedata>
|
<servicedata>
|
||||||
<service name="obs_scm">
|
<service name="obs_scm">
|
||||||
<param name="url">https://github.com/linux-nvme/nvme-cli.git</param>
|
<param name="url">https://github.com/linux-nvme/nvme-cli.git</param>
|
||||||
<param name="changesrevision">75800fff4a17f6d97ef884772b88a2dfbd84251a</param></service></servicedata>
|
<param name="changesrevision">75800fff4a17f6d97ef884772b88a2dfbd84251a</param>
|
||||||
|
</service>
|
||||||
|
<service name="tar_scm">
|
||||||
|
<param name="url">https://github.com/linux-nvme/nvme-cli.git</param>
|
||||||
|
<param name="changesrevision">b969cf0b67995035a17ed89812d695b7f954f39c</param>
|
||||||
|
</service>
|
||||||
|
</servicedata>
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:ba0ae34e20227b0eb477edea284252ffa560306c033cd6775bd5c26bc61c127e
|
|
||||||
size 228972
|
|
3
nvme-cli-1.8.1+git64.b969cf0.tar.xz
Normal file
3
nvme-cli-1.8.1+git64.b969cf0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:4d1414a761d9baf9d592ca63aae1385564c1b75f523faf6c499b4198fefba53f
|
||||||
|
size 236744
|
@ -1,3 +1,22 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu May 23 06:55:34 UTC 2019 - Simon Schricker <sschricker@suse.com>
|
||||||
|
|
||||||
|
- Add new subpackage containing the nvme-cli regress script
|
||||||
|
- Add script to determine host NQN based on the system UUID
|
||||||
|
+ 0008-nvme-cli-Add-script-to-determine-host-NQN.patch
|
||||||
|
- Add new udev rule for NetApp E-Series and adjust udev rule naming
|
||||||
|
scheme accordingly. (bsc#1124564)
|
||||||
|
+ 0006-nvme-cli-add-default-IO-policy-rule-for-NetApp-E-Ser.patch
|
||||||
|
+ 0007-nvme-cli-Rename-udev-rule-for-ONTAP-controller.patch
|
||||||
|
- Update to version 1.8.1+git64.b969cf0:
|
||||||
|
* fix json print for list-subsys command
|
||||||
|
* Add Virtium plugin extension document
|
||||||
|
* Add Virtium plugin extension
|
||||||
|
* nvme.h: Fix typos in status code values
|
||||||
|
* nvme-cli: remove unused NVME_AER_NOTICE_
|
||||||
|
* list-ctrl, create-ns, format: Do not return directly without
|
||||||
|
freeing fd
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu May 9 15:19:44 UTC 2019 - Simon Schricker <sschricker@suse.com>
|
Thu May 9 15:19:44 UTC 2019 - Simon Schricker <sschricker@suse.com>
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
|
|
||||||
Name: nvme-cli
|
Name: nvme-cli
|
||||||
Version: 1.8.1+git41.2c43c51
|
Version: 1.8.1+git64.b969cf0
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: NVM Express user space tools
|
Summary: NVM Express user space tools
|
||||||
License: GPL-2.0-only
|
License: GPL-2.0-only
|
||||||
@ -31,17 +31,32 @@ Patch2: 0002-71-nvme-iopolicy-netapp.rules-add-default-rules-for-.patch
|
|||||||
Patch3: 0003-Add-nvmefc-connect.target.patch
|
Patch3: 0003-Add-nvmefc-connect.target.patch
|
||||||
Patch4: 0004-Change-service-to-type-simple.patch
|
Patch4: 0004-Change-service-to-type-simple.patch
|
||||||
Patch5: 0005-nvme-cli-Check-for-sysfs-interface-before-NVMe-disco.patch
|
Patch5: 0005-nvme-cli-Check-for-sysfs-interface-before-NVMe-disco.patch
|
||||||
|
Patch6: 0006-nvme-cli-add-default-IO-policy-rule-for-NetApp-E-Ser.patch
|
||||||
|
Patch7: 0007-nvme-cli-Rename-udev-rule-for-ONTAP-controller.patch
|
||||||
|
Patch8: 0008-nvme-cli-Add-script-to-determine-host-NQN.patch
|
||||||
BuildRequires: libuuid-devel
|
BuildRequires: libuuid-devel
|
||||||
BuildRequires: pkgconfig
|
BuildRequires: pkgconfig
|
||||||
BuildRequires: xmlto
|
BuildRequires: xmlto
|
||||||
BuildRequires: pkgconfig(libudev)
|
BuildRequires: pkgconfig(libudev)
|
||||||
BuildRequires: rubygem(asciidoctor)
|
BuildRequires: rubygem(asciidoctor)
|
||||||
|
%ifarch x86_64 aarch64 i586
|
||||||
|
Requires(post): dmidecode
|
||||||
|
%endif
|
||||||
|
|
||||||
%description
|
%description
|
||||||
NVM Express (NVMe) is a direct attached storage interface. The
|
NVM Express (NVMe) is a direct attached storage interface. The
|
||||||
nvme-cli package contains core management tools with minimal
|
nvme-cli package contains core management tools with minimal
|
||||||
dependencies.
|
dependencies.
|
||||||
|
|
||||||
|
%package -n nvme-cli-regress-script
|
||||||
|
Summary: A small script to test the nvme binary for regressions
|
||||||
|
Group: Hardware/Other
|
||||||
|
Requires: nvme-cli
|
||||||
|
|
||||||
|
%description -n nvme-cli-regress-script
|
||||||
|
A small shell script to test the nvme binary for regressions. It requires an
|
||||||
|
NVMe device for testing purposes. Do NOT use in a production environment.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
@ -49,10 +64,14 @@ dependencies.
|
|||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
%patch4 -p1
|
%patch4 -p1
|
||||||
%patch5 -p1
|
%patch5 -p1
|
||||||
|
%patch6 -p1
|
||||||
|
%patch7 -p1
|
||||||
|
%patch8 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
echo %{version} > version
|
echo %{version} > version
|
||||||
make CFLAGS="%{optflags} -I." PREFIX=%{_prefix} USE_ASCIIDOCTOR=YesPlease %{?_smp_mflags} all
|
make CFLAGS="%{optflags} -I." PREFIX=%{_prefix} USE_ASCIIDOCTOR=YesPlease %{?_smp_mflags} all
|
||||||
|
sed -i '/make.*/d' regress
|
||||||
|
|
||||||
%install
|
%install
|
||||||
make PREFIX=%{_prefix} DESTDIR=%{buildroot} install-bin install-man %{?_smp_mflags}
|
make PREFIX=%{_prefix} DESTDIR=%{buildroot} install-bin install-man %{?_smp_mflags}
|
||||||
@ -62,7 +81,13 @@ install -m 644 -D nvme-fc-autoconnect/70-nvmefc-autoconnect.rules %{buildroot}%{
|
|||||||
install -m 644 -D nvme-fc-autoconnect/nvmefc-boot-connections.service %{buildroot}%{_unitdir}/nvmefc-boot-connections.service
|
install -m 644 -D nvme-fc-autoconnect/nvmefc-boot-connections.service %{buildroot}%{_unitdir}/nvmefc-boot-connections.service
|
||||||
install -m 644 -D nvme-fc-autoconnect/nvmefc-connect@.service %{buildroot}%{_unitdir}/nvmefc-connect@.service
|
install -m 644 -D nvme-fc-autoconnect/nvmefc-connect@.service %{buildroot}%{_unitdir}/nvmefc-connect@.service
|
||||||
install -m 644 -D nvme-fc-autoconnect/nvmefc-connect.target %{buildroot}%{_unitdir}/nvmefc-connect.target
|
install -m 644 -D nvme-fc-autoconnect/nvmefc-connect.target %{buildroot}%{_unitdir}/nvmefc-connect.target
|
||||||
install -m 644 -D scripts/71-nvme-iopolicy-netapp.rules %{buildroot}%{_udevrulesdir}/71-nvme-iopolicy-netapp.rules
|
install -m 644 -D scripts/71-nvme-iopolicy-netapp-ONTAP.rules %{buildroot}%{_udevrulesdir}/71-nvme-iopolicy-netapp-ONTAP.rules
|
||||||
|
install -m 644 -D scripts/71-nvme-iopolicy-netapp-E-Series.rules %{buildroot}%{_udevrulesdir}/71-nvme-iopolicy-netapp-E-Series.rules
|
||||||
|
%ifarch x86_64 aarch64 i586
|
||||||
|
install -m 744 -D scripts/det-hostnqn.sh %{buildroot}%{_sbindir}/nvme-det-hostnqn
|
||||||
|
%endif
|
||||||
|
# for subpackage nvme-cli-regress-script:
|
||||||
|
install -m 744 -D regress %{buildroot}%{_sbindir}/nvme-regress
|
||||||
|
|
||||||
%define services nvmefc-boot-connections.service nvmefc-connect.target
|
%define services nvmefc-boot-connections.service nvmefc-connect.target
|
||||||
|
|
||||||
@ -70,10 +95,16 @@ install -m 644 -D scripts/71-nvme-iopolicy-netapp.rules %{buildroot}%{_udevrules
|
|||||||
%service_add_pre %services nvmefc-connect@.service
|
%service_add_pre %services nvmefc-connect@.service
|
||||||
|
|
||||||
%post
|
%post
|
||||||
if [ ! -e %{_sysconfdir}/nvme/hostnqn ]; then
|
%ifarch x86_64 aarch64 i586
|
||||||
|
if [ ! -s %{_sysconfdir}/nvme/hostnqn ]; then
|
||||||
|
%{_sbindir}/nvme-det-hostnqn > %{_sysconfdir}/nvme/hostnqn
|
||||||
|
fi
|
||||||
|
%endif
|
||||||
|
if [ ! -s %{_sysconfdir}/nvme/hostnqn ]; then
|
||||||
|
%{_bindir}/echo "Generating random host NQN."
|
||||||
%{_sbindir}/nvme gen-hostnqn > %{_sysconfdir}/nvme/hostnqn
|
%{_sbindir}/nvme gen-hostnqn > %{_sysconfdir}/nvme/hostnqn
|
||||||
fi
|
fi
|
||||||
if [ ! -e %{_sysconfdir}/nvme/hostid ]; then
|
if [ ! -s %{_sysconfdir}/nvme/hostid ]; then
|
||||||
%{_bindir}/uuidgen > %{_sysconfdir}/nvme/hostid
|
%{_bindir}/uuidgen > %{_sysconfdir}/nvme/hostid
|
||||||
fi
|
fi
|
||||||
%service_add_post %services nvmefc-connect@.service
|
%service_add_post %services nvmefc-connect@.service
|
||||||
@ -93,12 +124,16 @@ fi
|
|||||||
%license LICENSE
|
%license LICENSE
|
||||||
%doc README.md
|
%doc README.md
|
||||||
%{_sbindir}/nvme
|
%{_sbindir}/nvme
|
||||||
|
%ifarch x86_64 aarch64 i586
|
||||||
|
%{_sbindir}/nvme-det-hostnqn
|
||||||
|
%endif
|
||||||
%{_mandir}/man1/nvme*.1*%{?ext_man}
|
%{_mandir}/man1/nvme*.1*%{?ext_man}
|
||||||
%dir %{_datadir}/bash_completion
|
%dir %{_datadir}/bash_completion
|
||||||
%dir %{_datadir}/bash_completion/completions/
|
%dir %{_datadir}/bash_completion/completions/
|
||||||
%{_datadir}/bash_completion/completions/nvme
|
%{_datadir}/bash_completion/completions/nvme
|
||||||
%{_udevrulesdir}/70-nvmefc-autoconnect.rules
|
%{_udevrulesdir}/70-nvmefc-autoconnect.rules
|
||||||
%{_udevrulesdir}/71-nvme-iopolicy-netapp.rules
|
%{_udevrulesdir}/71-nvme-iopolicy-netapp-ONTAP.rules
|
||||||
|
%{_udevrulesdir}/71-nvme-iopolicy-netapp-E-Series.rules
|
||||||
%{_unitdir}/nvmefc-boot-connections.service
|
%{_unitdir}/nvmefc-boot-connections.service
|
||||||
%{_unitdir}/nvmefc-connect@.service
|
%{_unitdir}/nvmefc-connect@.service
|
||||||
%{_unitdir}/nvmefc-connect.target
|
%{_unitdir}/nvmefc-connect.target
|
||||||
@ -106,4 +141,7 @@ fi
|
|||||||
%ghost %{_sysconfdir}/nvme/hostnqn
|
%ghost %{_sysconfdir}/nvme/hostnqn
|
||||||
%ghost %{_sysconfdir}/nvme/hostid
|
%ghost %{_sysconfdir}/nvme/hostid
|
||||||
|
|
||||||
|
%files -n nvme-cli-regress-script
|
||||||
|
%{_sbindir}/nvme-regress
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
Loading…
Reference in New Issue
Block a user