Fix method for getting default synced folder type

As a part of a series of larger changes the default synced folder type
accidentally got wired up to DefaultProvider instead of its dedicated
defaultSyncedFolderType() method.

This was working fine for "virtualbox" where the provider name and the
synced folder name are both the same, but it was causing virtualbox
synced folders to be selected when using the "docker" provider and
making things break.

This is one necessary step to get machine lifecycles working again with
Docker.
This commit is contained in:
Paul Hinze 2022-07-07 11:21:28 -05:00
parent 186824a568
commit 91478e9e0a
No known key found for this signature in database
GPG Key ID: 70B94C31D170FB29

View File

@ -261,7 +261,7 @@ func StringToPathFunc() mapstructure.DecodeHookFunc {
}
}
func (m *Machine) defaultSyncedFolderType() (folderType *string, err error) {
func (m *Machine) defaultSyncedFolderType() (folderType string, err error) {
logger := m.logger.Named("default-synced-folder-type")
// Get all available synced folder plugins
@ -275,7 +275,7 @@ func (m *Machine) defaultSyncedFolderType() (folderType *string, err error) {
fullPlugin, err := m.project.basis.plugins.GetPlugin(sfp.Name, sfp.Type)
if err != nil {
logger.Error("error while loading synced folder plugin: name", sfp.Name, "err", err)
return nil, fmt.Errorf("error while loading synced folder plugin: name = %s, err = %s", sfp.Name, err)
return "", fmt.Errorf("error while loading synced folder plugin: name = %s, err = %s", sfp.Name, err)
}
sfPlugins[i] = fullPlugin
}
@ -336,13 +336,13 @@ func (m *Machine) defaultSyncedFolderType() (folderType *string, err error) {
}
if usable {
logger.Info("returning default", "name", sfp.Name)
return &sfp.Name, nil
return sfp.Name, nil
} else {
logger.Debug("skipping unusable plugin", "name", sfp.Name)
}
}
return nil, fmt.Errorf("failed to detect guest plugin for current platform")
return "", fmt.Errorf("failed to detect guest plugin for current platform")
}
// SyncedFolders implements core.Machine
@ -403,12 +403,7 @@ func (m *Machine) SyncedFolders() (folders []*core.MachineSyncedFolder, err erro
}
}
if ftype == "" {
ftype, err = m.project.DefaultProvider(
&core.DefaultProviderOptions{
CheckUsable: false,
MachineName: m.target.Name,
},
)
ftype, err = m.defaultSyncedFolderType()
if err != nil {
return nil, err
}