Certs: add Interfaces for bulk installation and replacement
The corresponding design is in
https://gerrit.openbmc-project.xyz/c/openbmc/docs/+/49317.
Signed-off-by: Nan Zhou <nanzhoumails@gmail.com>
Change-Id: I969090951a2da59c67cea232f212e664a193425c
diff --git a/gen/xyz/openbmc_project/Certs/InstallAll/meson.build b/gen/xyz/openbmc_project/Certs/InstallAll/meson.build
new file mode 100644
index 0000000..4e1cf0a
--- /dev/null
+++ b/gen/xyz/openbmc_project/Certs/InstallAll/meson.build
@@ -0,0 +1,14 @@
+# Generated file; do not modify.
+generated_sources += custom_target(
+ 'xyz/openbmc_project/Certs/InstallAll__cpp'.underscorify(),
+ input: [ '../../../../../yaml/xyz/openbmc_project/Certs/InstallAll.interface.yaml', ],
+ output: [ 'server.cpp', 'server.hpp', 'client.hpp', ],
+ command: [
+ sdbuspp_gen_meson_prog, '--command', 'cpp',
+ '--output', meson.current_build_dir(),
+ '--tool', sdbusplusplus_prog,
+ '--directory', meson.current_source_dir() / '../../../../../yaml',
+ 'xyz/openbmc_project/Certs/InstallAll',
+ ],
+)
+
diff --git a/gen/xyz/openbmc_project/Certs/ReplaceAll/meson.build b/gen/xyz/openbmc_project/Certs/ReplaceAll/meson.build
new file mode 100644
index 0000000..c489a58
--- /dev/null
+++ b/gen/xyz/openbmc_project/Certs/ReplaceAll/meson.build
@@ -0,0 +1,14 @@
+# Generated file; do not modify.
+generated_sources += custom_target(
+ 'xyz/openbmc_project/Certs/ReplaceAll__cpp'.underscorify(),
+ input: [ '../../../../../yaml/xyz/openbmc_project/Certs/ReplaceAll.interface.yaml', ],
+ output: [ 'server.cpp', 'server.hpp', 'client.hpp', ],
+ command: [
+ sdbuspp_gen_meson_prog, '--command', 'cpp',
+ '--output', meson.current_build_dir(),
+ '--tool', sdbusplusplus_prog,
+ '--directory', meson.current_source_dir() / '../../../../../yaml',
+ 'xyz/openbmc_project/Certs/ReplaceAll',
+ ],
+)
+
diff --git a/gen/xyz/openbmc_project/Certs/meson.build b/gen/xyz/openbmc_project/Certs/meson.build
index 76d838a..416965d 100644
--- a/gen/xyz/openbmc_project/Certs/meson.build
+++ b/gen/xyz/openbmc_project/Certs/meson.build
@@ -82,6 +82,20 @@
],
)
+subdir('InstallAll')
+generated_others += custom_target(
+ 'xyz/openbmc_project/Certs/InstallAll__markdown'.underscorify(),
+ input: [ '../../../../yaml/xyz/openbmc_project/Certs/InstallAll.interface.yaml', ],
+ output: [ 'InstallAll.md' ],
+ command: [
+ sdbuspp_gen_meson_prog, '--command', 'markdown',
+ '--output', meson.current_build_dir(),
+ '--tool', sdbusplusplus_prog,
+ '--directory', meson.current_source_dir() / '../../../../yaml',
+ 'xyz/openbmc_project/Certs/InstallAll',
+ ],
+)
+
subdir('Replace')
generated_others += custom_target(
'xyz/openbmc_project/Certs/Replace__markdown'.underscorify(),
@@ -96,3 +110,17 @@
],
)
+subdir('ReplaceAll')
+generated_others += custom_target(
+ 'xyz/openbmc_project/Certs/ReplaceAll__markdown'.underscorify(),
+ input: [ '../../../../yaml/xyz/openbmc_project/Certs/ReplaceAll.interface.yaml', ],
+ output: [ 'ReplaceAll.md' ],
+ command: [
+ sdbuspp_gen_meson_prog, '--command', 'markdown',
+ '--output', meson.current_build_dir(),
+ '--tool', sdbusplusplus_prog,
+ '--directory', meson.current_source_dir() / '../../../../yaml',
+ 'xyz/openbmc_project/Certs/ReplaceAll',
+ ],
+)
+
diff --git a/yaml/xyz/openbmc_project/Certs/InstallAll.interface.yaml b/yaml/xyz/openbmc_project/Certs/InstallAll.interface.yaml
new file mode 100644
index 0000000..19d29f7
--- /dev/null
+++ b/yaml/xyz/openbmc_project/Certs/InstallAll.interface.yaml
@@ -0,0 +1,22 @@
+description: >
+ Certificate management interface to install authorities list.
+methods:
+ - name: InstallAll
+ description: >
+ Install the authority list and restart the associated services.
+ parameters:
+ - name: Path
+ type: string
+ description: >
+ Path of the file that contains a list of root certificates.
+
+ returns:
+ - name: ObjectPath
+ type: array[object_path]
+ description: >
+ D-Bus object path to created objects.
+
+ errors:
+ - xyz.openbmc_project.Common.Error.InternalFailure
+ - xyz.openbmc_project.Common.Error.NotAllowed
+ - xyz.openbmc_project.Certs.Error.InvalidCertificate
diff --git a/yaml/xyz/openbmc_project/Certs/ReplaceAll.interface.yaml b/yaml/xyz/openbmc_project/Certs/ReplaceAll.interface.yaml
new file mode 100644
index 0000000..dbbfffe
--- /dev/null
+++ b/yaml/xyz/openbmc_project/Certs/ReplaceAll.interface.yaml
@@ -0,0 +1,21 @@
+description: >
+ Authority Manager's interface to replace existing authorities list.
+methods:
+ - name: ReplaceAll
+ description: >
+ Replace the current authorities list and restart the associated
+ services.
+ parameters:
+ - name: Path
+ type: string
+ description: >
+ Path of file that contains multiple root certificates.
+ returns:
+ - name: ObjectPath
+ type: array[object_path]
+ description: >
+ D-Bus object path to created objects.
+ errors:
+ - xyz.openbmc_project.Common.Error.InternalFailure
+ - xyz.openbmc_project.Certs.Error.InvalidCertificate
+ - xyz.openbmc_project.Common.Error.NotAllowed