bcome 0.7.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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: []