Class: Bcome::Driver::Base
Direct Known Subclasses
Ec2, Gcp
Class Method Summary
collapse
Instance Method Summary
collapse
#cursor, #do_signal, #fork_process, #signal_failure, #signal_stop, #signal_success, #start_indicator, #stop_indicator, #wrap_indicator
Constructor Details
#initialize(params, node) ⇒ Base
Returns a new instance of Base.
28
29
30
31
|
# File 'lib/objects/driver/base.rb', line 28
def initialize(params, node)
@params = params
@node = node
end
|
Class Method Details
.create_from_config(config, node) ⇒ Object
6
7
8
9
10
11
12
13
14
15
16
|
# 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 ⇒ Object
18
19
20
21
22
23
|
# File 'lib/objects/driver/base.rb', line 18
def klass_for_type
{
ec2: ::Bcome::Driver::Ec2,
gcp: ::Bcome::Driver::Gcp
}
end
|
Instance Method Details
#config ⇒ Object
57
58
59
|
# File 'lib/objects/driver/base.rb', line 57
def config
@params
end
|
#has_network_credentials? ⇒ Boolean
33
34
35
|
# File 'lib/objects/driver/base.rb', line 33
def has_network_credentials?
false
end
|
#loader_completed_title ⇒ Object
41
42
43
|
# File 'lib/objects/driver/base.rb', line 41
def loader_completed_title
'done'
end
|
#loader_title ⇒ Object
37
38
39
|
# 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 ⇒ Object
53
54
55
|
# File 'lib/objects/driver/base.rb', line 53
def network_credentials
raise 'Should be overidden'
end
|
#pretty_provider_name ⇒ Object
45
46
47
|
# File 'lib/objects/driver/base.rb', line 45
def pretty_provider_name
raise 'Should be overriden'
end
|
#pretty_resource_location ⇒ Object
49
50
51
|
# File 'lib/objects/driver/base.rb', line 49
def pretty_resource_location
raise 'Should be overidden'
end
|
#spoof_fetch_server_list(monkey_patched_inventory) ⇒ Object
Spoof-fetch. Used with the network-socket linkup POC.
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# 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
|