Skip to content

Commit 873db3a

Browse files
committed
fix: extension cannot download
1 parent db6b0b5 commit 873db3a

File tree

3 files changed

+20
-16
lines changed

3 files changed

+20
-16
lines changed

cmd/server.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -264,13 +264,12 @@ func (o *serverOption) runE(cmd *cobra.Command, args []string) (err error) {
264264
storeExtMgr := server.NewStoreExtManager(o.execer)
265265
storeExtMgr.WithDownloader(extDownloader)
266266
remoteServer := server.NewRemoteServer(loader, remote.NewGRPCloaderFromStore(), secretServer, storeExtMgr, o.configDir, o.grpcMaxRecvMsgSize)
267-
kinds, storeKindsErr := remoteServer.GetStoreKinds(ctx, nil)
268-
if storeKindsErr != nil {
269-
cmd.PrintErrf("failed to get store kinds, error: %v\n", storeKindsErr)
270-
} else {
271-
if runPluginErr := startPlugins(storeExtMgr, kinds); runPluginErr != nil {
267+
if stores, storeErr := remoteServer.GetStores(ctx, nil); storeErr == nil {
268+
if runPluginErr := startPlugins(storeExtMgr, stores); runPluginErr != nil {
272269
cmd.PrintErrf("error occurred during starting plugins, error: %v\n", runPluginErr)
273270
}
271+
} else {
272+
cmd.PrintErrf("error occurred during getting stores, error: %v\n", storeErr)
274273
}
275274

276275
// create mock server controller
@@ -438,13 +437,14 @@ func postRequestProxy(proxy string) func(w http.ResponseWriter, r *http.Request,
438437
}
439438
}
440439

441-
func startPlugins(storeExtMgr server.ExtManager, kinds *server.StoreKinds) (err error) {
442-
const socketPrefix = "unix://"
443-
444-
for _, kind := range kinds.Data {
445-
if kind.Enabled && (strings.HasPrefix(kind.Url, socketPrefix) || strings.Contains(kind.Url, ":")) {
446-
err = errors.Join(err, storeExtMgr.Start(kind.Name, kind.Url))
440+
func startPlugins(storeExtMgr server.ExtManager, stores *server.Stores) (err error) {
441+
for _, store := range stores.Data {
442+
if store.Disabled || store.Kind == nil {
443+
continue
447444
}
445+
446+
kind := store.Kind
447+
err = errors.Join(err, storeExtMgr.Start(kind.Name, kind.Url))
448448
}
449449
return
450450
}

pkg/downloader/oci.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ func (d *defaultOCIDownloader) Download(image, tag, file string) (reader io.Read
135135
}
136136
}
137137

138-
err = fmt.Errorf("not found %s", file)
138+
err = fmt.Errorf("not found %s from %s", file, api)
139139
return
140140
}
141141

pkg/server/store_ext_manager.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,9 @@ func (s *storeExtManager) StartPlugin(storeKind testing.StoreKind) {
9898
}
9999

100100
func (s *storeExtManager) Start(name, socket string) (err error) {
101+
if name == "" {
102+
}
103+
101104
serverLogger.Info("start", "extension", name, "socket", socket)
102105
if v, ok := s.extStatusMap[name]; ok && v {
103106
return
@@ -123,13 +126,14 @@ func (s *storeExtManager) Start(name, socket string) (err error) {
123126
if err != nil {
124127
err = fmt.Errorf("not found extension, try to download it, error: %v", err)
125128
go func() {
126-
s.ociDownloader.WithKind("store")
127-
s.ociDownloader.WithOS(s.execer.OS())
128-
reader, dErr := s.ociDownloader.Download(name, "", "")
129+
ociDownloader := downloader.NewStoreDownloader()
130+
ociDownloader.WithKind("store")
131+
ociDownloader.WithOS(s.execer.OS())
132+
reader, dErr := ociDownloader.Download(name, "", "")
129133
if dErr != nil {
130134
serverLogger.Error(dErr, "failed to download extension", "name", name)
131135
} else {
132-
extFile := s.ociDownloader.GetTargetFile()
136+
extFile := ociDownloader.GetTargetFile()
133137

134138
targetFile := filepath.Base(extFile)
135139
if dErr = downloader.WriteTo(reader, targetDir, targetFile); dErr == nil {

0 commit comments

Comments
 (0)