@@ -67,28 +67,8 @@ func (i ImageIndexer) AddToIndex(request AddToIndexRequest) error {
67
67
return err
68
68
}
69
69
70
- // set a temp directory for unpacking an image
71
- // this is in its own function context so that the deferred cleanup runs before we do a docker build
72
- // which prevents the full contents of the previous image from being in the build context
73
- var databasePath string
74
- if err := func () error {
75
- tmpDir , err := ioutil .TempDir ("./" , tmpDirPrefix )
76
- if err != nil {
77
-
78
- return err
79
- }
80
- defer os .RemoveAll (tmpDir )
81
-
82
- databaseFile , err := i .getDatabaseFile (tmpDir , request .FromIndex )
83
- if err != nil {
84
- return err
85
- }
86
- // copy the index to the database folder in the build directory
87
- if databasePath , err = copyDatabaseTo (databaseFile , filepath .Join (buildDir , defaultDatabaseFolder )); err != nil {
88
- return err
89
- }
90
- return nil
91
- }(); err != nil {
70
+ databasePath , err := i .extractDatabase (buildDir , request .FromIndex )
71
+ if err != nil {
92
72
return err
93
73
}
94
74
@@ -148,28 +128,8 @@ func (i ImageIndexer) DeleteFromIndex(request DeleteFromIndexRequest) error {
148
128
return err
149
129
}
150
130
151
- // set a temp directory for unpacking an image
152
- // this is in its own function context so that the deferred cleanup runs before we do a docker build
153
- // which prevents the full contents of the previous image from being in the build context
154
- var databasePath string
155
- if err := func () error {
156
- tmpDir , err := ioutil .TempDir ("./" , tmpDirPrefix )
157
- if err != nil {
158
-
159
- return err
160
- }
161
- defer os .RemoveAll (tmpDir )
162
-
163
- databaseFile , err := i .getDatabaseFile (tmpDir , request .FromIndex )
164
- if err != nil {
165
- return err
166
- }
167
- // copy the index to the database folder in the build directory
168
- if databasePath , err = copyDatabaseTo (databaseFile , filepath .Join (buildDir , defaultDatabaseFolder )); err != nil {
169
- return err
170
- }
171
- return nil
172
- }(); err != nil {
131
+ databasePath , err := i .extractDatabase (buildDir , request .FromIndex )
132
+ if err != nil {
173
133
return err
174
134
}
175
135
@@ -224,28 +184,8 @@ func (i ImageIndexer) PruneFromIndex(request PruneFromIndexRequest) error {
224
184
return err
225
185
}
226
186
227
- // set a temp directory for unpacking an image
228
- // this is in its own function context so that the deferred cleanup runs before we do a docker build
229
- // which prevents the full contents of the previous image from being in the build context
230
- var databasePath string
231
- if err := func () error {
232
- tmpDir , err := ioutil .TempDir ("./" , tmpDirPrefix )
233
- if err != nil {
234
-
235
- return err
236
- }
237
- defer os .RemoveAll (tmpDir )
238
-
239
- databaseFile , err := i .getDatabaseFile (tmpDir , request .FromIndex )
240
- if err != nil {
241
- return err
242
- }
243
- // copy the index to the database folder in the build directory
244
- if databasePath , err = copyDatabaseTo (databaseFile , filepath .Join (buildDir , defaultDatabaseFolder )); err != nil {
245
- return err
246
- }
247
- return nil
248
- }(); err != nil {
187
+ databasePath , err := i .extractDatabase (buildDir , request .FromIndex )
188
+ if err != nil {
249
189
return err
250
190
}
251
191
@@ -282,6 +222,23 @@ func (i ImageIndexer) PruneFromIndex(request PruneFromIndexRequest) error {
282
222
return nil
283
223
}
284
224
225
+
226
+ // extractDatabase sets a temp directory for unpacking an image
227
+ func (i ImageIndexer ) extractDatabase (buildDir , fromIndex string ) (string , error ) {
228
+ tmpDir , err := ioutil .TempDir ("./" , tmpDirPrefix )
229
+ if err != nil {
230
+ return "" , err
231
+ }
232
+ defer os .RemoveAll (tmpDir )
233
+
234
+ databaseFile , err := i .getDatabaseFile (tmpDir , fromIndex )
235
+ if err != nil {
236
+ return "" , err
237
+ }
238
+ // copy the index to the database folder in the build directory
239
+ return copyDatabaseTo (databaseFile , filepath .Join (buildDir , defaultDatabaseFolder ))
240
+ }
241
+
285
242
func (i ImageIndexer ) getDatabaseFile (workingDir , fromIndex string ) (string , error ) {
286
243
if fromIndex == "" {
287
244
return path .Join (workingDir , defaultDatabaseFile ), nil
@@ -497,7 +454,7 @@ func (i ImageIndexer) ExportFromIndex(request ExportFromIndexRequest) error {
497
454
// operator-registry does not care about the folder name
498
455
folderName = bundleImage
499
456
}
500
- exporter := bundle .NewSQLExporterForBundle (bundleImage , filepath .Join (request .DownloadPath , folderName ), request .ContainerTool )
457
+ exporter := bundle .NewExporterForBundle (bundleImage , filepath .Join (request .DownloadPath , folderName ), request .ContainerTool )
501
458
if err := exporter .Export (); err != nil {
502
459
err = fmt .Errorf ("error exporting bundle from image: %s" , err )
503
460
errs = append (errs , err )
0 commit comments