Skip to content

Commit b896fbf

Browse files
committed
driver(registry): prioritize internal drivers
Signed-off-by: Ansuman Sahoo <anshumansahoo500@gmail.com>
1 parent 5f4f779 commit b896fbf

File tree

1 file changed

+17
-10
lines changed

1 file changed

+17
-10
lines changed

pkg/registry/registry.go

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ var (
3535
)
3636

3737
func List() map[string]string {
38+
if err := discoverDrivers(); err != nil {
39+
logrus.Warnf("Error discovering drivers: %v", err)
40+
}
41+
3842
vmTypes := make(map[string]string)
3943
for name := range internalDrivers {
4044
vmTypes[name] = "internal"
@@ -46,6 +50,10 @@ func List() map[string]string {
4650
}
4751

4852
func Get(name string) (*ExternalDriver, driver.Driver, bool) {
53+
if err := discoverDrivers(); err != nil {
54+
logrus.Warnf("Error discovering drivers: %v", err)
55+
}
56+
4957
internalDriver, exists := internalDrivers[name]
5058
if !exists {
5159
externalDriver, exists := ExternalDrivers[name]
@@ -56,19 +64,24 @@ func Get(name string) (*ExternalDriver, driver.Driver, bool) {
5664
return nil, internalDriver, exists
5765
}
5866

59-
func RegisterExternalDriver(name, path string) {
67+
func registerExternalDriver(name, path string) {
6068
if _, exists := ExternalDrivers[name]; exists {
61-
logrus.Debugf("Driver %q is already registered, skipping", name)
6269
return
6370
}
71+
72+
if _, exists := internalDrivers[name]; exists {
73+
logrus.Warnf("Driver %q is already registered as an internal driver, skipping external registration", name)
74+
return
75+
}
76+
6477
ExternalDrivers[name] = &ExternalDriver{
6578
Name: name,
6679
Path: path,
6780
Logger: logrus.New(),
6881
}
6982
}
7083

71-
func DiscoverDrivers() error {
84+
func discoverDrivers() error {
7285
prefix, err := usrlocalsharelima.Prefix()
7386
if err != nil {
7487
return err
@@ -144,19 +157,13 @@ func registerDriverFile(path string) {
144157

145158
name := strings.TrimPrefix(base, "lima-driver-")
146159

147-
RegisterExternalDriver(name, path)
160+
registerExternalDriver(name, path)
148161
}
149162

150163
func isExecutable(mode os.FileMode) bool {
151164
return mode&0111 != 0
152165
}
153166

154-
func init() {
155-
if err := DiscoverDrivers(); err != nil {
156-
logrus.Warnf("Error discovering drivers: %v", err)
157-
}
158-
}
159-
160167
func Register(driver driver.Driver) {
161168
name := driver.Info().DriverName
162169
if _, exists := internalDrivers[name]; exists {

0 commit comments

Comments
 (0)