Add typed and named seed values

This commit is contained in:
Chris Roberts 2021-12-02 13:49:47 -08:00 committed by Paul Hinze
parent 167b8bf70d
commit ee95d6b01b
No known key found for this signature in database
GPG Key ID: B69DEDF2D55501C0

View File

@ -10,16 +10,6 @@ module VagrantPlugins
klass.prepend(Util::HasMapper)
end
def seed(*args)
raise NotImplementedError,
"Seeding is not currently supported via Ruby client"
end
def seeds
res = client.seeds(Empty.new)
res.arguments
end
# @param [Symbol] cap_name Capability name
# @return [Boolean]
def has_capability?(cap_name)
@ -42,13 +32,20 @@ module VagrantPlugins
# @param [Symbol] cap_name Name of the capability
def capability(cap_name, *args)
logger.debug("executing capability #{cap_name}")
arg_protos = seeds.map do |any|
arg_protos = seeds.typed.map do |any|
SDK::FuncSpec::Value.new(
name: "",
type: any.type_name,
value: any,
)
end
arg_protos += seeds.named.map do |name, any|
SDK::FuncSpec::Value.new(
name: name,
type: any.type_name,
value: any,
)
end
d = Types::Direct.new(arguments: args)
da = mapper.map(d, to: Google::Protobuf::Any)
arg_protos << SDK::FuncSpec::Value.new(