You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
3.0 KiB

From fe71f2135bdc3aa6ea28de7ed1ac324f7d689ed6 Mon Sep 17 00:00:00 2001
From: Thomas Parrott <thomas.parrott@canonical.com>
Date: Wed, 7 Feb 2024 16:53:29 +0000
Subject: [PATCH 1/2] shared/simplestreams/products: Fix regression in parsing
version files
Don't stop when finding first matching version file because the index is parsed
in random order and LXD calls it multiple times when figuring out which image
file to download and so stopping early can cause mismatches when trying to match
a converted alias to a specific file fingerprint.
Introduced with 3e9acc4
Signed-off-by: Thomas Parrott <thomas.parrott@canonical.com>
(cherry picked from commit 3681d5e54649fcc2fc9375b6820c1133f140228d)
---
shared/simplestreams/products.go | 4 ----
1 file changed, 4 deletions(-)
diff --git a/shared/simplestreams/products.go b/shared/simplestreams/products.go
index a07e4d5b1b5b..542051403899 100644
--- a/shared/simplestreams/products.go
+++ b/shared/simplestreams/products.go
@@ -279,8 +279,6 @@ func (s *Products) ToLXD() ([]api.Image, map[string][][]string) {
if err != nil {
continue
}
-
- break // Stop at first compatible item found.
} else if shared.StringInSlice(item.FileType, lxdCompatItems) {
// Locate the root files
for _, subItem := range version.Items {
@@ -291,8 +289,6 @@ func (s *Products) ToLXD() ([]api.Image, map[string][][]string) {
}
}
}
-
- break // Stop at first compatible item found.
}
}
}
From d3253e4cbc85b97e3bc6dba9a27fd2ab0c4d8685 Mon Sep 17 00:00:00 2001
From: Thomas Parrott <thomas.parrott@canonical.com>
Date: Wed, 7 Feb 2024 10:28:36 +0000
Subject: [PATCH 2/2] shared/simplestreams/simplestreams: Improve error
messages
Signed-off-by: Thomas Parrott <thomas.parrott@canonical.com>
(cherry picked from commit 56364f5a97373155d5e6a5a6b10d06d16a25fb3c)
---
shared/simplestreams/simplestreams.go | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/shared/simplestreams/simplestreams.go b/shared/simplestreams/simplestreams.go
index 3f3255cac913..68e1d96278a3 100644
--- a/shared/simplestreams/simplestreams.go
+++ b/shared/simplestreams/simplestreams.go
@@ -377,7 +377,7 @@ func (s *SimpleStreams) GetFiles(fingerprint string) (map[string]DownloadableFil
}
}
- return nil, fmt.Errorf("Couldn't find the requested image")
+ return nil, fmt.Errorf("Couldn't find the requested image for fingerprint %q", fingerprint)
}
// ListAliases returns a list of image aliases for the provided image fingerprint.
@@ -501,9 +501,9 @@ func (s *SimpleStreams) GetImage(fingerprint string) (*api.Image, error) {
}
if len(matches) == 0 {
- return nil, fmt.Errorf("The requested image couldn't be found")
+ return nil, fmt.Errorf("The requested image couldn't be found for fingerprint %q", fingerprint)
} else if len(matches) > 1 {
- return nil, fmt.Errorf("More than one match for the provided partial fingerprint")
+ return nil, fmt.Errorf("More than one match for the provided partial fingerprint %q", fingerprint)
}
return &matches[0], nil