class Bcome::Driver::Base

Public Class Methods

create_from_config(config, node) click to toggle source
# File lib/objects/driver/base.rb, line 6
def create_from_config(config, node)
  raise Bcome::Exception::InvalidNetworkDriverType, 'Your network configurtion is invalid' unless config.is_a?(Hash)
  raise Bcome::Exception::InvalidNetworkDriverType, "Missing config parameter 'type' for namespace '#{config.inspect}'" unless config[:type]

  config_klass_key = config[:type].to_sym
  driver_klass = klass_for_type[config_klass_key]
  raise Bcome::Exception::InvalidNetworkDriverType, config unless driver_klass

  driver = driver_klass.new(config, node)
  driver
end
klass_for_type() click to toggle source
# File lib/objects/driver/base.rb, line 18
def klass_for_type
  {
    ec2: ::Bcome::Driver::Ec2,
    gcp: ::Bcome::Driver::Gcp
  }
end
new(params, node) click to toggle source
# File lib/objects/driver/base.rb, line 28
def initialize(params, node)
  @params = params
  @node = node
end

Public Instance Methods

config() click to toggle source
# File lib/objects/driver/base.rb, line 57
def config
  @params
end
has_network_credentials?() click to toggle source
# File lib/objects/driver/base.rb, line 33
def has_network_credentials?
  false
end
loader_completed_title() click to toggle source
# File lib/objects/driver/base.rb, line 41
def loader_completed_title
  'done'
end
loader_title() click to toggle source
# File lib/objects/driver/base.rb, line 37
def loader_title
  'Loading' + "\s#{pretty_provider_name.bc_blue.bold}\s#{pretty_resource_location.underline}".bc_green
end
network_credentials() click to toggle source
# File lib/objects/driver/base.rb, line 53
def network_credentials
  raise 'Should be overidden'
end
pretty_provider_name() click to toggle source
# File lib/objects/driver/base.rb, line 45
def pretty_provider_name
  raise 'Should be overriden'
end
pretty_resource_location() click to toggle source
# File lib/objects/driver/base.rb, line 49
def pretty_resource_location
  raise 'Should be overidden'
end
spoof_fetch_server_list(monkey_patched_inventory) click to toggle source

Spoof-fetch. Used with the network-socket linkup POC.

# File lib/objects/driver/base.rb, line 62
def spoof_fetch_server_list(monkey_patched_inventory)
  if @node.nodes_loaded?
    monkey_patched_inventory.set_static_servers
  else
    wrap_indicator type: :basic, title: loader_title, completed_title: loader_completed_title do
      fake_delay_milliseconds = rand(1..400).to_f / 1000
      sleep fake_delay_milliseconds
      monkey_patched_inventory.set_static_servers
      signal_success
    end
    @node.nodes_loaded!
  end
end