From 5e56fa07e57355e9cd94d588a16b06936de5932f Mon Sep 17 00:00:00 2001 From: Sinny Kumari Date: Wed, 10 Jul 2019 15:41:18 +0530 Subject: [PATCH] switch artifacts to map Patch credit - Stephen Lowrie Signed-off-by: Sinny Kumari --- common.go | 14 -------------- release.go | 16 ++++++++-------- stream.go | 4 ++-- 3 files changed, 10 insertions(+), 24 deletions(-) diff --git a/common.go b/common.go index 310266d..6af7481 100644 --- a/common.go +++ b/common.go @@ -5,20 +5,6 @@ type Metadata struct { LastModified string `json:"last-modified"` } -// Artifacts contains various artifacts -type Artifacts struct { - Raw *ImageFormat `json:"raw.xz,omitempty"` - Qemu *ImageFormat `json:"qcow.xz,omitempty"` - Ova *ImageFormat `json:"ova,omitempty"` - Tar *ImageFormat `json:"tar.gz,omitempty"` - Vmdk *ImageFormat `json:"vmdk.xz,omitempty"` - Vdi *ImageFormat `json:"vdi.xz,omitempty"` - Iso *ImageFormat `json:"iso,omitempty"` - Pxe *ImageFormat `json:"pxe,omitempty"` - InstIso *ImageFormat `json:"installer.iso,omitempty"` - InstPxe *ImageFormat `json:"installer-pxe,omitempty"` -} - // ImageFormat contains Disk image details type ImageFormat struct { Disk *ImageType `json:"disk,omitempty"` diff --git a/release.go b/release.go index 6e14ac8..56d3ffe 100644 --- a/release.go +++ b/release.go @@ -29,20 +29,20 @@ type ReleaseMedia struct { // ReleaseAws contains AWS image information type ReleaseAws struct { - Artifacts Artifacts `json:"artifacts"` + Artifacts map[string]*ImageFormat `json:"artifacts"` Images *map[string]*ReleaseCloudImage `json:"images"` } // ReleaseDigitalOcean DigitalOcean image detail type ReleaseDigitalOcean struct { - Artifacts Artifacts `json:"artifacts"` - Image string `json:"image"` + Artifacts map[string]*ImageFormat `json:"artifacts"` + Image string `json:"image"` } // ReleaseAzure Azure image detail type ReleaseAzure struct { - Artifacts Artifacts `json:"artifacts"` - Images *ReleaseAzureImages `json:"images"` + Artifacts map[string]*ImageFormat `json:"artifacts"` + Images *ReleaseAzureImages `json:"images"` } // ReleaseAzureImages Azure image detail @@ -52,8 +52,8 @@ type ReleaseAzureImages struct { // ReleaseGcp GCP image detail type ReleaseGcp struct { - Artifacts Artifacts `json:"artifacts"` - Image *string `json:"image"` + Artifacts map[string]*ImageFormat `json:"artifacts"` + Image *string `json:"image"` } // ReleaseCloudImage cloud image information @@ -63,5 +63,5 @@ type ReleaseCloudImage struct { // ReleaseTargetPlatform target platforms type ReleaseTargetPlatform struct { - Artifacts Artifacts `json:"artifacts"` + Artifacts map[string]*ImageFormat `json:"artifacts"` } diff --git a/stream.go b/stream.go index 23fded1..4f6a3cc 100644 --- a/stream.go +++ b/stream.go @@ -30,8 +30,8 @@ type StreamArtifacts struct { // StreamMediaDetails contains image artifact and release detail type StreamMediaDetails struct { - Release string `json:"release"` - Formats Artifacts `json:"formats"` + Release string `json:"release"` + Formats map[string]*ImageFormat `json:"formats"` } // StreamImages contains images available in cloud providers