Skip to content

Commit 09235ba

Browse files
committed
fix: extension cannot start smoothly
1 parent 3477034 commit 09235ba

File tree

10 files changed

+40
-16
lines changed

10 files changed

+40
-16
lines changed

console/atest-ui/src/App.vue

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
Share,
77
ArrowDown,
88
Guide,
9-
DataAnalysis, Help, Setting
9+
Help, Setting
1010
} from '@element-plus/icons-vue'
1111
import * as ElementPlusIcons from '@element-plus/icons-vue'
1212
import { ref, watch, getCurrentInstance} from 'vue'
@@ -152,16 +152,16 @@ API.GetMenus((menus) => {
152152
<el-icon><Guide /></el-icon>
153153
<template #title>{{ t('title.mock' )}}</template>
154154
</el-menu-item>
155-
<el-menu-item index="store">
156-
<el-icon><location /></el-icon>
157-
<template #title>{{ t('title.stores') }}</template>
158-
</el-menu-item>
159155
<span v-for="menu in extensionMenus" :key="menu.index" :index="menu.index">
160156
<el-menu-item :index="menu.index">
161157
<el-icon><component :is="ElementPlusIcons[menu.icon]" /></el-icon>
162158
<template #title>{{ menu.name }}</template>
163159
</el-menu-item>
164160
</span>
161+
<el-menu-item index="store">
162+
<el-icon><location /></el-icon>
163+
<template #title>{{ t('title.stores') }}</template>
164+
</el-menu-item>
165165
</el-menu>
166166
</el-aside>
167167

pkg/server/remote_server.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828
"path/filepath"
2929
reflect "reflect"
3030
"regexp"
31+
"runtime"
3132
"slices"
3233
"strconv"
3334
"strings"
@@ -1247,10 +1248,7 @@ func (s *server) CreateStore(ctx context.Context, in *Store) (reply *Store, err
12471248
storeFactory := testing.NewStoreFactory(s.configDir)
12481249
store := ToNormalStore(in)
12491250

1250-
if store.Kind.URL == "" {
1251-
store.Kind.URL = fmt.Sprintf("unix://%s", home.GetExtensionSocketPath(store.Kind.Name))
1252-
}
1253-
1251+
handleStore(&store)
12541252
if err = storeFactory.CreateStore(store); err == nil && s.storeExtMgr != nil {
12551253
err = s.storeExtMgr.Start(store.Kind.Name, store.Kind.URL)
12561254
}
@@ -1260,6 +1258,7 @@ func (s *server) UpdateStore(ctx context.Context, in *Store) (reply *Store, err
12601258
reply = &Store{}
12611259
storeFactory := testing.NewStoreFactory(s.configDir)
12621260
store := ToNormalStore(in)
1261+
handleStore(&store)
12631262
if err = storeFactory.UpdateStore(store); err == nil && s.storeExtMgr != nil {
12641263
// TODO need to restart extension if config was changed
12651264
err = s.storeExtMgr.Start(store.Kind.Name, store.Kind.URL)
@@ -1276,14 +1275,21 @@ func (s *server) VerifyStore(ctx context.Context, in *SimpleQuery) (reply *Exten
12761275
reply = &ExtensionStatus{}
12771276
var loader testing.Writer
12781277
if loader, err = s.getLoaderByStoreName(in.Name); err == nil && loader != nil {
1279-
readOnly, verifyErr := loader.Verify()
1278+
readOnly, version, verifyErr := loader.Verify()
12801279
reply.Ready = verifyErr == nil
1280+
reply.Version = version
12811281
reply.ReadOnly = readOnly
12821282
reply.Message = util.OKOrErrorMessage(verifyErr)
12831283
}
12841284
return
12851285
}
12861286

1287+
func handleStore(store *testing.Store) {
1288+
if store.Kind.URL == "" && runtime.GOOS != "windows" {
1289+
store.Kind.URL = fmt.Sprintf("unix://%s", home.GetExtensionSocketPath(store.Kind.Name))
1290+
}
1291+
}
1292+
12871293
// secret related interfaces
12881294
func (s *server) GetSecrets(ctx context.Context, in *Empty) (reply *Secrets, err error) {
12891295
return s.secretServer.GetSecrets(ctx, in)

pkg/server/server.pb.go

Lines changed: 12 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/server/server.proto

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -616,6 +616,7 @@ message StoreKind {
616616
repeated StoreKindDependency dependencies = 4;
617617
string link = 5;
618618
repeated StoreKindParam params = 6;
619+
repeated string categories = 7;
619620
}
620621

621622
message StoreKindDependency {

pkg/server/store_ext_manager.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,13 +98,18 @@ func (s *storeExtManager) StartPlugin(storeKind testing.StoreKind) {
9898
}
9999

100100
func (s *storeExtManager) Start(name, socket string) (err error) {
101+
serverLogger.Info("start", "extension", name, "socket", socket)
101102
if v, ok := s.extStatusMap[name]; ok && v {
102103
return
103104
}
105+
104106
platformBasedName := name
105107
if s.execer.OS() == "windows" {
106108
platformBasedName += ".exe"
109+
} else {
110+
socket = fmt.Sprintf("unix://%s", home.GetExtensionSocketPath(name))
107111
}
112+
108113
targetDir := home.GetUserBinDir()
109114
targetBinaryFile := filepath.Join(targetDir, platformBasedName)
110115

pkg/testing/loader.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ type Loader interface {
2424
GetCount() int
2525
Reset()
2626

27-
Verify() (readOnly bool, err error)
27+
Verify() (readOnly bool, version string, err error)
2828
PProf(name string) []byte
2929

3030
Query(query map[string]string) (result DataResult, err error)

pkg/testing/loader_file.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -504,7 +504,7 @@ func (l *fileLoader) RenameTestSuite(oldName, newName string) (err error) {
504504
return
505505
}
506506

507-
func (l *fileLoader) Verify() (readOnly bool, err error) {
507+
func (l *fileLoader) Verify() (readOnly bool, version string, err error) {
508508
// always be okay
509509
return
510510
}

pkg/testing/loader_non.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ func (l *nonLoader) RenameTestSuite(oldName, newName string) (err error) {
141141
return
142142
}
143143

144-
func (l *nonLoader) Verify() (readOnly bool, err error) {
144+
func (l *nonLoader) Verify() (readOnly bool, version string, err error) {
145145
// always be okay
146146
return
147147
}

pkg/testing/remote/grpc_store.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,14 +285,15 @@ func (g *gRPCLoader) RenameTestSuite(oldName, newName string) (err error) {
285285
return
286286
}
287287

288-
func (g *gRPCLoader) Verify() (readOnly bool, err error) {
288+
func (g *gRPCLoader) Verify() (readOnly bool, version string, err error) {
289289
// avoid to long to wait the response
290290
ctx, cancel := context.WithTimeout(g.ctx, time.Second*5)
291291
defer cancel()
292292

293293
var result *server.ExtensionStatus
294294
if result, err = g.client.Verify(ctx, &server.Empty{}); err == nil {
295295
readOnly = result.ReadOnly
296+
version = result.Version
296297
if !result.Ready {
297298
err = errors.New(result.Message)
298299
}

pkg/testing/store.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ type StoreKind struct {
105105
Params []StoreKindParam
106106
Link string
107107
Enabled bool
108+
Categories []string
108109
}
109110

110111
type StoreKindDependency struct {

0 commit comments

Comments
 (0)