@@ -144,7 +144,13 @@ func (r Render) renderReference(ctx context.Context, ref string) (*declcfg.Decla
144
144
if ! r .AllowedRefMask .Allowed (RefSqliteFile ) {
145
145
return nil , fmt .Errorf ("cannot render sqlite file: %w" , ErrNotAllowed )
146
146
}
147
- return sqliteToDeclcfg (ctx , ref )
147
+
148
+ db , err := sqlite .Open (ref )
149
+ if err != nil {
150
+ return nil , err
151
+ }
152
+ defer db .Close ()
153
+ return sqliteToDeclcfg (ctx , db )
148
154
}
149
155
150
156
func (r Render ) imageToDeclcfg (ctx context.Context , imageRef string ) (* declcfg.DeclarativeConfig , error ) {
@@ -170,7 +176,12 @@ func (r Render) imageToDeclcfg(ctx context.Context, imageRef string) (*declcfg.D
170
176
if ! r .AllowedRefMask .Allowed (RefSqliteImage ) {
171
177
return nil , fmt .Errorf ("cannot render sqlite image: %w" , ErrNotAllowed )
172
178
}
173
- cfg , err = sqliteToDeclcfg (ctx , filepath .Join (tmpDir , dbFile ))
179
+ db , err := sqlite .Open (filepath .Join (tmpDir , dbFile ))
180
+ if err != nil {
181
+ return nil , err
182
+ }
183
+ defer db .Close ()
184
+ cfg , err = sqliteToDeclcfg (ctx , db )
174
185
if err != nil {
175
186
return nil , err
176
187
}
@@ -222,13 +233,7 @@ func checkDBFile(ref string) error {
222
233
return nil
223
234
}
224
235
225
- func sqliteToDeclcfg (ctx context.Context , dbFile string ) (* declcfg.DeclarativeConfig , error ) {
226
- db , err := sqlite .Open (dbFile )
227
- if err != nil {
228
- return nil , err
229
- }
230
- defer db .Close ()
231
-
236
+ func sqliteToDeclcfg (ctx context.Context , db * sql.DB ) (* declcfg.DeclarativeConfig , error ) {
232
237
migrator , err := sqlite .NewSQLLiteMigrator (db )
233
238
if err != nil {
234
239
return nil , err
@@ -419,26 +424,17 @@ func isPackageManifest(entries []os.DirEntry) bool {
419
424
}
420
425
421
426
func renderPackageManifest (ctx context.Context , ref string ) (* declcfg.DeclarativeConfig , error ) {
422
- tmpDB , err := os .CreateTemp ("" , "opm-render-pm-" )
423
- if err != nil {
424
- return nil , err
425
- }
426
- if err := tmpDB .Close (); err != nil {
427
- return nil , err
428
- }
429
-
430
- db , err := sqlite .Open (tmpDB .Name ())
427
+ db , err := sql .Open ("sqlite3" , fmt .Sprintf ("file:%s?mode=memory&cache=shared&_foreign_keys=on" , ref ))
431
428
if err != nil {
432
429
return nil , err
433
430
}
434
431
defer db .Close ()
435
- defer os .RemoveAll (tmpDB .Name ())
436
432
437
433
dbLoader , err := sqlite .NewSQLLiteLoader (db )
438
434
if err != nil {
439
435
return nil , err
440
436
}
441
- if err := dbLoader .Migrate (context . TODO () ); err != nil {
437
+ if err := dbLoader .Migrate (ctx ); err != nil {
442
438
return nil , err
443
439
}
444
440
@@ -447,5 +443,5 @@ func renderPackageManifest(ctx context.Context, ref string) (*declcfg.Declarativ
447
443
return nil , fmt .Errorf ("error loading manifests from directory: %s" , err )
448
444
}
449
445
450
- return sqliteToDeclcfg (ctx , tmpDB . Name () )
446
+ return sqliteToDeclcfg (ctx , db )
451
447
}
0 commit comments