class Service
Attributes
config[R]
silent[RW]
Public Class Methods
new(options, config_hash = {})
click to toggle source
# File lib/vmfloaty/service.rb, line 12 def initialize(options, config_hash = {}) options ||= Commander::Command::Options.new @config = Utils.get_service_config config_hash, options @service_object = Utils.get_service_object @config['type'] @silent = false end
Public Instance Methods
delete(verbose, hosts)
click to toggle source
# File lib/vmfloaty/service.rb, line 112 def delete(verbose, hosts) @service_object.delete verbose, url, hosts, token, user end
delete_token(verbose, token_value = @config['token'])
click to toggle source
# File lib/vmfloaty/service.rb, line 61 def delete_token(verbose, token_value = @config['token']) username = user pass = Commander::UI.password "Enter your #{@config['url']} service password:", '*' Auth.delete_token(verbose, url, username, pass, token_value) end
disk(verbose, hostname, disk)
click to toggle source
# File lib/vmfloaty/service.rb, line 135 def disk(verbose, hostname, disk) maybe_use_vmpooler @service_object.disk(verbose, url, hostname, token, disk) end
get_new_token(verbose)
click to toggle source
# File lib/vmfloaty/service.rb, line 55 def get_new_token(verbose) username = user pass = Commander::UI.password "Enter your #{@config['url']} service password:", '*' Auth.get_token(verbose, url, username, pass) end
list(verbose, os_filter = nil)
click to toggle source
# File lib/vmfloaty/service.rb, line 72 def list(verbose, os_filter = nil) @service_object.list verbose, url, os_filter end
list_active(verbose)
click to toggle source
# File lib/vmfloaty/service.rb, line 76 def list_active(verbose) @service_object.list_active verbose, url, token, user end
maybe_use_vmpooler()
click to toggle source
some methods do not exist for ABS
, and if possible should target the Pooler
service
# File lib/vmfloaty/service.rb, line 141 def maybe_use_vmpooler if @service_object == ABS # this is not an instance unless silent FloatyLogger.info 'The service in use is ABS, but the requested method should run against vmpooler directly, using fallback_vmpooler config from ~/.vmfloaty.yml' self.silent = true end @config = Utils.get_vmpooler_service_config(@config['vmpooler_fallback']) @service_object = Pooler end end
method_missing(method_name, *args, &block)
click to toggle source
Calls superclass method
# File lib/vmfloaty/service.rb, line 19 def method_missing(method_name, *args, &block) if @service_object.respond_to?(method_name) @service_object.send(method_name, *args, &block) else super end end
modify(verbose, hostname, modify_hash)
click to toggle source
# File lib/vmfloaty/service.rb, line 107 def modify(verbose, hostname, modify_hash) maybe_use_vmpooler @service_object.modify verbose, url, hostname, token, modify_hash end
query(verbose, hostname)
click to toggle source
# File lib/vmfloaty/service.rb, line 103 def query(verbose, hostname) @service_object.query verbose, url, hostname end
respond_to_missing?(method_name, *)
click to toggle source
Calls superclass method
# File lib/vmfloaty/service.rb, line 27 def respond_to_missing?(method_name, *) @service_object.respond_to?(method_name) || super end
retrieve(verbose, os_types, use_token = true, ondemand = nil, continue = nil)
click to toggle source
# File lib/vmfloaty/service.rb, line 80 def retrieve(verbose, os_types, use_token = true, ondemand = nil, continue = nil) FloatyLogger.info 'Requesting a vm without a token...' unless use_token token_value = use_token ? token : nil @service_object.retrieve verbose, os_types, token_value, url, user, @config, ondemand, continue end
revert(verbose, hostname, snapshot_sha)
click to toggle source
# File lib/vmfloaty/service.rb, line 130 def revert(verbose, hostname, snapshot_sha) maybe_use_vmpooler @service_object.revert verbose, url, hostname, token, snapshot_sha end
snapshot(verbose, hostname)
click to toggle source
# File lib/vmfloaty/service.rb, line 125 def snapshot(verbose, hostname) maybe_use_vmpooler @service_object.snapshot verbose, url, hostname, token end
ssh(verbose, host_os, use_token = true, ondemand = nil)
click to toggle source
# File lib/vmfloaty/service.rb, line 90 def ssh(verbose, host_os, use_token = true, ondemand = nil) token_value = nil if use_token begin token_value = token || get_new_token(verbose) rescue TokenError => e FloatyLogger.error e FloatyLogger.info 'Could not get token... requesting vm without a token anyway...' end end Ssh.ssh(verbose, self, host_os, token_value, ondemand) end
status(verbose)
click to toggle source
# File lib/vmfloaty/service.rb, line 116 def status(verbose) @service_object.status verbose, url end
summary(verbose)
click to toggle source
# File lib/vmfloaty/service.rb, line 120 def summary(verbose) maybe_use_vmpooler @service_object.summary verbose, url end
token()
click to toggle source
# File lib/vmfloaty/service.rb, line 47 def token unless @config['token'] FloatyLogger.info 'No token found. Retrieving a token...' @config['token'] = get_new_token(nil) end @config['token'] end
token_status(verbose, token_value)
click to toggle source
# File lib/vmfloaty/service.rb, line 67 def token_status(verbose, token_value) token_value ||= @config['token'] Auth.token_status(verbose, url, token_value) end
type()
click to toggle source
# File lib/vmfloaty/service.rb, line 35 def type @service_object.name end
url()
click to toggle source
# File lib/vmfloaty/service.rb, line 31 def url @config['url'] end
user()
click to toggle source
# File lib/vmfloaty/service.rb, line 39 def user unless @config['user'] FloatyLogger.info "Enter your #{@config['url']} service username:" @config['user'] = $stdin.gets.chomp end @config['user'] end
wait_for_request(verbose, requestid)
click to toggle source
# File lib/vmfloaty/service.rb, line 86 def wait_for_request(verbose, requestid) @service_object.wait_for_request verbose, requestid, url end