56 lines
1.6 KiB
Ruby

module VagrantPlugins
module CommandServe
class Client
class BoxMetadata < Client
def name
client.box_name(Empty.new).name
end
# @param [String] url for the metadata
def load_metadata(url)
client.load_metadata(SDK::BoxMetadata::LoadMetadataRequest.new(
url: url
))
end
# @param [String] version The version to return, this can also
# be a constraint.
# @param [Array<String>] (optional) adds a provider constraint to the version
def version(version, provider=[])
opts = []
provider.each do |p|
opts << SDK::BoxMetadata::BoxMetadataOpts.new(name: p)
end
v = client.version(SDK::BoxMetadata::VersionQuery.new(
version: version, opts: opts,
))
v.to_h
end
# @param [String] (optional) adds a provider constraint to the version list
def list_versions(provider)
v = client.list_versions(SDK::BoxMetadata::ListVersionsQuery.new(
opts: [SDK::BoxMetadata::BoxMetadataOpts.new(name: provider)],
))
v.versions
end
def provider(version, name)
p = client.provider(SDK::BoxMetadata::ProviderRequest.new(
version: version, name: name
))
p.to_h
end
def list_providers(version)
p = client.list_providers(SDK::BoxMetadata::ListProvidersRequest.new(
version: version
))
p.providers
end
end
end
end
end