56 lines
1.6 KiB
Ruby
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
|