bcome 0.7.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/bcome +8 -39
- data/lib/bcome.rb +12 -3
- data/lib/objects/bcome/version.rb +3 -0
- data/lib/objects/bootup.rb +81 -0
- data/lib/objects/command/local.rb +40 -0
- data/lib/objects/config_factory.rb +36 -0
- data/lib/objects/driver/base.rb +30 -0
- data/lib/objects/driver/bucket.rb +20 -0
- data/lib/objects/driver/ec2.rb +44 -0
- data/lib/objects/driver/static.rb +4 -0
- data/lib/objects/exception/argument_error_invoking_method_from_command_line.rb +7 -0
- data/lib/objects/exception/base.rb +15 -0
- data/lib/objects/exception/can_only_subselect_on_inventory.rb +7 -0
- data/lib/objects/exception/cannot_find_internal_registry_klass.rb +7 -0
- data/lib/objects/exception/cannot_find_subselection_parent.rb +7 -0
- data/lib/objects/exception/cant_find_key_in_cloud_tags.rb +7 -0
- data/lib/objects/exception/cant_find_key_in_metadata.rb +7 -0
- data/lib/objects/exception/cant_find_proxy_host_by_identifier.rb +7 -0
- data/lib/objects/exception/cant_find_proxy_host_by_namespace.rb +7 -0
- data/lib/objects/exception/could_not_initiate_ssh_connection.rb +7 -0
- data/lib/objects/exception/could_not_initiate_ssh_connection_through_backend_proxy.rb +7 -0
- data/lib/objects/exception/deprecation_warning.rb +11 -0
- data/lib/objects/exception/duplicate_command_line_argument_key.rb +7 -0
- data/lib/objects/exception/ec2_driver_missing_provisioning_region.rb +7 -0
- data/lib/objects/exception/failed_to_run_local_command.rb +7 -0
- data/lib/objects/exception/interactive_session_halt.rb +4 -0
- data/lib/objects/exception/invalid_bcome_breadcrumb.rb +7 -0
- data/lib/objects/exception/invalid_breadcrumb.rb +7 -0
- data/lib/objects/exception/invalid_context_command.rb +7 -0
- data/lib/objects/exception/invalid_identifier.rb +7 -0
- data/lib/objects/exception/invalid_machines_cache_config.rb +7 -0
- data/lib/objects/exception/invalid_matcher_query.rb +7 -0
- data/lib/objects/exception/invalid_meta_data_config.rb +7 -0
- data/lib/objects/exception/invalid_network_config.rb +7 -0
- data/lib/objects/exception/invalid_network_driver_type.rb +7 -0
- data/lib/objects/exception/invalid_proxy_config.rb +7 -0
- data/lib/objects/exception/invalid_regexp_matcher_in_registry.rb +7 -0
- data/lib/objects/exception/invalid_registry_arguments_type.rb +7 -0
- data/lib/objects/exception/invalid_registry_data_config.rb +7 -0
- data/lib/objects/exception/invalid_restriction_key_in_registry.rb +7 -0
- data/lib/objects/exception/invalid_ssh_config.rb +7 -0
- data/lib/objects/exception/inventories_cannot_have_subviews.rb +7 -0
- data/lib/objects/exception/malformed_command_line_arguments.rb +7 -0
- data/lib/objects/exception/method_invocation_requires_parameter.rb +7 -0
- data/lib/objects/exception/method_name_conflict_in_registry.rb +7 -0
- data/lib/objects/exception/missing_argument_for_registry_command.rb +7 -0
- data/lib/objects/exception/missing_description_on_view.rb +7 -0
- data/lib/objects/exception/missing_execute_on_registry_object.rb +7 -0
- data/lib/objects/exception/missing_identifier_on_view.rb +7 -0
- data/lib/objects/exception/missing_ip_address_on_server.rb +7 -0
- data/lib/objects/exception/missing_network_config.rb +7 -0
- data/lib/objects/exception/missing_params_for_rsync.rb +7 -0
- data/lib/objects/exception/missing_params_for_scp.rb +7 -0
- data/lib/objects/exception/missing_subselection_key.rb +7 -0
- data/lib/objects/exception/missing_type_on_view.rb +7 -0
- data/lib/objects/exception/no_node_found_for_breadcrumb.rb +7 -0
- data/lib/objects/exception/no_node_named_by_identifier.rb +7 -0
- data/lib/objects/exception/node_identifiers_must_be_unique.rb +7 -0
- data/lib/objects/exception/orchestration_script_does_not_exist.rb +7 -0
- data/lib/objects/exception/proxy_host_node_does_not_have_public_ip_address.rb +7 -0
- data/lib/objects/exception/unknown_method_for_namespace.rb +7 -0
- data/lib/objects/interactive/session.rb +45 -0
- data/lib/objects/interactive/session_item/base.rb +36 -0
- data/lib/objects/interactive/session_item/capture_input.rb +20 -0
- data/lib/objects/interactive/session_item/transparent_ssh.rb +111 -0
- data/lib/objects/modules/context.rb +13 -0
- data/lib/objects/modules/registry_management.rb +14 -0
- data/lib/objects/modules/ui_output.rb +9 -0
- data/lib/objects/modules/workspace_commands.rb +198 -0
- data/lib/objects/modules/workspace_menu.rb +128 -0
- data/lib/objects/node/attributes.rb +47 -0
- data/lib/objects/node/base.rb +248 -0
- data/lib/objects/node/cache_handler.rb +24 -0
- data/lib/objects/node/collection.rb +51 -0
- data/lib/objects/node/factory.rb +108 -0
- data/lib/objects/node/inventory/base.rb +88 -0
- data/lib/objects/node/inventory/defined.rb +112 -0
- data/lib/objects/node/inventory/subselect.rb +54 -0
- data/lib/objects/node/meta/base.rb +36 -0
- data/lib/objects/node/meta/cloud.rb +4 -0
- data/lib/objects/node/meta/local.rb +4 -0
- data/lib/objects/node/meta_data_factory.rb +23 -0
- data/lib/objects/node/meta_data_loader.rb +32 -0
- data/lib/objects/node/resources/base.rb +98 -0
- data/lib/objects/node/resources/inventory.rb +25 -0
- data/lib/objects/node/resources/sub_inventory.rb +56 -0
- data/lib/objects/node/server/base.rb +218 -0
- data/lib/objects/node/server/dynamic.rb +39 -0
- data/lib/objects/node/server/static.rb +31 -0
- data/lib/objects/orchestration/base.rb +13 -0
- data/lib/objects/orchestrator.rb +24 -0
- data/lib/objects/parser/bread_crumb.rb +31 -0
- data/lib/objects/progress_bar.rb +30 -0
- data/lib/objects/registry/arguments/base.rb +36 -0
- data/lib/objects/registry/arguments/command_line.rb +35 -0
- data/lib/objects/registry/arguments/console.rb +15 -0
- data/lib/objects/registry/command/base.rb +66 -0
- data/lib/objects/registry/command/external.rb +55 -0
- data/lib/objects/registry/command/group.rb +76 -0
- data/lib/objects/registry/command/internal.rb +34 -0
- data/lib/objects/registry/command_list.rb +33 -0
- data/lib/objects/registry/loader.rb +70 -0
- data/lib/objects/ssh/bootstrap.rb +19 -0
- data/lib/objects/ssh/command.rb +46 -0
- data/lib/objects/ssh/command_exec.rb +65 -0
- data/lib/objects/ssh/connection_handler.rb +101 -0
- data/lib/objects/ssh/driver.rb +204 -0
- data/lib/objects/ssh/proxy_data.rb +56 -0
- data/lib/objects/ssh/script_exec.rb +43 -0
- data/lib/objects/system/local.rb +30 -0
- data/lib/objects/workspace.rb +75 -0
- data/patches/irb.rb +20 -7
- data/patches/string.rb +75 -0
- data/patches/string_stylesheet.rb +61 -0
- metadata +175 -93
- data/bin/bcome-bash-setup +0 -18
- data/bin/bcome-setup +0 -43
- data/bin/boot.rb +0 -148
- data/bin/boot_no_shell.rb +0 -3
- data/filters/ec2_filter.rb +0 -12
- data/lib/bcome/version.rb +0 -3
- data/lib/become_object.rb +0 -111
- data/lib/boot.rb +0 -13
- data/lib/command.rb +0 -56
- data/lib/context_functions.rb +0 -65
- data/lib/filters/base.rb +0 -10
- data/lib/filters/ec2_filter.rb +0 -4
- data/lib/functions.rb +0 -70
- data/lib/helpers/command_helper.rb +0 -13
- data/lib/helpers/environment_ssh.rb +0 -122
- data/lib/helpers/fog_helper.rb +0 -108
- data/lib/helpers/instance_command.rb +0 -71
- data/lib/helpers/instance_ssh.rb +0 -83
- data/lib/helpers/selections.rb +0 -117
- data/lib/interactive/interactive_session_halt.rb +0 -4
- data/lib/interactive/session.rb +0 -44
- data/lib/interactive/session_item/base.rb +0 -30
- data/lib/interactive/session_item/transparent_ssh.rb +0 -133
- data/lib/nodes/base.rb +0 -60
- data/lib/nodes/environment.rb +0 -30
- data/lib/nodes/estate.rb +0 -44
- data/lib/nodes/instance.rb +0 -94
- data/lib/nodes/platform.rb +0 -17
- data/lib/nodes/view.rb +0 -31
- data/lib/object.rb +0 -21
- data/lib/orchestrator/command_group/base.rb +0 -56
- data/lib/orchestrator/command_group/custom.rb +0 -13
- data/lib/orchestrator/command_group/direct.rb +0 -53
- data/lib/orchestrator/direct_command/group.rb +0 -21
- data/lib/orchestrator/direct_command/instance.rb +0 -19
- data/lib/orchestrator/factory.rb +0 -38
- data/lib/orchestrator/loader.rb +0 -47
- data/lib/orchestrator/node_target/all.rb +0 -14
- data/lib/orchestrator/node_target/all_excluding_roles.rb +0 -14
- data/lib/orchestrator/node_target/all_with_roles.rb +0 -14
- data/lib/orchestrator/node_target/base.rb +0 -43
- data/lib/orchestrator/node_target/single.rb +0 -12
- data/lib/orchestrator/recipe.rb +0 -60
- data/lib/orchestrator/registry.rb +0 -37
- data/lib/orchestrator/validate_and_set.rb +0 -10
- data/lib/patches/string.rb +0 -86
- data/lib/progress_bar.rb +0 -31
- data/lib/render_irb.rb +0 -53
- data/lib/scp.rb +0 -40
- data/lib/ssh.rb +0 -51
- data/lib/stack/base.rb +0 -148
- data/lib/stack/environment.rb +0 -222
- data/lib/stack/estate.rb +0 -50
- data/lib/stack/instance.rb +0 -130
- data/lib/stack/platform.rb +0 -74
- data/lib/stack/view.rb +0 -56
- data/lib/workspace_context.rb +0 -40
data/lib/stack/platform.rb
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
module ::Bcome::Stack
|
|
2
|
-
class Platform < ::Bcome::Stack::Base
|
|
3
|
-
|
|
4
|
-
include ::Bcome::BecomeObject
|
|
5
|
-
|
|
6
|
-
class << self
|
|
7
|
-
def collection_from_config(parent, configuration)
|
|
8
|
-
return unless configuration
|
|
9
|
-
collection = []
|
|
10
|
-
configuration.each do |conf_data|
|
|
11
|
-
collection << new(conf_data[:name], conf_data)
|
|
12
|
-
end
|
|
13
|
-
return collection
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
attr_reader :identifier, :meta_data, :quick_contexts
|
|
18
|
-
|
|
19
|
-
def initialize(identifier, meta_data)
|
|
20
|
-
@identifier = identifier
|
|
21
|
-
@meta_data = meta_data
|
|
22
|
-
@quick_contexts = @meta_data[:quick_contexts]
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def menu_items
|
|
26
|
-
super
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def do_describe
|
|
30
|
-
description = "\tPlatform Name:".menu_item_cyan + "\s#{identifier.menu_item_green}\n"
|
|
31
|
-
description += "\t" + "Description:".menu_item_cyan + "\s#{@meta_data[:description].menu_item_white}" + "\n"
|
|
32
|
-
description += "\t" + "Location:".menu_item_magenta + "\s#{@meta_data[:location].menu_item_white}" + "\n" if @meta_data[:location]
|
|
33
|
-
description += "\n"
|
|
34
|
-
|
|
35
|
-
return description
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def config_path
|
|
39
|
-
"#{CONFIGS_PATH}/network.yml"
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
def collection_klass
|
|
43
|
-
::ENV_STACK_KLASS
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def reference_key
|
|
47
|
-
:platforms
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def child_reference_key
|
|
51
|
-
:platform
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
def collection_key
|
|
55
|
-
:environments
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def has_quick_contexts?
|
|
59
|
-
return !quick_contexts.nil?
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
def quick_context_for_reference(context_reference)
|
|
63
|
-
return nil unless has_quick_contexts?
|
|
64
|
-
matches = quick_contexts.select{|qc| qc[:ref] == context_reference }
|
|
65
|
-
raise "Multiple quick context matches found on platform #{@identifier} for context key #{context_reference}. Cannot load quick context - selection is ambiguous." if matches.size > 1
|
|
66
|
-
return matches.first
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
def node_level_klass
|
|
70
|
-
::Bcome::Node::Platform
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
end
|
|
74
|
-
end
|
data/lib/stack/view.rb
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
module ::Bcome::Stack
|
|
2
|
-
class View < ::Bcome::Stack::Environment
|
|
3
|
-
|
|
4
|
-
def initialize(meta_data, parent, encapsulating_environment, sub_view_data)
|
|
5
|
-
@meta_data = meta_data
|
|
6
|
-
@identifier = sub_view_data[:id]
|
|
7
|
-
@platform = parent
|
|
8
|
-
@sub_view_data = sub_view_data
|
|
9
|
-
@encapsulating_environment = encapsulating_environment
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def views
|
|
13
|
-
[]
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def has_views?
|
|
17
|
-
false
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def do_load_resources
|
|
21
|
-
@filtered_resources ||= filter_resources
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def node
|
|
25
|
-
@node ||= n = ::Bcome::Node::View.new({ :instances => resources.collect(&:node) })
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def pretty_selectors
|
|
29
|
-
raw = @sub_view_data[:selectors]
|
|
30
|
-
return raw.collect{|key, values|
|
|
31
|
-
values.collect{|value|
|
|
32
|
-
"\s(node.#{key} == '#{value}')"
|
|
33
|
-
}
|
|
34
|
-
}.join("\sOR".friendly)
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def description
|
|
38
|
-
desc = "\tidentifier:".menu_item_cyan + "\s#{identifier}".menu_item_green + "\n"
|
|
39
|
-
desc += "\tselectors:".menu_item_cyan + "\s#{pretty_selectors}" + "\n"
|
|
40
|
-
return desc + "\n"
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
private
|
|
44
|
-
|
|
45
|
-
def filter_resources
|
|
46
|
-
@encapsulating_environment.resources.select{|resource| resource_belongs_in_filtered_list?(resource) }
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
def resource_belongs_in_filtered_list?(resource)
|
|
50
|
-
@sub_view_data[:selectors].select {|selector,values|
|
|
51
|
-
values.include?(resource.node.send(selector))
|
|
52
|
-
}.any?
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
end
|
|
56
|
-
end
|
data/lib/workspace_context.rb
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
class ::Bcome::WorkspaceContext
|
|
2
|
-
|
|
3
|
-
attr_reader :object
|
|
4
|
-
|
|
5
|
-
def set(object, current_object, spawn = true)
|
|
6
|
-
@object = object
|
|
7
|
-
main_context = IRB.conf[:MAIN_CONTEXT]
|
|
8
|
-
|
|
9
|
-
@object.main_context = main_context.workspace if main_context
|
|
10
|
-
@object.previous_workspace_object = current_object if current_object
|
|
11
|
-
|
|
12
|
-
# Spawn is initiated when a user wants to shift workspace context.
|
|
13
|
-
# We don't spawn whilst setting up the hierarchy for quick contexts
|
|
14
|
-
spawn_for_object(@object) if spawn
|
|
15
|
-
return
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def spawn_for_object(object)
|
|
19
|
-
require 'irb/ext/multi-irb'
|
|
20
|
-
IRB.parse_opts_with_ignoring_script
|
|
21
|
-
IRB.irb nil, @object
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def has_object?
|
|
25
|
-
!self.object.nil?
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def start_prompt
|
|
29
|
-
::START_PROMPT
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def irb_prompt
|
|
33
|
-
return @object ? @object.send(:become_identifier) : start_prompt
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def is_sudo?
|
|
37
|
-
@object.is_sudo?
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
end
|