@@ -4,14 +4,12 @@ import (
44 "context"
55 "io/fs"
66 "os"
7- "path/filepath"
87 "testing"
98
109 "github.com/stretchr/testify/require"
1110
1211 "github.com/operator-framework/operator-registry/alpha/action"
1312 "github.com/operator-framework/operator-registry/alpha/declcfg"
14- "github.com/operator-framework/operator-registry/pkg/containertools"
1513 "github.com/operator-framework/operator-registry/pkg/image"
1614 "github.com/operator-framework/operator-registry/pkg/lib/bundle"
1715)
@@ -24,48 +22,10 @@ func TestMigrate(t *testing.T) {
2422 expectErr error
2523 }
2624
27- sqliteBundles := map [image.Reference ]string {
28- image .SimpleReference ("test.registry/foo-operator/foo-bundle:v0.1.0" ): "testdata/foo-bundle-v0.1.0" ,
29- image .SimpleReference ("test.registry/foo-operator/foo-bundle:v0.2.0" ): "testdata/foo-bundle-v0.2.0" ,
30- image .SimpleReference ("test.registry/bar-operator/bar-bundle:v0.1.0" ): "testdata/bar-bundle-v0.1.0" ,
31- image .SimpleReference ("test.registry/bar-operator/bar-bundle:v0.2.0" ): "testdata/bar-bundle-v0.2.0" ,
32- }
33-
34- sqliteDBDir := t .TempDir ()
35- dbFile := filepath .Join (sqliteDBDir , "index.db" )
36- err := generateSqliteFile (dbFile , sqliteBundles )
37- require .NoError (t , err )
38-
39- reg , err := newMigrateRegistry (t , sqliteBundles )
25+ reg , err := newMigrateRegistry (t )
4026 require .NoError (t , err )
4127
4228 specs := []spec {
43- {
44- name : "SqliteImage/Success" ,
45- migrate : action.Migrate {
46- CatalogRef : "test.registry/migrate/catalog:sqlite" ,
47- WriteFunc : declcfg .WriteYAML ,
48- FileExt : ".yaml" ,
49- Registry : reg ,
50- },
51- expectedFiles : map [string ]string {
52- "foo/catalog.yaml" : migrateFooCatalogSqlite (),
53- "bar/catalog.yaml" : migrateBarCatalogSqlite (),
54- },
55- },
56- {
57- name : "SqliteFile/Success" ,
58- migrate : action.Migrate {
59- CatalogRef : dbFile ,
60- WriteFunc : declcfg .WriteYAML ,
61- FileExt : ".yaml" ,
62- Registry : reg ,
63- },
64- expectedFiles : map [string ]string {
65- "foo/catalog.yaml" : migrateFooCatalogSqlite (),
66- "bar/catalog.yaml" : migrateBarCatalogSqlite (),
67- },
68- },
6929 {
7030 name : "DeclcfgImage/Success" ,
7131 migrate : action.Migrate {
@@ -100,20 +60,6 @@ func TestMigrate(t *testing.T) {
10060 },
10161 expectErr : action .ErrNotAllowed ,
10262 },
103- {
104- name : "SqliteImage/Success/NoMigrations" ,
105- migrate : action.Migrate {
106- CatalogRef : "test.registry/migrate/catalog:sqlite" ,
107- WriteFunc : declcfg .WriteYAML ,
108- FileExt : ".yaml" ,
109- Registry : reg ,
110- Migrations : nil ,
111- },
112- expectedFiles : map [string ]string {
113- "foo/catalog.yaml" : migrateFooCatalogSqlite (),
114- "bar/catalog.yaml" : migrateBarCatalogSqlite (),
115- },
116- },
11763 }
11864 for _ , s := range specs {
11965 t .Run (s .name , func (t * testing.T ) {
@@ -141,12 +87,7 @@ func TestMigrate(t *testing.T) {
14187 }
14288}
14389
144- func newMigrateRegistry (t * testing.T , imageMap map [image.Reference ]string ) (image.Registry , error ) {
145- subSqliteImage , err := generateSqliteFS (t , imageMap )
146- if err != nil {
147- return nil , err
148- }
149-
90+ func newMigrateRegistry (t * testing.T ) (image.Registry , error ) {
15091 subDeclcfgImage , err := fs .Sub (declcfgImage , "testdata/foo-index-v0.2.0-declcfg" )
15192 if err != nil {
15293 return nil , err
@@ -158,12 +99,6 @@ func newMigrateRegistry(t *testing.T, imageMap map[image.Reference]string) (imag
15899 }
159100
160101 reg := & image.MockRegistry {RemoteImages : map [image.Reference ]* image.MockImage {
161- image .SimpleReference ("test.registry/migrate/catalog:sqlite" ): {
162- Labels : map [string ]string {
163- containertools .DbLocationLabel : "/database/index.db" ,
164- },
165- FS : subSqliteImage ,
166- },
167102 image .SimpleReference ("test.registry/foo-operator/foo-index-declcfg:v0.2.0" ): {
168103 Labels : map [string ]string {
169104 "operators.operatorframework.io.index.configs.v1" : "/foo" ,
@@ -181,188 +116,6 @@ func newMigrateRegistry(t *testing.T, imageMap map[image.Reference]string) (imag
181116 return reg , nil
182117}
183118
184- func migrateFooCatalogSqlite () string {
185- return `---
186- defaultChannel: beta
187- name: foo
188- schema: olm.package
189- ---
190- entries:
191- - name: foo.v0.1.0
192- skipRange: <0.1.0
193- - name: foo.v0.2.0
194- replaces: foo.v0.1.0
195- skipRange: <0.2.0
196- skips:
197- - foo.v0.1.1
198- - foo.v0.1.2
199- name: beta
200- package: foo
201- schema: olm.channel
202- ---
203- entries:
204- - name: foo.v0.1.0
205- skipRange: <0.1.0
206- - name: foo.v0.2.0
207- replaces: foo.v0.1.0
208- skipRange: <0.2.0
209- skips:
210- - foo.v0.1.1
211- - foo.v0.1.2
212- name: stable
213- package: foo
214- schema: olm.channel
215- ---
216- image: test.registry/foo-operator/foo-bundle:v0.1.0
217- name: foo.v0.1.0
218- package: foo
219- properties:
220- - type: olm.gvk
221- value:
222- group: test.foo
223- kind: Foo
224- version: v1
225- - type: olm.gvk.required
226- value:
227- group: test.bar
228- kind: Bar
229- version: v1alpha1
230- - type: olm.package
231- value:
232- packageName: foo
233- version: 0.1.0
234- - type: olm.package.required
235- value:
236- packageName: bar
237- versionRange: <0.1.0
238- - type: olm.bundle.object
239- value:
240- data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsibmFtZSI6ImZvb3MudGVzdC5mb28ifSwic3BlYyI6eyJncm91cCI6InRlc3QuZm9vIiwibmFtZXMiOnsia2luZCI6IkZvbyIsInBsdXJhbCI6ImZvb3MifSwidmVyc2lvbnMiOlt7Im5hbWUiOiJ2MSJ9XX19
241- - type: olm.bundle.object
242- value:
243- data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsib2xtLnNraXBSYW5nZSI6Ilx1MDAzYzAuMS4wIn0sIm5hbWUiOiJmb28udjAuMS4wIn0sInNwZWMiOnsiY3VzdG9tcmVzb3VyY2VkZWZpbml0aW9ucyI6eyJvd25lZCI6W3siZ3JvdXAiOiJ0ZXN0LmZvbyIsImtpbmQiOiJGb28iLCJuYW1lIjoiZm9vcy50ZXN0LmZvbyIsInZlcnNpb24iOiJ2MSJ9XX0sImRpc3BsYXlOYW1lIjoiRm9vIE9wZXJhdG9yIiwicmVsYXRlZEltYWdlcyI6W3siaW1hZ2UiOiJ0ZXN0LnJlZ2lzdHJ5L2Zvby1vcGVyYXRvci9mb286djAuMS4wIiwibmFtZSI6Im9wZXJhdG9yIn1dLCJ2ZXJzaW9uIjoiMC4xLjAifX0=
244- relatedImages:
245- - image: test.registry/foo-operator/foo-bundle:v0.1.0
246- name: ""
247- - image: test.registry/foo-operator/foo:v0.1.0
248- name: operator
249- schema: olm.bundle
250- ---
251- image: test.registry/foo-operator/foo-bundle:v0.2.0
252- name: foo.v0.2.0
253- package: foo
254- properties:
255- - type: olm.gvk
256- value:
257- group: test.foo
258- kind: Foo
259- version: v1
260- - type: olm.gvk.required
261- value:
262- group: test.bar
263- kind: Bar
264- version: v1alpha1
265- - type: olm.package
266- value:
267- packageName: foo
268- version: 0.2.0
269- - type: olm.package.required
270- value:
271- packageName: bar
272- versionRange: <0.1.0
273- - type: olm.bundle.object
274- value:
275- data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsibmFtZSI6ImZvb3MudGVzdC5mb28ifSwic3BlYyI6eyJncm91cCI6InRlc3QuZm9vIiwibmFtZXMiOnsia2luZCI6IkZvbyIsInBsdXJhbCI6ImZvb3MifSwidmVyc2lvbnMiOlt7Im5hbWUiOiJ2MSJ9XX19
276- - type: olm.bundle.object
277- value:
278- data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsib2xtLnNraXBSYW5nZSI6Ilx1MDAzYzAuMi4wIn0sIm5hbWUiOiJmb28udjAuMi4wIn0sInNwZWMiOnsiY3VzdG9tcmVzb3VyY2VkZWZpbml0aW9ucyI6eyJvd25lZCI6W3siZ3JvdXAiOiJ0ZXN0LmZvbyIsImtpbmQiOiJGb28iLCJuYW1lIjoiZm9vcy50ZXN0LmZvbyIsInZlcnNpb24iOiJ2MSJ9XX0sImRpc3BsYXlOYW1lIjoiRm9vIE9wZXJhdG9yIiwiaW5zdGFsbCI6eyJzcGVjIjp7ImRlcGxveW1lbnRzIjpbeyJuYW1lIjoiZm9vLW9wZXJhdG9yIiwic3BlYyI6eyJ0ZW1wbGF0ZSI6eyJzcGVjIjp7ImNvbnRhaW5lcnMiOlt7ImltYWdlIjoidGVzdC5yZWdpc3RyeS9mb28tb3BlcmF0b3IvZm9vOnYwLjIuMCJ9XSwiaW5pdENvbnRhaW5lcnMiOlt7ImltYWdlIjoidGVzdC5yZWdpc3RyeS9mb28tb3BlcmF0b3IvZm9vLWluaXQ6djAuMi4wIn1dfX19fSx7Im5hbWUiOiJmb28tb3BlcmF0b3ItMiIsInNwZWMiOnsidGVtcGxhdGUiOnsic3BlYyI6eyJjb250YWluZXJzIjpbeyJpbWFnZSI6InRlc3QucmVnaXN0cnkvZm9vLW9wZXJhdG9yL2Zvby0yOnYwLjIuMCJ9XSwiaW5pdENvbnRhaW5lcnMiOlt7ImltYWdlIjoidGVzdC5yZWdpc3RyeS9mb28tb3BlcmF0b3IvZm9vLWluaXQtMjp2MC4yLjAifV19fX19XX0sInN0cmF0ZWd5IjoiZGVwbG95bWVudCJ9LCJyZWxhdGVkSW1hZ2VzIjpbeyJpbWFnZSI6InRlc3QucmVnaXN0cnkvZm9vLW9wZXJhdG9yL2Zvbzp2MC4yLjAiLCJuYW1lIjoib3BlcmF0b3IifSx7ImltYWdlIjoidGVzdC5yZWdpc3RyeS9mb28tb3BlcmF0b3IvZm9vLW90aGVyOnYwLjIuMCIsIm5hbWUiOiJvdGhlciJ9XSwicmVwbGFjZXMiOiJmb28udjAuMS4wIiwic2tpcHMiOlsiZm9vLnYwLjEuMSIsImZvby52MC4xLjIiXSwidmVyc2lvbiI6IjAuMi4wIn19
279- relatedImages:
280- - image: test.registry/foo-operator/foo-2:v0.2.0
281- name: ""
282- - image: test.registry/foo-operator/foo-bundle:v0.2.0
283- name: ""
284- - image: test.registry/foo-operator/foo-init-2:v0.2.0
285- name: ""
286- - image: test.registry/foo-operator/foo-init:v0.2.0
287- name: ""
288- - image: test.registry/foo-operator/foo-other:v0.2.0
289- name: other
290- - image: test.registry/foo-operator/foo:v0.2.0
291- name: operator
292- schema: olm.bundle
293- `
294- }
295-
296- func migrateBarCatalogSqlite () string {
297- return `---
298- defaultChannel: alpha
299- name: bar
300- schema: olm.package
301- ---
302- entries:
303- - name: bar.v0.1.0
304- - name: bar.v0.2.0
305- skipRange: <0.2.0
306- skips:
307- - bar.v0.1.0
308- name: alpha
309- package: bar
310- schema: olm.channel
311- ---
312- image: test.registry/bar-operator/bar-bundle:v0.1.0
313- name: bar.v0.1.0
314- package: bar
315- properties:
316- - type: olm.gvk
317- value:
318- group: test.bar
319- kind: Bar
320- version: v1alpha1
321- - type: olm.package
322- value:
323- packageName: bar
324- version: 0.1.0
325- - type: olm.bundle.object
326- value:
327- data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsibmFtZSI6ImJhcnMudGVzdC5iYXIifSwic3BlYyI6eyJncm91cCI6InRlc3QuYmFyIiwibmFtZXMiOnsia2luZCI6IkJhciIsInBsdXJhbCI6ImJhcnMifSwidmVyc2lvbnMiOlt7Im5hbWUiOiJ2MWFscGhhMSJ9XX19
328- - type: olm.bundle.object
329- value:
330- data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsibmFtZSI6ImJhci52MC4xLjAifSwic3BlYyI6eyJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zIjp7Im93bmVkIjpbeyJncm91cCI6InRlc3QuYmFyIiwia2luZCI6IkJhciIsIm5hbWUiOiJiYXJzLnRlc3QuYmFyIiwidmVyc2lvbiI6InYxYWxwaGExIn1dfSwicmVsYXRlZEltYWdlcyI6W3siaW1hZ2UiOiJ0ZXN0LnJlZ2lzdHJ5L2Jhci1vcGVyYXRvci9iYXI6djAuMS4wIiwibmFtZSI6Im9wZXJhdG9yIn1dLCJ2ZXJzaW9uIjoiMC4xLjAifX0=
331- relatedImages:
332- - image: test.registry/bar-operator/bar-bundle:v0.1.0
333- name: ""
334- - image: test.registry/bar-operator/bar:v0.1.0
335- name: operator
336- schema: olm.bundle
337- ---
338- image: test.registry/bar-operator/bar-bundle:v0.2.0
339- name: bar.v0.2.0
340- package: bar
341- properties:
342- - type: olm.gvk
343- value:
344- group: test.bar
345- kind: Bar
346- version: v1alpha1
347- - type: olm.package
348- value:
349- packageName: bar
350- version: 0.2.0
351- - type: olm.bundle.object
352- value:
353- data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsibmFtZSI6ImJhcnMudGVzdC5iYXIifSwic3BlYyI6eyJncm91cCI6InRlc3QuYmFyIiwibmFtZXMiOnsia2luZCI6IkJhciIsInBsdXJhbCI6ImJhcnMifSwidmVyc2lvbnMiOlt7Im5hbWUiOiJ2MWFscGhhMSJ9XX19
354- - type: olm.bundle.object
355- value:
356- data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsib2xtLnNraXBSYW5nZSI6Ilx1MDAzYzAuMi4wIn0sIm5hbWUiOiJiYXIudjAuMi4wIn0sInNwZWMiOnsiY3VzdG9tcmVzb3VyY2VkZWZpbml0aW9ucyI6eyJvd25lZCI6W3siZ3JvdXAiOiJ0ZXN0LmJhciIsImtpbmQiOiJCYXIiLCJuYW1lIjoiYmFycy50ZXN0LmJhciIsInZlcnNpb24iOiJ2MWFscGhhMSJ9XX0sInJlbGF0ZWRJbWFnZXMiOlt7ImltYWdlIjoidGVzdC5yZWdpc3RyeS9iYXItb3BlcmF0b3IvYmFyOnYwLjIuMCIsIm5hbWUiOiJvcGVyYXRvciJ9XSwic2tpcHMiOlsiYmFyLnYwLjEuMCJdLCJ2ZXJzaW9uIjoiMC4yLjAifX0=
357- relatedImages:
358- - image: test.registry/bar-operator/bar-bundle:v0.2.0
359- name: ""
360- - image: test.registry/bar-operator/bar:v0.2.0
361- name: operator
362- schema: olm.bundle
363- `
364- }
365-
366119func migrateFooCatalogFBC () string {
367120 return `---
368121defaultChannel: beta
0 commit comments