class Fleet::Client
Public Class Methods
new(options={})
click to toggle source
# File lib/fleet/client.rb, line 14 def initialize(options={}) options = Fleet.options.merge(options) Configuration::VALID_OPTIONS_KEYS.each do |key| send("#{key}=", options[key]) end end
Public Instance Methods
destroy(name)
click to toggle source
# File lib/fleet/client.rb, line 88 def destroy(name) delete_unit(name) end
get_unit_state(name)
click to toggle source
# File lib/fleet/client.rb, line 96 def get_unit_state(name) options = { unitName: name } states = list_states(options) if states["states"] states["states"].first else fail NotFound, "Unit '#{name}' not found" end end
list()
click to toggle source
# File lib/fleet/client.rb, line 28 def list machines = list_machines['machines'] || [] machine_ips = machines.each_with_object({}) do |machine, h| h[machine['id']] = machine['primaryIP'] end states = list_states['states'] || [] states.map do |service| { name: service['name'], load_state: service['systemdLoadState'], active_state: service['systemdActiveState'], sub_state: service['systemdSubState'], machine_id: service['machineID'], machine_ip: machine_ips[service['machineID']] } end end
load(name, service_def=nil)
click to toggle source
# File lib/fleet/client.rb, line 63 def load(name, service_def=nil) if service_def submit(name, service_def) end opts = { 'desiredState' => 'loaded', 'name' => name } update_unit(name, opts) end
start(name)
click to toggle source
# File lib/fleet/client.rb, line 73 def start(name) opts = { 'desiredState' => 'launched', 'name' => name } update_unit(name, opts) end
status(name)
click to toggle source
# File lib/fleet/client.rb, line 92 def status(name) get_unit(name)["currentState"].to_sym end
stop(name)
click to toggle source
# File lib/fleet/client.rb, line 78 def stop(name) opts = { 'desiredState' => 'loaded', 'name' => name } update_unit(name, opts) end
submit(name, service_def)
click to toggle source
# File lib/fleet/client.rb, line 47 def submit(name, service_def) unless name =~ /\A[a-zA-Z0-9:_.@-]+\Z/ raise ArgumentError, 'name may only contain [a-zA-Z0-9:_.@-]' end unless service_def.is_a?(ServiceDefinition) service_def = ServiceDefinition.new(service_def) end begin create_unit(name, service_def.to_unit(name)) rescue Fleet::PreconditionFailed end end
unload(name)
click to toggle source
# File lib/fleet/client.rb, line 83 def unload(name) opts = { 'desiredState' => 'inactive', 'name' => name } update_unit(name, opts) end
Protected Instance Methods
resource_path(resource, *parts)
click to toggle source
# File lib/fleet/client.rb, line 108 def resource_path(resource, *parts) parts.unshift('fleet', fleet_api_version, resource).join('/') end