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.
Files changed (173) hide show
  1. checksums.yaml +4 -4
  2. data/bin/bcome +8 -39
  3. data/lib/bcome.rb +12 -3
  4. data/lib/objects/bcome/version.rb +3 -0
  5. data/lib/objects/bootup.rb +81 -0
  6. data/lib/objects/command/local.rb +40 -0
  7. data/lib/objects/config_factory.rb +36 -0
  8. data/lib/objects/driver/base.rb +30 -0
  9. data/lib/objects/driver/bucket.rb +20 -0
  10. data/lib/objects/driver/ec2.rb +44 -0
  11. data/lib/objects/driver/static.rb +4 -0
  12. data/lib/objects/exception/argument_error_invoking_method_from_command_line.rb +7 -0
  13. data/lib/objects/exception/base.rb +15 -0
  14. data/lib/objects/exception/can_only_subselect_on_inventory.rb +7 -0
  15. data/lib/objects/exception/cannot_find_internal_registry_klass.rb +7 -0
  16. data/lib/objects/exception/cannot_find_subselection_parent.rb +7 -0
  17. data/lib/objects/exception/cant_find_key_in_cloud_tags.rb +7 -0
  18. data/lib/objects/exception/cant_find_key_in_metadata.rb +7 -0
  19. data/lib/objects/exception/cant_find_proxy_host_by_identifier.rb +7 -0
  20. data/lib/objects/exception/cant_find_proxy_host_by_namespace.rb +7 -0
  21. data/lib/objects/exception/could_not_initiate_ssh_connection.rb +7 -0
  22. data/lib/objects/exception/could_not_initiate_ssh_connection_through_backend_proxy.rb +7 -0
  23. data/lib/objects/exception/deprecation_warning.rb +11 -0
  24. data/lib/objects/exception/duplicate_command_line_argument_key.rb +7 -0
  25. data/lib/objects/exception/ec2_driver_missing_provisioning_region.rb +7 -0
  26. data/lib/objects/exception/failed_to_run_local_command.rb +7 -0
  27. data/lib/objects/exception/interactive_session_halt.rb +4 -0
  28. data/lib/objects/exception/invalid_bcome_breadcrumb.rb +7 -0
  29. data/lib/objects/exception/invalid_breadcrumb.rb +7 -0
  30. data/lib/objects/exception/invalid_context_command.rb +7 -0
  31. data/lib/objects/exception/invalid_identifier.rb +7 -0
  32. data/lib/objects/exception/invalid_machines_cache_config.rb +7 -0
  33. data/lib/objects/exception/invalid_matcher_query.rb +7 -0
  34. data/lib/objects/exception/invalid_meta_data_config.rb +7 -0
  35. data/lib/objects/exception/invalid_network_config.rb +7 -0
  36. data/lib/objects/exception/invalid_network_driver_type.rb +7 -0
  37. data/lib/objects/exception/invalid_proxy_config.rb +7 -0
  38. data/lib/objects/exception/invalid_regexp_matcher_in_registry.rb +7 -0
  39. data/lib/objects/exception/invalid_registry_arguments_type.rb +7 -0
  40. data/lib/objects/exception/invalid_registry_data_config.rb +7 -0
  41. data/lib/objects/exception/invalid_restriction_key_in_registry.rb +7 -0
  42. data/lib/objects/exception/invalid_ssh_config.rb +7 -0
  43. data/lib/objects/exception/inventories_cannot_have_subviews.rb +7 -0
  44. data/lib/objects/exception/malformed_command_line_arguments.rb +7 -0
  45. data/lib/objects/exception/method_invocation_requires_parameter.rb +7 -0
  46. data/lib/objects/exception/method_name_conflict_in_registry.rb +7 -0
  47. data/lib/objects/exception/missing_argument_for_registry_command.rb +7 -0
  48. data/lib/objects/exception/missing_description_on_view.rb +7 -0
  49. data/lib/objects/exception/missing_execute_on_registry_object.rb +7 -0
  50. data/lib/objects/exception/missing_identifier_on_view.rb +7 -0
  51. data/lib/objects/exception/missing_ip_address_on_server.rb +7 -0
  52. data/lib/objects/exception/missing_network_config.rb +7 -0
  53. data/lib/objects/exception/missing_params_for_rsync.rb +7 -0
  54. data/lib/objects/exception/missing_params_for_scp.rb +7 -0
  55. data/lib/objects/exception/missing_subselection_key.rb +7 -0
  56. data/lib/objects/exception/missing_type_on_view.rb +7 -0
  57. data/lib/objects/exception/no_node_found_for_breadcrumb.rb +7 -0
  58. data/lib/objects/exception/no_node_named_by_identifier.rb +7 -0
  59. data/lib/objects/exception/node_identifiers_must_be_unique.rb +7 -0
  60. data/lib/objects/exception/orchestration_script_does_not_exist.rb +7 -0
  61. data/lib/objects/exception/proxy_host_node_does_not_have_public_ip_address.rb +7 -0
  62. data/lib/objects/exception/unknown_method_for_namespace.rb +7 -0
  63. data/lib/objects/interactive/session.rb +45 -0
  64. data/lib/objects/interactive/session_item/base.rb +36 -0
  65. data/lib/objects/interactive/session_item/capture_input.rb +20 -0
  66. data/lib/objects/interactive/session_item/transparent_ssh.rb +111 -0
  67. data/lib/objects/modules/context.rb +13 -0
  68. data/lib/objects/modules/registry_management.rb +14 -0
  69. data/lib/objects/modules/ui_output.rb +9 -0
  70. data/lib/objects/modules/workspace_commands.rb +198 -0
  71. data/lib/objects/modules/workspace_menu.rb +128 -0
  72. data/lib/objects/node/attributes.rb +47 -0
  73. data/lib/objects/node/base.rb +248 -0
  74. data/lib/objects/node/cache_handler.rb +24 -0
  75. data/lib/objects/node/collection.rb +51 -0
  76. data/lib/objects/node/factory.rb +108 -0
  77. data/lib/objects/node/inventory/base.rb +88 -0
  78. data/lib/objects/node/inventory/defined.rb +112 -0
  79. data/lib/objects/node/inventory/subselect.rb +54 -0
  80. data/lib/objects/node/meta/base.rb +36 -0
  81. data/lib/objects/node/meta/cloud.rb +4 -0
  82. data/lib/objects/node/meta/local.rb +4 -0
  83. data/lib/objects/node/meta_data_factory.rb +23 -0
  84. data/lib/objects/node/meta_data_loader.rb +32 -0
  85. data/lib/objects/node/resources/base.rb +98 -0
  86. data/lib/objects/node/resources/inventory.rb +25 -0
  87. data/lib/objects/node/resources/sub_inventory.rb +56 -0
  88. data/lib/objects/node/server/base.rb +218 -0
  89. data/lib/objects/node/server/dynamic.rb +39 -0
  90. data/lib/objects/node/server/static.rb +31 -0
  91. data/lib/objects/orchestration/base.rb +13 -0
  92. data/lib/objects/orchestrator.rb +24 -0
  93. data/lib/objects/parser/bread_crumb.rb +31 -0
  94. data/lib/objects/progress_bar.rb +30 -0
  95. data/lib/objects/registry/arguments/base.rb +36 -0
  96. data/lib/objects/registry/arguments/command_line.rb +35 -0
  97. data/lib/objects/registry/arguments/console.rb +15 -0
  98. data/lib/objects/registry/command/base.rb +66 -0
  99. data/lib/objects/registry/command/external.rb +55 -0
  100. data/lib/objects/registry/command/group.rb +76 -0
  101. data/lib/objects/registry/command/internal.rb +34 -0
  102. data/lib/objects/registry/command_list.rb +33 -0
  103. data/lib/objects/registry/loader.rb +70 -0
  104. data/lib/objects/ssh/bootstrap.rb +19 -0
  105. data/lib/objects/ssh/command.rb +46 -0
  106. data/lib/objects/ssh/command_exec.rb +65 -0
  107. data/lib/objects/ssh/connection_handler.rb +101 -0
  108. data/lib/objects/ssh/driver.rb +204 -0
  109. data/lib/objects/ssh/proxy_data.rb +56 -0
  110. data/lib/objects/ssh/script_exec.rb +43 -0
  111. data/lib/objects/system/local.rb +30 -0
  112. data/lib/objects/workspace.rb +75 -0
  113. data/patches/irb.rb +20 -7
  114. data/patches/string.rb +75 -0
  115. data/patches/string_stylesheet.rb +61 -0
  116. metadata +175 -93
  117. data/bin/bcome-bash-setup +0 -18
  118. data/bin/bcome-setup +0 -43
  119. data/bin/boot.rb +0 -148
  120. data/bin/boot_no_shell.rb +0 -3
  121. data/filters/ec2_filter.rb +0 -12
  122. data/lib/bcome/version.rb +0 -3
  123. data/lib/become_object.rb +0 -111
  124. data/lib/boot.rb +0 -13
  125. data/lib/command.rb +0 -56
  126. data/lib/context_functions.rb +0 -65
  127. data/lib/filters/base.rb +0 -10
  128. data/lib/filters/ec2_filter.rb +0 -4
  129. data/lib/functions.rb +0 -70
  130. data/lib/helpers/command_helper.rb +0 -13
  131. data/lib/helpers/environment_ssh.rb +0 -122
  132. data/lib/helpers/fog_helper.rb +0 -108
  133. data/lib/helpers/instance_command.rb +0 -71
  134. data/lib/helpers/instance_ssh.rb +0 -83
  135. data/lib/helpers/selections.rb +0 -117
  136. data/lib/interactive/interactive_session_halt.rb +0 -4
  137. data/lib/interactive/session.rb +0 -44
  138. data/lib/interactive/session_item/base.rb +0 -30
  139. data/lib/interactive/session_item/transparent_ssh.rb +0 -133
  140. data/lib/nodes/base.rb +0 -60
  141. data/lib/nodes/environment.rb +0 -30
  142. data/lib/nodes/estate.rb +0 -44
  143. data/lib/nodes/instance.rb +0 -94
  144. data/lib/nodes/platform.rb +0 -17
  145. data/lib/nodes/view.rb +0 -31
  146. data/lib/object.rb +0 -21
  147. data/lib/orchestrator/command_group/base.rb +0 -56
  148. data/lib/orchestrator/command_group/custom.rb +0 -13
  149. data/lib/orchestrator/command_group/direct.rb +0 -53
  150. data/lib/orchestrator/direct_command/group.rb +0 -21
  151. data/lib/orchestrator/direct_command/instance.rb +0 -19
  152. data/lib/orchestrator/factory.rb +0 -38
  153. data/lib/orchestrator/loader.rb +0 -47
  154. data/lib/orchestrator/node_target/all.rb +0 -14
  155. data/lib/orchestrator/node_target/all_excluding_roles.rb +0 -14
  156. data/lib/orchestrator/node_target/all_with_roles.rb +0 -14
  157. data/lib/orchestrator/node_target/base.rb +0 -43
  158. data/lib/orchestrator/node_target/single.rb +0 -12
  159. data/lib/orchestrator/recipe.rb +0 -60
  160. data/lib/orchestrator/registry.rb +0 -37
  161. data/lib/orchestrator/validate_and_set.rb +0 -10
  162. data/lib/patches/string.rb +0 -86
  163. data/lib/progress_bar.rb +0 -31
  164. data/lib/render_irb.rb +0 -53
  165. data/lib/scp.rb +0 -40
  166. data/lib/ssh.rb +0 -51
  167. data/lib/stack/base.rb +0 -148
  168. data/lib/stack/environment.rb +0 -222
  169. data/lib/stack/estate.rb +0 -50
  170. data/lib/stack/instance.rb +0 -130
  171. data/lib/stack/platform.rb +0 -74
  172. data/lib/stack/view.rb +0 -56
  173. data/lib/workspace_context.rb +0 -40
@@ -0,0 +1,43 @@
1
+ module ::Bcome::Ssh
2
+ class ScriptExec
3
+ SCRIPTS_PATH = 'bcome/scripts'.freeze
4
+
5
+ class << self
6
+ def execute(server, script_name)
7
+ executor = new(server, script_name)
8
+ executor.execute
9
+ end
10
+ end
11
+
12
+ def initialize(server, script_name)
13
+ @server = server
14
+ @script_name = script_name
15
+ @ssh_driver = server.ssh_driver
16
+ end
17
+
18
+ def execute
19
+ command = execute_command
20
+ pretty_print(command)
21
+ command
22
+ end
23
+
24
+ def execute_command
25
+ local_path_to_script = "#{SCRIPTS_PATH}/#{@script_name}.sh"
26
+ raise Bcome::Exception::OrchestrationScriptDoesNotExist, local_path_to_script unless File.exist?(local_path_to_script)
27
+ execute_script_command = "#{@ssh_driver.ssh_command} \"bash -s\" < #{local_path_to_script}"
28
+ command = ::Bcome::Command::Local.run(execute_script_command)
29
+ command
30
+ end
31
+
32
+ def pretty_print(command)
33
+ output_append("\n(#{@server.namespace})$".terminal_prompt + "> ./#{SCRIPTS_PATH}/#{@script_name}.sh - \s#{command.pretty_result}\n")
34
+ output_append(command.stdout) # append stderr
35
+ output_append "\nSTDERR: #{command.stderr}" if command.failed?
36
+ puts "\n\n#{@output_string}\n\n"
37
+ end
38
+
39
+ def output_append(output_string)
40
+ @output_string = "#{@output_string}#{output_string}"
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,30 @@
1
+ module Bcome::System
2
+ class Local
3
+ include Singleton
4
+
5
+ def execute_command(raw_command, print_out_command = false)
6
+ puts "\n> #{raw_command}".bc_blue + "\n" if print_out_command
7
+
8
+ local_command = command(raw_command)
9
+ if local_command.failed? && !in_console_session?
10
+ # we fail fast if we're not in a console session
11
+ raise Bcome::Exception::FailedToRunLocalCommand, "#{raw_command}. Error: " + local_command.stderr
12
+ end
13
+ local_command
14
+ end
15
+
16
+ def in_console_session?
17
+ ::Bcome::Workspace.instance.console_set?
18
+ end
19
+
20
+ def local_user
21
+ result = command('whoami')
22
+ result.stdout =~ /(.+)\n/
23
+ Regexp.last_match(1)
24
+ end
25
+
26
+ def command(raw_command)
27
+ ::Bcome::Command::Local.run(raw_command)
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,75 @@
1
+ class ::Bcome::Workspace
2
+ include ::Singleton
3
+
4
+ attr_reader :context
5
+ attr_reader :estate
6
+
7
+ def initialize
8
+ @context = nil
9
+ @console_set = false
10
+ @estate = nil
11
+ end
12
+
13
+ def set(params)
14
+ init_irb unless console_set?
15
+
16
+ @context = params[:context]
17
+ @context.load_nodes if @context.inventory? && !@context.nodes_loaded?
18
+
19
+ main_context = IRB.conf[:MAIN_CONTEXT]
20
+
21
+ @context.irb_workspace = main_context.workspace if main_context
22
+ @context.previous_irb_workspace = params[:current_context] if params[:current_context]
23
+ set_irb_prompt
24
+ spawn_into_console_for_context
25
+ nil
26
+ end
27
+
28
+ def console_set!
29
+ @console_set = true
30
+ end
31
+
32
+ def console_set?
33
+ @console_set
34
+ end
35
+
36
+ def object_is_current_context?(object)
37
+ @context == object
38
+ end
39
+
40
+ def spawn_into_console_for_context
41
+ require 'irb/ext/multi-irb'
42
+ IRB.parse_opts_with_ignoring_script
43
+ IRB.irb nil, @context
44
+ end
45
+
46
+ def has_context?
47
+ !context.nil?
48
+ end
49
+
50
+ def irb_prompt
51
+ @context ? @context.prompt_breadcrumb : default_prompt
52
+ end
53
+
54
+ def default_prompt
55
+ 'bcome'
56
+ end
57
+
58
+ protected
59
+
60
+ def init_irb
61
+ IRB.setup nil
62
+ IRB.conf[:MAIN_CONTEXT] = IRB::Irb.new.context
63
+ console_set!
64
+ end
65
+
66
+ def set_irb_prompt
67
+ IRB.conf[:PROMPT][:CUSTOM] = {
68
+ PROMPT_N: "\e[1m:\e[m ",
69
+ PROMPT_I: "\e[1m#{irb_prompt} >\e[m ",
70
+ PROMPT_C: "\e[1m#{irb_prompt} >\e[m ",
71
+ RETURN: "%s \n"
72
+ }
73
+ IRB.conf[:PROMPT_MODE] = :CUSTOM
74
+ end
75
+ end
data/patches/irb.rb CHANGED
@@ -1,17 +1,30 @@
1
+ require 'irb'
2
+
1
3
  module IRB
2
4
  class << self
3
-
4
- # http://stackoverflow.com/questions/4749476/how-can-i-pass-arguments-to-irb-if-i-dont-specify-programfile
5
+ # with thanks: http://stackoverflow.com/questions/4749476/how-can-i-pass-arguments-to-irb-if-i-dont-specify-programfile
5
6
  def parse_opts_with_ignoring_script
6
7
  arg = ARGV.first
7
- script = $0
8
+ script = $PROGRAM_NAME
8
9
  parse_opts_without_ignoring_script
9
10
  @CONF[:SCRIPT] = nil
10
- set_irb_prompt(@CONF)
11
11
  $0 = script
12
12
  ARGV.unshift arg
13
13
  end
14
- alias_method :parse_opts_without_ignoring_script, :parse_opts
15
- alias_method :parse_opts, :parse_opts_with_ignoring_script
14
+
15
+ alias parse_opts_without_ignoring_script parse_opts
16
+ alias parse_opts parse_opts_with_ignoring_script
16
17
  end
17
- end
18
+
19
+ class Context
20
+ def overriden_evaluate(line, line_no)
21
+ @line_no = line_no
22
+ set_last_value(@workspace.evaluate(self, line, irb_path, line_no))
23
+ rescue ::Bcome::Exception::Base => e
24
+ puts e.pretty_display
25
+ end
26
+
27
+ alias evaluate_without_overriden evaluate
28
+ alias evaluate overriden_evaluate
29
+ end # end class Context
30
+ end # end module IRB --
data/patches/string.rb ADDED
@@ -0,0 +1,75 @@
1
+ class String
2
+ include StringColourStylesheet
3
+
4
+ # with thanks to http://simianuprising.com/wp-content/uploads/2012/08/solarized-reference-horizontal.png
5
+ def colour_codes
6
+ {
7
+ bc_yellow: '#b58900',
8
+ bc_orange: '#cb4b16',
9
+ bc_red: '#dc322f',
10
+ bc_magenta: '#d33682',
11
+ bc_violet: '#6c71c4',
12
+ bc_blue: '#268bd2',
13
+ bc_cyan: '#2aa198',
14
+ bc_green: '#859900',
15
+ bc_white: '#ffffff',
16
+ bc_grey: '#1c1c1c'
17
+ }
18
+ end
19
+
20
+ def highlight_colour_codes
21
+ {
22
+ bc_yellow: '#002b36',
23
+ bc_orange: '#073642',
24
+ bc_red: '#586e75',
25
+ bc_magenta: '#657b83',
26
+ bc_violet: '#839496',
27
+ bc_blue: '#93a1a1',
28
+ bc_cyan: '#eee8d5',
29
+ bc_green: '#fdf6e3'
30
+ }
31
+ end
32
+
33
+ def bold
34
+ "\e[1m#{self}\033[0m"
35
+ end
36
+
37
+ def underline
38
+ "\e[4m#{self}\e[0m"
39
+ end
40
+
41
+ def blinking
42
+ "\033[5m#{self}\033[0m"
43
+ end
44
+
45
+ def method_missing(method_sym, *arguments, &bc_lack)
46
+ if colour_code = colour_codes[method_sym]
47
+ if (arguments[0] == :highlight) && highlight_colour = highlight_colour_codes[method_sym]
48
+ Rainbow(self).color(highlight_colour).bg(colour_code)
49
+ else
50
+ Rainbow(self).color(colour_code)
51
+ end
52
+ else
53
+ super
54
+ end
55
+ end
56
+
57
+ def swatch
58
+ colour_codes.keys.each do |colour_code|
59
+ puts "#{colour_code.to_s.underline}\n"
60
+ puts "\tNormal: #{send(colour_code)} usage: \"#{self}\".#{colour_code})"
61
+ puts "\tBold: #{send(colour_code).bold} usage: \"#{self}\".#{colour_code}.bold)"
62
+ puts "\tHighlight: #{send(colour_code, :highlight)} usage: \"#{self}\".#{colour_code}(:highlight))"
63
+ puts "\tHighlight & bold: #{send(colour_code, :highlight).bold} usage: \"#{self}\".#{colour_code}(:highlight)).bold"
64
+ puts "\n\n"
65
+ end
66
+ nil
67
+ end
68
+
69
+ def stylesheet
70
+ StringColourStylesheet.public_instance_methods.each do |method|
71
+ puts "\s\s#{method.to_s.underline}: #{send(method)} \s\s\susage: \"#{self}\".#{method}"
72
+ end
73
+ nil
74
+ end
75
+ end
@@ -0,0 +1,61 @@
1
+ module StringColourStylesheet
2
+ def error
3
+ bc_red.bold
4
+ end
5
+
6
+ def disabled
7
+ bc_white
8
+ end
9
+
10
+ def title
11
+ bc_cyan.underline
12
+ end
13
+
14
+ def warning
15
+ bc_orange.bold
16
+ end
17
+
18
+ def resource_key
19
+ bc_white
20
+ end
21
+
22
+ def resource_key_inactive
23
+ bc_grey
24
+ end
25
+
26
+ def resource_value_inactive
27
+ bc_grey
28
+ end
29
+
30
+ def resource_value
31
+ bc_green
32
+ end
33
+
34
+ def hierarchy
35
+ bc_green.bold
36
+ end
37
+
38
+ def informational
39
+ bc_blue
40
+ end
41
+
42
+ def instructional
43
+ bc_magenta
44
+ end
45
+
46
+ def terminal_prompt
47
+ bc_cyan
48
+ end
49
+
50
+ def progress
51
+ bc_green
52
+ end
53
+
54
+ def success
55
+ bc_green
56
+ end
57
+
58
+ def namespace
59
+ bc_cyan
60
+ end
61
+ end
metadata CHANGED
@@ -1,43 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bcome
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guillaume Roderick (Webzakimbo)
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-20 00:00:00.000000000 Z
11
+ date: 2017-11-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: aws-sdk
14
+ name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: '2'
19
+ version: '5.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: '2'
26
+ version: '5.1'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rainbow
28
+ name: awesome_print
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 2.0.0
33
+ version: 1.8.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 2.0.0
40
+ version: 1.8.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: fog-aws
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.12.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.12.0
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: net-scp
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -59,33 +73,47 @@ dependencies:
59
73
  - !ruby/object:Gem::Version
60
74
  version: 1.2.1
61
75
  - !ruby/object:Gem::Dependency
62
- name: rsync
76
+ name: net-ssh
63
77
  requirement: !ruby/object:Gem::Requirement
64
78
  requirements:
65
- - - "~>"
79
+ - - '='
66
80
  - !ruby/object:Gem::Version
67
- version: '1.0'
81
+ version: 4.1.0
68
82
  type: :runtime
69
83
  prerelease: false
70
84
  version_requirements: !ruby/object:Gem::Requirement
71
85
  requirements:
72
- - - "~>"
86
+ - - '='
73
87
  - !ruby/object:Gem::Version
74
- version: '1.0'
88
+ version: 4.1.0
75
89
  - !ruby/object:Gem::Dependency
76
- name: fog-aws
90
+ name: pmap
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - '='
94
+ - !ruby/object:Gem::Version
95
+ version: 1.1.1
96
+ type: :runtime
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - '='
101
+ - !ruby/object:Gem::Version
102
+ version: 1.1.1
103
+ - !ruby/object:Gem::Dependency
104
+ name: rainbow
77
105
  requirement: !ruby/object:Gem::Requirement
78
106
  requirements:
79
107
  - - "~>"
80
108
  - !ruby/object:Gem::Version
81
- version: 0.12.0
109
+ version: 2.2.1
82
110
  type: :runtime
83
111
  prerelease: false
84
112
  version_requirements: !ruby/object:Gem::Requirement
85
113
  requirements:
86
114
  - - "~>"
87
115
  - !ruby/object:Gem::Version
88
- version: 0.12.0
116
+ version: 2.2.1
89
117
  - !ruby/object:Gem::Dependency
90
118
  name: require_all
91
119
  requirement: !ruby/object:Gem::Requirement
@@ -101,102 +129,156 @@ dependencies:
101
129
  - !ruby/object:Gem::Version
102
130
  version: 1.3.3
103
131
  - !ruby/object:Gem::Dependency
104
- name: pmap
132
+ name: rsync
105
133
  requirement: !ruby/object:Gem::Requirement
106
134
  requirements:
107
- - - '='
135
+ - - "~>"
108
136
  - !ruby/object:Gem::Version
109
- version: 1.1.1
137
+ version: '1.0'
110
138
  type: :runtime
111
139
  prerelease: false
112
140
  version_requirements: !ruby/object:Gem::Requirement
113
141
  requirements:
114
- - - '='
142
+ - - "~>"
115
143
  - !ruby/object:Gem::Version
116
- version: 1.1.1
117
- description: Provides a console interface for traversing a hierarchy of platforms
118
- -> environment -> servers, and exposes common administration tools for the managemenent
119
- either of individual servers, or groups of servers. The system is driven from simple
120
- configuration and is extensible. It integrates with AWS EC2 for dynamic network
121
- discovery. Machines may be interacted with directly from the command line.
144
+ version: '1.0'
145
+ description: 'Automation and real-time orchestration toolkit: no more re-inventing
146
+ the wheel for common & basic dev ops tasks. Network discovery / access machines
147
+ by SSH / deploy applications / apply orchestration / enable automation. Amazon
148
+ EC2 integration'
122
149
  email:
123
150
  - guillaume@webzakimbo.com
124
151
  executables:
125
152
  - bcome
126
- - bcome-setup
127
- - bcome-bash-setup
128
153
  extensions: []
129
154
  extra_rdoc_files: []
130
155
  files:
131
156
  - bin/bcome
132
- - bin/bcome-bash-setup
133
- - bin/bcome-setup
134
- - bin/boot.rb
135
- - bin/boot_no_shell.rb
136
- - filters/ec2_filter.rb
137
157
  - lib/bcome.rb
138
- - lib/bcome/version.rb
139
- - lib/become_object.rb
140
- - lib/boot.rb
141
- - lib/command.rb
142
- - lib/context_functions.rb
143
- - lib/filters/base.rb
144
- - lib/filters/ec2_filter.rb
145
- - lib/functions.rb
146
- - lib/helpers/command_helper.rb
147
- - lib/helpers/environment_ssh.rb
148
- - lib/helpers/fog_helper.rb
149
- - lib/helpers/instance_command.rb
150
- - lib/helpers/instance_ssh.rb
151
- - lib/helpers/selections.rb
152
- - lib/interactive/interactive_session_halt.rb
153
- - lib/interactive/session.rb
154
- - lib/interactive/session_item/base.rb
155
- - lib/interactive/session_item/transparent_ssh.rb
156
- - lib/nodes/base.rb
157
- - lib/nodes/environment.rb
158
- - lib/nodes/estate.rb
159
- - lib/nodes/instance.rb
160
- - lib/nodes/platform.rb
161
- - lib/nodes/view.rb
162
- - lib/object.rb
163
- - lib/orchestrator/command_group/base.rb
164
- - lib/orchestrator/command_group/custom.rb
165
- - lib/orchestrator/command_group/direct.rb
166
- - lib/orchestrator/direct_command/group.rb
167
- - lib/orchestrator/direct_command/instance.rb
168
- - lib/orchestrator/factory.rb
169
- - lib/orchestrator/loader.rb
170
- - lib/orchestrator/node_target/all.rb
171
- - lib/orchestrator/node_target/all_excluding_roles.rb
172
- - lib/orchestrator/node_target/all_with_roles.rb
173
- - lib/orchestrator/node_target/base.rb
174
- - lib/orchestrator/node_target/single.rb
175
- - lib/orchestrator/recipe.rb
176
- - lib/orchestrator/registry.rb
177
- - lib/orchestrator/validate_and_set.rb
178
- - lib/patches/string.rb
179
- - lib/progress_bar.rb
180
- - lib/render_irb.rb
181
- - lib/scp.rb
182
- - lib/ssh.rb
183
- - lib/stack/base.rb
184
- - lib/stack/environment.rb
185
- - lib/stack/estate.rb
186
- - lib/stack/instance.rb
187
- - lib/stack/platform.rb
188
- - lib/stack/view.rb
189
- - lib/workspace_context.rb
158
+ - lib/objects/bcome/version.rb
159
+ - lib/objects/bootup.rb
160
+ - lib/objects/command/local.rb
161
+ - lib/objects/config_factory.rb
162
+ - lib/objects/driver/base.rb
163
+ - lib/objects/driver/bucket.rb
164
+ - lib/objects/driver/ec2.rb
165
+ - lib/objects/driver/static.rb
166
+ - lib/objects/exception/argument_error_invoking_method_from_command_line.rb
167
+ - lib/objects/exception/base.rb
168
+ - lib/objects/exception/can_only_subselect_on_inventory.rb
169
+ - lib/objects/exception/cannot_find_internal_registry_klass.rb
170
+ - lib/objects/exception/cannot_find_subselection_parent.rb
171
+ - lib/objects/exception/cant_find_key_in_cloud_tags.rb
172
+ - lib/objects/exception/cant_find_key_in_metadata.rb
173
+ - lib/objects/exception/cant_find_proxy_host_by_identifier.rb
174
+ - lib/objects/exception/cant_find_proxy_host_by_namespace.rb
175
+ - lib/objects/exception/could_not_initiate_ssh_connection.rb
176
+ - lib/objects/exception/could_not_initiate_ssh_connection_through_backend_proxy.rb
177
+ - lib/objects/exception/deprecation_warning.rb
178
+ - lib/objects/exception/duplicate_command_line_argument_key.rb
179
+ - lib/objects/exception/ec2_driver_missing_provisioning_region.rb
180
+ - lib/objects/exception/failed_to_run_local_command.rb
181
+ - lib/objects/exception/interactive_session_halt.rb
182
+ - lib/objects/exception/invalid_bcome_breadcrumb.rb
183
+ - lib/objects/exception/invalid_breadcrumb.rb
184
+ - lib/objects/exception/invalid_context_command.rb
185
+ - lib/objects/exception/invalid_identifier.rb
186
+ - lib/objects/exception/invalid_machines_cache_config.rb
187
+ - lib/objects/exception/invalid_matcher_query.rb
188
+ - lib/objects/exception/invalid_meta_data_config.rb
189
+ - lib/objects/exception/invalid_network_config.rb
190
+ - lib/objects/exception/invalid_network_driver_type.rb
191
+ - lib/objects/exception/invalid_proxy_config.rb
192
+ - lib/objects/exception/invalid_regexp_matcher_in_registry.rb
193
+ - lib/objects/exception/invalid_registry_arguments_type.rb
194
+ - lib/objects/exception/invalid_registry_data_config.rb
195
+ - lib/objects/exception/invalid_restriction_key_in_registry.rb
196
+ - lib/objects/exception/invalid_ssh_config.rb
197
+ - lib/objects/exception/inventories_cannot_have_subviews.rb
198
+ - lib/objects/exception/malformed_command_line_arguments.rb
199
+ - lib/objects/exception/method_invocation_requires_parameter.rb
200
+ - lib/objects/exception/method_name_conflict_in_registry.rb
201
+ - lib/objects/exception/missing_argument_for_registry_command.rb
202
+ - lib/objects/exception/missing_description_on_view.rb
203
+ - lib/objects/exception/missing_execute_on_registry_object.rb
204
+ - lib/objects/exception/missing_identifier_on_view.rb
205
+ - lib/objects/exception/missing_ip_address_on_server.rb
206
+ - lib/objects/exception/missing_network_config.rb
207
+ - lib/objects/exception/missing_params_for_rsync.rb
208
+ - lib/objects/exception/missing_params_for_scp.rb
209
+ - lib/objects/exception/missing_subselection_key.rb
210
+ - lib/objects/exception/missing_type_on_view.rb
211
+ - lib/objects/exception/no_node_found_for_breadcrumb.rb
212
+ - lib/objects/exception/no_node_named_by_identifier.rb
213
+ - lib/objects/exception/node_identifiers_must_be_unique.rb
214
+ - lib/objects/exception/orchestration_script_does_not_exist.rb
215
+ - lib/objects/exception/proxy_host_node_does_not_have_public_ip_address.rb
216
+ - lib/objects/exception/unknown_method_for_namespace.rb
217
+ - lib/objects/interactive/session.rb
218
+ - lib/objects/interactive/session_item/base.rb
219
+ - lib/objects/interactive/session_item/capture_input.rb
220
+ - lib/objects/interactive/session_item/transparent_ssh.rb
221
+ - lib/objects/modules/context.rb
222
+ - lib/objects/modules/registry_management.rb
223
+ - lib/objects/modules/ui_output.rb
224
+ - lib/objects/modules/workspace_commands.rb
225
+ - lib/objects/modules/workspace_menu.rb
226
+ - lib/objects/node/attributes.rb
227
+ - lib/objects/node/base.rb
228
+ - lib/objects/node/cache_handler.rb
229
+ - lib/objects/node/collection.rb
230
+ - lib/objects/node/factory.rb
231
+ - lib/objects/node/inventory/base.rb
232
+ - lib/objects/node/inventory/defined.rb
233
+ - lib/objects/node/inventory/subselect.rb
234
+ - lib/objects/node/meta/base.rb
235
+ - lib/objects/node/meta/cloud.rb
236
+ - lib/objects/node/meta/local.rb
237
+ - lib/objects/node/meta_data_factory.rb
238
+ - lib/objects/node/meta_data_loader.rb
239
+ - lib/objects/node/resources/base.rb
240
+ - lib/objects/node/resources/inventory.rb
241
+ - lib/objects/node/resources/sub_inventory.rb
242
+ - lib/objects/node/server/base.rb
243
+ - lib/objects/node/server/dynamic.rb
244
+ - lib/objects/node/server/static.rb
245
+ - lib/objects/orchestration/base.rb
246
+ - lib/objects/orchestrator.rb
247
+ - lib/objects/parser/bread_crumb.rb
248
+ - lib/objects/progress_bar.rb
249
+ - lib/objects/registry/arguments/base.rb
250
+ - lib/objects/registry/arguments/command_line.rb
251
+ - lib/objects/registry/arguments/console.rb
252
+ - lib/objects/registry/command/base.rb
253
+ - lib/objects/registry/command/external.rb
254
+ - lib/objects/registry/command/group.rb
255
+ - lib/objects/registry/command/internal.rb
256
+ - lib/objects/registry/command_list.rb
257
+ - lib/objects/registry/loader.rb
258
+ - lib/objects/ssh/bootstrap.rb
259
+ - lib/objects/ssh/command.rb
260
+ - lib/objects/ssh/command_exec.rb
261
+ - lib/objects/ssh/connection_handler.rb
262
+ - lib/objects/ssh/driver.rb
263
+ - lib/objects/ssh/proxy_data.rb
264
+ - lib/objects/ssh/script_exec.rb
265
+ - lib/objects/system/local.rb
266
+ - lib/objects/workspace.rb
190
267
  - patches/irb.rb
191
- homepage: https://github.com/webzakimbo/bcome
268
+ - patches/string.rb
269
+ - patches/string_stylesheet.rb
270
+ homepage: https://github.com/webzakimbo/bcome-kontrol
192
271
  licenses:
193
- - MIT
272
+ - GPL-3.0
194
273
  metadata: {}
195
- post_install_message:
274
+ post_install_message: "\n Deprecation warning: bcome 1.0 is a rewrite and is not
275
+ backwards compatible with previous versions.\n\n See https://github.com/webzakimbo/bcome-kontrol
276
+ for our new documentation.\n\n The older version will no longer be supported.
277
+ If you'd like to stick to the older gem version, then pin your bcome gem to version
278
+ 0.7.0\n "
196
279
  rdoc_options: []
197
280
  require_paths:
198
281
  - lib
199
- - lib/stack
200
282
  required_ruby_version: !ruby/object:Gem::Requirement
201
283
  requirements:
202
284
  - - ">="
@@ -209,8 +291,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
209
291
  version: '0'
210
292
  requirements: []
211
293
  rubyforge_project:
212
- rubygems_version: 2.6.8
294
+ rubygems_version: 2.6.11
213
295
  signing_key:
214
296
  specification_version: 4
215
- summary: Toolkit for managing machines - simplify your workflow.
297
+ summary: Automation and real-time orchestration toolkit
216
298
  test_files: []