@@ -22,6 +22,7 @@ import (
22
22
"github.com/hashicorp/vagrant-plugin-sdk/internal-shared/cacher"
23
23
"github.com/hashicorp/vagrant-plugin-sdk/internal-shared/cleanup"
24
24
"github.com/hashicorp/vagrant-plugin-sdk/internal-shared/protomappers"
25
+ "github.com/hashicorp/vagrant/internal/server/proto/ruby_vagrant"
25
26
"github.com/hashicorp/vagrant/internal/serverclient"
26
27
)
27
28
@@ -137,7 +138,32 @@ func (m *Manager) LegacyEnabled() bool {
137
138
138
139
// Load legacy Ruby based Vagrant plugins using a
139
140
// running Vagrant runtime
140
- func (m * Manager ) LoadLegacyPlugins (
141
+ func (m * Manager ) LoadLocalLegacyPlugins (
142
+ c * serverclient.RubyVagrantClient , // Client connection to the Legacy Ruby Vagrant server
143
+ r plugin.ClientProtocol , // go-plugin client connection to Ruby plugin server
144
+ path string , // project plugin path
145
+ ) (err error ) {
146
+ m .m .Lock ()
147
+ defer m .m .Unlock ()
148
+
149
+ m .logger .Trace ("loading ruby based legacy vagrant plugins" )
150
+
151
+ plugins , err := c .GetLocalPlugins (path )
152
+ if err != nil {
153
+ m .logger .Trace ("failed to fetch ruby based legacy vagrant plugin information" ,
154
+ "error" , err ,
155
+ )
156
+
157
+ return
158
+ }
159
+
160
+ err = m .RegisterLegacyPlugins (c , r , plugins )
161
+ return
162
+ }
163
+
164
+ // Load legacy Ruby based Vagrant plugins using a
165
+ // running Vagrant runtime
166
+ func (m * Manager ) LoadGlobalLegacyPlugins (
141
167
c * serverclient.RubyVagrantClient , // Client connection to the Legacy Ruby Vagrant server
142
168
r plugin.ClientProtocol , // go-plugin client connection to Ruby plugin server
143
169
) (err error ) {
@@ -151,15 +177,23 @@ func (m *Manager) LoadLegacyPlugins(
151
177
152
178
m .logger .Trace ("loading ruby based legacy vagrant plugins" )
153
179
154
- plugins , err := c .GetPlugins ()
180
+ plugins , err := c .GetGlobalPlugins ()
155
181
if err != nil {
156
182
m .logger .Trace ("failed to fetch ruby based legacy vagrant plugin information" ,
157
183
"error" , err ,
158
184
)
159
185
160
186
return
161
187
}
188
+ err = m .RegisterLegacyPlugins (c , r , plugins )
189
+ return
190
+ }
162
191
192
+ func (m * Manager ) RegisterLegacyPlugins (
193
+ c * serverclient.RubyVagrantClient ,
194
+ r plugin.ClientProtocol ,
195
+ plugins []* ruby_vagrant.Plugin ,
196
+ ) (err error ) {
163
197
for _ , p := range plugins {
164
198
m .logger .Info ("loading ruby based legacy vagrant plugin" ,
165
199
"name" , p .Name ,
0 commit comments