From b3fbd44b5b98c1fffb5123b81e201c2f7da6724d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Wei=C3=9Fe?= Date: Wed, 12 Jun 2024 12:57:15 +0200 Subject: [PATCH] Move type switch for better error reporting MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Daniel Weiße --- cli/internal/cmd/verify.go | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/cli/internal/cmd/verify.go b/cli/internal/cmd/verify.go index 39021a595..5bce0af2a 100644 --- a/cli/internal/cmd/verify.go +++ b/cli/internal/cmd/verify.go @@ -190,13 +190,6 @@ func (c *verifyCmd) verify(cmd *cobra.Command, verifyClient verifyClient, config var attDocOutput string switch c.flags.output { case "json": - if !(attConfig.GetVariant().Equal(variant.AzureSEVSNP{}) || - attConfig.GetVariant().Equal(variant.AWSSEVSNP{}) || - attConfig.GetVariant().Equal(variant.GCPSEVSNP{}) || - attConfig.GetVariant().Equal(variant.AzureTDX{})) { - return errors.New("json output is only supported for SEV-SNP and TDX variants") - } - attDocOutput, err = formatJSON(cmd.Context(), rawAttestationDoc, attConfig, c.log) case "raw": attDocOutput = fmt.Sprintf("Attestation Document:\n%s\n", rawAttestationDoc) @@ -256,13 +249,14 @@ func formatJSON(ctx context.Context, docString string, attestationCfg config.Att return "", fmt.Errorf("unmarshalling attestation document: %w", err) } - if (attestationCfg.GetVariant().Equal(variant.AWSSEVSNP{}) || - attestationCfg.GetVariant().Equal(variant.AzureSEVSNP{}) || - attestationCfg.GetVariant().Equal(variant.GCPSEVSNP{})) { + switch attestationCfg.GetVariant() { + case variant.AWSSEVSNP{}, variant.AzureSEVSNP{}, variant.GCPSEVSNP{}: return snpFormatJSON(ctx, doc.InstanceInfo, attestationCfg, log) + case variant.AzureTDX{}: + return tdxFormatJSON(doc.InstanceInfo, attestationCfg) + default: + return "", fmt.Errorf("json output is not supported for variant %s", attestationCfg.GetVariant()) } - - return tdxFormatJSON(doc.InstanceInfo, attestationCfg) } func snpFormatJSON(ctx context.Context, instanceInfoRaw []byte, attestationCfg config.AttestationCfg, log debugLog,