mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
pvimg: info: Use the s390-tools JSON meta data
Use the s390-tools JSON meta data for the JSON output of 'pvimg info' to make the JSON output more stable and to provide an stable API. Reviewed-by: Steffen Eiden <seiden@linux.ibm.com> Signed-off-by: Marc Hartmayer <marc@linux.ibm.com> Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
This commit is contained in:
committed by
Jan Höppner
parent
b5a750c2cc
commit
7c4b029020
@@ -12,7 +12,7 @@ use pv::{
|
||||
};
|
||||
use pvimg::{
|
||||
error::{Error, OwnExitCode},
|
||||
uvdata::{KeyExchangeTrait, SeH, SeHdr, UvDataTrait},
|
||||
uvdata::{EnvelopeSeHdrV1, KeyExchangeTrait, SeH, SeHdr, UvDataTrait},
|
||||
};
|
||||
|
||||
use crate::cli::{InfoArgs, OutputFormatKind, OutputFormatSpec, OutputFormatVariant};
|
||||
@@ -55,12 +55,13 @@ pub fn info(opt: &InfoArgs) -> Result<OwnExitCode> {
|
||||
kind: OutputFormatKind::Json,
|
||||
variant,
|
||||
} => {
|
||||
let doc = EnvelopeSeHdrV1::new(se_hdr);
|
||||
match variant {
|
||||
OutputFormatVariant::Minify => {
|
||||
serde_json::to_writer(&mut output, &se_hdr)?;
|
||||
serde_json::to_writer(&mut output, &doc)?;
|
||||
}
|
||||
OutputFormatVariant::Default | OutputFormatVariant::Pretty => {
|
||||
serde_json::to_writer_pretty(&mut output, &se_hdr)?
|
||||
serde_json::to_writer_pretty(&mut output, &doc)?;
|
||||
}
|
||||
}
|
||||
// Make sure the output ends with a new line
|
||||
|
||||
@@ -37,9 +37,10 @@ pub mod misc {
|
||||
pub mod uvdata {
|
||||
pub use crate::pv_utils::{
|
||||
AeadPlainDataTrait, BuilderTrait, ComponentMetadataV1, ControlFlagTrait, ControlFlagsTrait,
|
||||
FlagData, KeyExchangeTrait, PcfV1, PlaintextControlFlagsV1, ScfV1, SeH, SeHdr, SeHdrAadV1,
|
||||
SeHdrBinV1, SeHdrBuilder, SeHdrData, SeHdrDataV1, SeHdrPlain, SeHdrVersion, SeHdrVersioned,
|
||||
SecretControlFlagsV1, UvDataPlainTrait, UvDataTrait, UvKeyHashesV1,
|
||||
EnvelopeSeHdrV1, FlagData, KeyExchangeTrait, PcfV1, PlaintextControlFlagsV1, ScfV1, SeH,
|
||||
SeHdr, SeHdrAadV1, SeHdrBinV1, SeHdrBuilder, SeHdrData, SeHdrDataV1, SeHdrPlain,
|
||||
SeHdrVersion, SeHdrVersioned, SecretControlFlagsV1, UvDataPlainTrait, UvDataTrait,
|
||||
UvKeyHashesV1,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ pub use layout::{Interval, Layout};
|
||||
pub use misc::{round_up, try_copy_slice_to_array};
|
||||
pub use psw::{ShortPsw, PSW, PSW_MASK_BA, PSW_MASK_EA};
|
||||
pub use se_hdr::{
|
||||
ComponentMetadataV1, ControlFlagTrait, ControlFlagsTrait, FlagData, PcfV1,
|
||||
ComponentMetadataV1, ControlFlagTrait, ControlFlagsTrait, EnvelopeSeHdrV1, FlagData, PcfV1,
|
||||
PlaintextControlFlagsV1, ScfV1, SeH, SeHdr, SeHdrAadV1, SeHdrBinV1, SeHdrBuilder, SeHdrData,
|
||||
SeHdrDataV1, SeHdrPlain, SeHdrVersion, SeHdrVersioned, SecretControlFlagsV1,
|
||||
};
|
||||
|
||||
@@ -9,8 +9,8 @@ mod hdr_v1;
|
||||
mod keys;
|
||||
|
||||
pub use brb::{
|
||||
ComponentMetadata, ComponentMetadataV1, SeH, SeHdr, SeHdrBinV1, SeHdrData, SeHdrDataV1,
|
||||
SeHdrPlain, SeHdrVersion, SeHdrVersioned,
|
||||
ComponentMetadata, ComponentMetadataV1, EnvelopeSeHdrV1, SeH, SeHdr, SeHdrBinV1, SeHdrData,
|
||||
SeHdrDataV1, SeHdrPlain, SeHdrVersion, SeHdrVersioned,
|
||||
};
|
||||
pub use builder::SeHdrBuilder;
|
||||
pub use flags::{
|
||||
|
||||
@@ -16,6 +16,7 @@ use pv::{
|
||||
static_assert,
|
||||
};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use utils::S390ToolsMetaData;
|
||||
|
||||
pub use super::hdr_v1::{SeHdrBinV1, SeHdrDataV1};
|
||||
use super::{PlaintextControlFlagsV1, SecretControlFlagsV1};
|
||||
@@ -33,6 +34,27 @@ use crate::{
|
||||
},
|
||||
};
|
||||
|
||||
#[derive(Debug, PartialEq, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub struct EnvelopeSeHdrV1 {
|
||||
pub meta: S390ToolsMetaData,
|
||||
pub data: SeH,
|
||||
}
|
||||
|
||||
impl EnvelopeSeHdrV1 {
|
||||
/// Creates a new EnvelopeSeHdrV1 with the given data and default metadata
|
||||
///
|
||||
/// # Arguments
|
||||
///
|
||||
/// * `data` - The SE header data to wrap
|
||||
pub fn new(data: SeH) -> Self {
|
||||
Self {
|
||||
meta: S390ToolsMetaData::new(1),
|
||||
data,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[repr(u32)]
|
||||
#[non_exhaustive]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, DekuRead, DekuWrite, Serialize, Deserialize)]
|
||||
|
||||
Reference in New Issue
Block a user