blob: cdcd689ef7ef58b2fe75569b647547a773b36840 [file] [log] [blame]
From 4ca5dd70e54b0752fbf9282eaec08174e4825000 Mon Sep 17 00:00:00 2001
From: Matt Johnston <matt@codeconstruct.com.au>
Date: Thu, 18 May 2023 13:51:51 +0800
Subject: [PATCH 5/5] Add DriveErase interface
This provides an Erase method on a drive.
Signed-off-by: Matt Johnston <matt@codeconstruct.com.au>
Change-Id: I0458824bed197dacb525e18afa4d2736808e873f
Patch Tracking Bug: b/303071698
Upstream info / review: https://github.com/CodeConstruct/phosphor-dbus-interfaces/commits/dev/nvme-redfish
Upstream-Status: Pending
Justification: CodeConstruct will upstream these patches. After
that, we can bump and remove these patches.
---
.../Inventory/Item/DriveErase/meson.build | 15 +++++
.../Inventory/Item/meson.build | 15 +++++
.../openbmc_project/Nvme/Drive/meson.build | 15 +++++
.../Inventory/Item/DriveErase.interface.yaml | 57 +++++++++++++++++++
4 files changed, 102 insertions(+)
create mode 100644 gen/xyz/openbmc_project/Inventory/Item/DriveErase/meson.build
create mode 100644 gen/xyz/openbmc_project/Nvme/Drive/meson.build
create mode 100644 yaml/xyz/openbmc_project/Inventory/Item/DriveErase.interface.yaml
diff --git a/gen/xyz/openbmc_project/Inventory/Item/DriveErase/meson.build b/gen/xyz/openbmc_project/Inventory/Item/DriveErase/meson.build
new file mode 100644
index 0000000..c7daf5e
--- /dev/null
+++ b/gen/xyz/openbmc_project/Inventory/Item/DriveErase/meson.build
@@ -0,0 +1,15 @@
+# Generated file; do not modify.
+generated_sources += custom_target(
+ 'xyz/openbmc_project/Inventory/Item/DriveErase__cpp'.underscorify(),
+ input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/DriveErase.interface.yaml', ],
+ output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'client.hpp', ],
+ depend_files: sdbusplusplus_depfiles,
+ command: [
+ sdbuspp_gen_meson_prog, '--command', 'cpp',
+ '--output', meson.current_build_dir(),
+ '--tool', sdbusplusplus_prog,
+ '--directory', meson.current_source_dir() / '../../../../../../yaml',
+ 'xyz/openbmc_project/Inventory/Item/DriveErase',
+ ],
+)
+
diff --git a/gen/xyz/openbmc_project/Inventory/Item/meson.build b/gen/xyz/openbmc_project/Inventory/Item/meson.build
index 38a0f33..0d0065d 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/meson.build
@@ -193,6 +193,21 @@ generated_others += custom_target(
],
)
+subdir('DriveErase')
+generated_others += custom_target(
+ 'xyz/openbmc_project/Inventory/Item/DriveErase__markdown'.underscorify(),
+ input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/DriveErase.interface.yaml', ],
+ output: [ 'DriveErase.md' ],
+ depend_files: sdbusplusplus_depfiles,
+ command: [
+ sdbuspp_gen_meson_prog, '--command', 'markdown',
+ '--output', meson.current_build_dir(),
+ '--tool', sdbusplusplus_prog,
+ '--directory', meson.current_source_dir() / '../../../../../yaml',
+ 'xyz/openbmc_project/Inventory/Item/DriveErase',
+ ],
+)
+
subdir('Ethernet')
generated_others += custom_target(
'xyz/openbmc_project/Inventory/Item/Ethernet__markdown'.underscorify(),
diff --git a/gen/xyz/openbmc_project/Nvme/Drive/meson.build b/gen/xyz/openbmc_project/Nvme/Drive/meson.build
new file mode 100644
index 0000000..478fc18
--- /dev/null
+++ b/gen/xyz/openbmc_project/Nvme/Drive/meson.build
@@ -0,0 +1,15 @@
+# Generated file; do not modify.
+generated_sources += custom_target(
+ 'xyz/openbmc_project/Nvme/Drive__cpp'.underscorify(),
+ input: [ '../../../../../yaml/xyz/openbmc_project/Nvme/Drive.interface.yaml', ],
+ output: [ 'error.cpp', 'error.hpp', 'server.cpp', 'server.hpp', 'client.hpp', ],
+ depend_files: sdbusplusplus_depfiles,
+ command: [
+ sdbuspp_gen_meson_prog, '--command', 'cpp',
+ '--output', meson.current_build_dir(),
+ '--tool', sdbusplusplus_prog,
+ '--directory', meson.current_source_dir() / '../../../../../yaml',
+ 'xyz/openbmc_project/Nvme/Drive',
+ ],
+)
+
diff --git a/yaml/xyz/openbmc_project/Inventory/Item/DriveErase.interface.yaml b/yaml/xyz/openbmc_project/Inventory/Item/DriveErase.interface.yaml
new file mode 100644
index 0000000..7851af2
--- /dev/null
+++ b/yaml/xyz/openbmc_project/Inventory/Item/DriveErase.interface.yaml
@@ -0,0 +1,57 @@
+description: >
+ NVMe-specific drive state management
+methods:
+ - name: Erase
+ description: >
+ Erases all storage user data. This is performed asynchronously,
+ callers can wait for the EraseInProgress property. An error may be
+ returned immediately, or after the erase completes.
+
+ parameters:
+ - name: Action
+ type: enum[self.EraseAction]
+ errors:
+ - xyz.openbmc_project.Common.Error.NotAllowed
+ - xyz.openbmc_project.Common.Error.UnsupportedRequest
+ - xyz.openbmc_project.Common.Error.Unavailable
+ - xyz.openbmc_project.Common.Error.DeviceOperationFailed
+
+properties:
+ - name: EraseInProgress
+ type: boolean
+ description: >
+ Indicates that an Erase operation is in progress.
+
+ - name: ErrorName
+ type: string
+ description: >
+ Indicates that the last Erase method call failed, corresponds to an
+ error enum.
+
+ - name: ErrorDescription
+ type: string
+ description: >
+ Indicates that the last Erase method call failed, is a text
+ description.
+
+ - name: ErasePercentage
+ type: double
+ description: >
+ Indicates the percentage completed of a Sanitize, in the range 0.0 to
+ 100.0 Only valid when SanitizeInProgress = true, will be set to 0.0
+ otherwise.
+
+enumerations:
+ - name: EraseAction
+ description: >
+ The action to perform
+ values:
+ - name: BlockErase
+ description: >
+ Low-level block erase
+ - name: CryptoErase
+ description: >
+ Erase by changing encryption keys
+ - name: Overwrite
+ description: >
+ Erase by writing over media
--
2.42.0.582.g8ccd20d70d-goog