Chris Roberts f5d778d51a Revert "Merge pull request #300 from hashicorp/optimize-ruby-command-list"
This reverts commit 1c26a4abb0c9e095b3f6ec9944c4b15f6f1cd064, reversing
changes made to 186824a568583d8f6f2a50501d940ed71608fa0b.

The changes broke plugin loading when using subcommands so these
changes will be reverted until the underlying issue can be
investigated and resolved.
2022-07-07 14:03:56 -07:00

89 lines
2.2 KiB
Protocol Buffer

syntax = "proto3";
package hashicorp.vagrant;
option go_package = "github.com/hashicorp/vagrant/internal/server/proto/ruby_vagrant";
import "google/protobuf/empty.proto";
import "google/protobuf/any.proto";
import "google/rpc/error_details.proto";
import "plugin.proto";
// The service that is implemented for the server backend.
service RubyVagrant {
// Gets available ruby plugins
rpc GetPlugins(google.protobuf.Empty) returns (GetPluginsResponse);
rpc ParseVagrantfile(ParseVagrantfileRequest) returns (ParseVagrantfileResponse);
rpc ParseVagrantfileProc(ParseVagrantfileProcRequest) returns (ParseVagrantfileResponse);
rpc ParseVagrantfileSubvm(ParseVagrantfileSubvmRequest) returns (ParseVagrantfileResponse);
rpc ParseVagrantfileProvider(ParseVagrantfileProviderRequest) returns (ParseVagrantfileResponse);
}
/********************************************************************
* Plugins
********************************************************************/
message GetPluginsResponse {
repeated Plugin plugins = 1;
}
message Plugin {
// name of the plugin
string name = 1;
// type of the plugin
Type type = 2;
// options for the plugin
google.protobuf.Any options = 3;
// Supported plugin types, the values here MUST match the enum values
// in the Go sdk/component package exactly. A test in internal/server
// validates this.
enum Type {
UNKNOWN = 0;
COMMAND = 1;
COMMUNICATOR = 2;
GUEST = 3;
HOST = 4;
PROVIDER = 5;
PROVISIONER = 6;
SYNCEDFOLDER = 7;
AUTHENTICATOR = 8;
LOGPLATFORM = 9;
LOGVIEWER = 10;
MAPPER = 11;
CONFIG = 12;
PLUGININFO = 13;
PUSH = 14;
}
}
/********************************************************************
* Vagrantfile
********************************************************************/
message ParseVagrantfileRequest {
// Path to the Vagrantfile
string path = 1;
}
message ParseVagrantfileProcRequest {
sdk.Args.ProcRef proc = 1;
}
message ParseVagrantfileResponse {
// Vagrantfile representation
sdk.Args.Hash data = 1;
}
message ParseVagrantfileSubvmRequest {
sdk.Config.RawRubyValue subvm = 1;
}
message ParseVagrantfileProviderRequest {
sdk.Config.RawRubyValue subvm = 1;
string provider = 2;
}