Update client implementation module usage

This commit is contained in:
Chris Roberts 2021-10-01 11:22:07 -07:00 committed by Paul Hinze
parent fd18051b0d
commit 2cd54c6079
No known key found for this signature in database
GPG Key ID: B69DEDF2D55501C0
8 changed files with 39 additions and 166 deletions

View File

@ -6,33 +6,17 @@ module VagrantPlugins
class Guest
include CapabilityPlatform
extend Util::Connector
attr_reader :broker
attr_reader :client
attr_reader :proto
def initialize(conn, proto, broker=nil)
@logger = Log4r::Logger.new("vagrant::command::serve::client::guest")
@logger.debug("connecting to guest service on #{conn}")
@client = SDK::GuestService::Stub.new(conn, :this_channel_is_insecure)
@broker = broker
@proto = proto
end
def self.load(raw_guest, broker:)
g = raw_guest.is_a?(String) ? SDK::Args::Guest.decode(raw_guest) : raw_guest
self.new(connect(proto: g, broker: broker), g, broker)
end
prepend Util::ClientSetup
prepend Util::HasLogger
# @return [<String>] parents
def parents
@logger.debug("getting parents")
logger.debug("getting parents")
req = SDK::FuncSpec::Args.new(
args: []
)
res = client.parents(req)
@logger.debug("got parents #{res}")
logger.debug("got parents #{res}")
res.parents
end
end

View File

@ -6,24 +6,8 @@ module VagrantPlugins
class Host
include CapabilityPlatform
extend Util::Connector
attr_reader :broker
attr_reader :client
attr_reader :proto
def initialize(conn, proto, broker=nil)
@logger = Log4r::Logger.new("vagrant::command::serve::client::host")
@logger.debug("connecting to host service on #{conn}")
@client = SDK::HostService::Stub.new(conn, :this_channel_is_insecure)
@broker = broker
@proto = proto
end
def self.load(raw_host, broker:)
g = raw_host.is_a?(String) ? SDK::Args::Host.decode(raw_host) : raw_host
self.new(connect(proto: g, broker: broker), g, broker)
end
prepend Util::ClientSetup
prepend Util::HasLogger
# @return [<String>] parents
def parents

View File

@ -6,24 +6,8 @@ module VagrantPlugins
# targets
class Machine < Target
extend Util::Connector
attr_reader :broker
attr_reader :client
attr_reader :proto
def initialize(conn, proto, broker=nil)
@logger = Log4r::Logger.new("vagrant::command::serve::client::machine")
@logger.debug("connecting to target machine service on #{conn}")
@client = SDK::TargetMachineService::Stub.new(conn, :this_channel_is_insecure)
@broker = broker
@proto = proto
end
def self.load(raw_machine, broker:)
m = raw_machine.is_a?(String) ? SDK::Args::Target::Machine.decode(raw_machine) : raw_machine
self.new(connect(proto: m, broker: broker), m, broker)
end
prepend Util::ClientSetup
prepend Util::HasLogger
# @return [String] resource identifier for this target
def ref
@ -49,9 +33,9 @@ module VagrantPlugins
# @return [Guest] machine guest
# TODO: This needs to be loaded properly
def guest
@logger.debug("Getting guest from remote machine")
logger.debug("Getting guest from remote machine")
g = client.guest(Empty.new)
Guest.load(g, broker: @broker)
Guest.load(g, broker: broker)
end
# @return [String] machine identifier

View File

@ -2,24 +2,8 @@ module VagrantPlugins
module CommandServe
module Client
class Project
extend Util::Connector
attr_reader :broker
attr_reader :client
attr_reader :proto
def initialize(conn, proto, broker=nil)
@logger = Log4r::Logger.new("vagrant::command::serve::client::project")
@logger.debug("connecting to project service on #{conn}")
@client = SDK::ProjectService::Stub.new(conn, :this_channel_is_insecure)
@broker = broker
@proto = proto
end
def self.load(raw_project, broker:)
p = raw_project.is_a?(String) ? SDK::Args::Project.decode(raw_project) : raw_project
self.new(connect(proto: p, broker: broker), p, broker)
end
prepend Util::ClientSetup
prepend Util::HasLogger
# return [String]
def cache_dir
@ -33,72 +17,72 @@ module VagrantPlugins
# return [String]
def cwd
resp = @client.cwd(Google::Protobuf::Empty.new)
resp = client.cwd(Empty.new)
resp.path
end
# return [Sdk::Args::DataDir::Project]
def data_dirs
resp = @client.data_dir(Google::Protobuf::Empty.new)
resp = client.data_dir(Empty.new)
resp
end
# return [String]
def data_dir
def data_dir
data_dirs.data_dir
end
# return [String]
def default_private_key
resp = @client.default_private_key(Google::Protobuf::Empty.new)
resp = client.default_private_key(Empty.new)
resp.key
end
# return [String]
def local_data
resp = @client.local_data(Google::Protobuf::Empty.new)
resp = client.local_data(Empty.new)
resp.path
end
# return [String]
def home
resp = @client.home(Google::Protobuf::Empty.new)
resp = client.home(Empty.new)
resp.path
end
# TODO
def host
h = @client.host(Google::Protobuf::Empty.new)
Host.load(h, broker: @broker)
h = client.host(Empty.new)
Host.load(h, broker: broker)
end
# return [<String>]
def target_names
resp = @client.target_names(Google::Protobuf::Empty.new)
resp = client.target_names(Empty.new)
resp.names
end
# return [VagrantPlugins::CommandServe::Client::TargetIndex]
def target_index
TargetIndex.load(
@client.target_index(Empty.new),
client.target_index(Empty.new),
broker: broker
)
end
# return [<String>]
def target_ids
resp = @client.target_ids(Google::Protobuf::Empty.new)
resp = client.target_ids(Empty.new)
resp.ids
end
# Returns a machine client for the given name
# return [VagrantPlugins::CommandServe::Client::Machine]
def target(name)
@logger.debug("searching for target #{name}")
logger.debug("searching for target #{name}")
target = Target.load(
client.target(SDK::Project::TargetRequest.new(name: name)),
broker: @broker
broker: broker
)
target.to_machine
end
@ -110,7 +94,7 @@ module VagrantPlugins
# return [String]
def tmp
resp = @client.tmp(Google::Protobuf::Empty.new)
resp = client.tmp(Empty.new)
resp.path
end

View File

@ -4,25 +4,8 @@ module VagrantPlugins
module CommandServe
module Client
class StateBag
extend Util::Connector
attr_reader :broker
attr_reader :client
attr_reader :proto
def initialize(conn, proto, broker=nil)
@logger = Log4r::Logger.new("vagrant::command::serve::client::statebag")
@logger.debug("connecting to state ba service on #{conn}")
@client = SDK::StateBagService::Stub.new(conn, :this_channel_is_insecure)
@broker = broker
@proto = proto
end
def self.load(raw_statebag, broker:)
s = raw_statebag.is_a?(String) ? SDK::Args::StateBag.decode(raw_statebag) : raw_statebag
self.new(connect(proto: s, broker: broker), s, broker)
end
prepend Util::ClientSetup
prepend Util::HasLogger
# @param [String]
# @return [String]

View File

@ -5,7 +5,8 @@ module VagrantPlugins
module Client
class Target
extend Util::Connector
prepend Util::ClientSetup
prepend Util::HasLogger
STATES = [
:UNKNOWN,
@ -14,23 +15,6 @@ module VagrantPlugins
:DESTROYED,
].freeze
attr_reader :broker
attr_reader :client
attr_reader :proto
def initialize(conn, proto, broker=nil)
@logger = Log4r::Logger.new("vagrant::command::serve::client::target")
@logger.debug("connecting to target on #{conn}")
@client = SDK::TargetService::Stub.new(conn, :this_channel_is_insecure)
@broker = broker
@proto = proto
end
def self.load(raw_target, broker:)
t = raw_target.is_a?(String) ? SDK::Args::Target.decode(raw_target) : raw_target
self.new(connect(proto: t, broker: broker), t, broker)
end
# @return [SDK::Ref::Target] proto reference for this target
def ref
SDK::Ref::Target.new(resource_id: resource_id)

View File

@ -3,29 +3,13 @@ module VagrantPlugins
module Client
class TargetIndex
extend Util::Connector
attr_reader :broker
attr_reader :client
attr_reader :proto
def initialize(conn, proto, broker=nil)
@logger = Log4r::Logger.new("vagrant::command::serve::client::targetindex")
@logger.debug("connecting to target index service on #{conn}")
@client = SDK::TargetIndexService::Stub.new(conn, :this_channel_is_insecure)
@broker = broker
@proto = proto
end
def self.load(raw_index, broker:)
m = raw_index.is_a?(String) ? SDK::Args::TargetIndex.decode(raw_index) : raw_index
self.new(connect(proto: m, broker: broker), m, broker)
end
prepend Util::ClientSetup
prepend Util::HasLogger
# @param [string]
# @return [Boolean] true if delete is successful
def delete(ident)
@logger.debug("deleting machine with id #{ident} from index")
logger.debug("deleting machine with id #{ident} from index")
client.delete(
SDK::TargetIndex::TargetIdentifier.new(
id: ident
@ -37,7 +21,7 @@ module VagrantPlugins
# @param [string]
# @return [MachineIndex::Entry]
def get(ident)
@logger.debug("getting machine with id #{ident} from index")
logger.debug("getting machine with id #{ident} from index")
begin
resp = client.get(
SDK::TargetIndex::TargetIdentifier.new(
@ -54,7 +38,7 @@ module VagrantPlugins
# @param [string]
# @return [Boolean]
def include?(ident)
@logger.debug("checking for machine with id #{ident} in index")
logger.debug("checking for machine with id #{ident} in index")
client.includes(
SDK::TargetIndex::TargetIdentifier.new(
id: ident
@ -65,7 +49,7 @@ module VagrantPlugins
# @param [MachineIndex::Entry]
# @return [MachineIndex::Entry]
def set(entry)
@logger.debug("setting machine #{entry} in index")
logger.debug("setting machine #{entry} in index")
if entry.id.to_s.empty?
raise ArgumentError,
"Entry id must be set"
@ -84,7 +68,7 @@ module VagrantPlugins
# Get all targets
# @return [Array<MachineIndex::Entry>]
def all
@logger.debug("getting all machines")
logger.debug("getting all machines")
client.all(Empty.new).targets.map do |t_ref|
machine = Target.load(t_ref, broker: broker).to_machine
Vagrant::MachineIndex::Entry.load(machine)

View File

@ -5,23 +5,9 @@ module VagrantPlugins
module CommandServe
module Client
class Terminal
extend Util::Connector
attr_reader :broker
attr_reader :client
attr_reader :proto
# @params [String] endpoint for the core service
def initialize(server_endpoint, proto, broker=nil)
@client = SDK::TerminalUIService::Stub.new(server_endpoint, :this_channel_is_insecure)
@broker = broker
@proto = proto
end
def self.load(raw_terminal, broker:)
t = raw_terminal.is_a?(String) ? SDK::Args::TerminalUI.decode(raw_terminal) : raw_terminal
self.new(connect(proto: t, broker: broker), t, broker)
end
prepend Util::ClientSetup
prepend Util::HasLogger
# @param [Array] lines Lines to print
def output(lines, **opts)