bcome 1.3.2 → 1.4.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 (165) hide show
  1. checksums.yaml +5 -5
  2. data/bin/bcome +13 -8
  3. data/lib/bcome.rb +7 -11
  4. data/lib/objects/bcome/version.rb +19 -1
  5. data/lib/objects/bootup.rb +13 -5
  6. data/lib/objects/command/local.rb +2 -0
  7. data/lib/objects/config_factory.rb +3 -0
  8. data/lib/objects/driver/base.rb +36 -4
  9. data/lib/objects/driver/bucket.rb +6 -4
  10. data/lib/objects/driver/ec2.rb +35 -4
  11. data/lib/objects/driver/gcp.rb +124 -0
  12. data/lib/objects/driver/gcp/authentication/api_key.rb +6 -0
  13. data/lib/objects/driver/gcp/authentication/oauth.rb +101 -0
  14. data/lib/objects/driver/gcp/authentication/service_account.rb +7 -0
  15. data/lib/objects/driver/static.rb +2 -0
  16. data/lib/objects/encryptor.rb +26 -24
  17. data/lib/objects/exception/argument_error_invoking_method_from_command_line.rb +8 -4
  18. data/lib/objects/exception/base.rb +14 -10
  19. data/lib/objects/exception/can_only_subselect_on_inventory.rb +8 -4
  20. data/lib/objects/exception/cannot_authenticate_to_gcp.rb +11 -0
  21. data/lib/objects/exception/cannot_find_internal_registry_klass.rb +8 -4
  22. data/lib/objects/exception/cannot_find_inventory.rb +11 -0
  23. data/lib/objects/exception/cannot_find_subselection_parent.rb +8 -4
  24. data/lib/objects/exception/cant_find_key_in_cloud_tags.rb +8 -4
  25. data/lib/objects/exception/cant_find_key_in_metadata.rb +8 -4
  26. data/lib/objects/exception/cant_find_proxy_host_by_identifier.rb +8 -4
  27. data/lib/objects/exception/cant_find_proxy_host_by_namespace.rb +8 -4
  28. data/lib/objects/exception/could_not_initiate_ssh_connection.rb +8 -4
  29. data/lib/objects/exception/could_not_initiate_ssh_connection_through_backend_proxy.rb +8 -4
  30. data/lib/objects/exception/could_not_retrieve_terraform_output.rb +11 -0
  31. data/lib/objects/exception/deprecation_warning.rb +9 -7
  32. data/lib/objects/exception/duplicate_command_line_argument_key.rb +8 -4
  33. data/lib/objects/exception/ec2_driver_missing_provisioning_region.rb +8 -4
  34. data/lib/objects/exception/failed_to_run_local_command.rb +8 -4
  35. data/lib/objects/exception/generic.rb +11 -0
  36. data/lib/objects/exception/interactive_session_halt.rb +6 -2
  37. data/lib/objects/exception/invalid_bcome_breadcrumb.rb +8 -4
  38. data/lib/objects/exception/invalid_breadcrumb.rb +8 -4
  39. data/lib/objects/exception/invalid_context_command.rb +8 -4
  40. data/lib/objects/exception/invalid_gcp_authentication_scheme.rb +11 -0
  41. data/lib/objects/exception/invalid_identifier.rb +8 -4
  42. data/lib/objects/exception/invalid_machines_cache_config.rb +8 -4
  43. data/lib/objects/exception/invalid_matcher_query.rb +8 -4
  44. data/lib/objects/exception/invalid_meta_data_config.rb +8 -4
  45. data/lib/objects/exception/invalid_metadata_encryption_key.rb +8 -4
  46. data/lib/objects/exception/invalid_network_config.rb +8 -4
  47. data/lib/objects/exception/invalid_network_driver_type.rb +8 -4
  48. data/lib/objects/exception/invalid_port_forward_request.rb +11 -0
  49. data/lib/objects/exception/invalid_proxy_config.rb +8 -4
  50. data/lib/objects/exception/invalid_regexp_matcher_in_registry.rb +8 -4
  51. data/lib/objects/exception/invalid_registry_arguments_type.rb +8 -4
  52. data/lib/objects/exception/invalid_registry_command_name_length.rb +8 -4
  53. data/lib/objects/exception/invalid_registry_data_config.rb +8 -4
  54. data/lib/objects/exception/invalid_restriction_key_in_registry.rb +8 -4
  55. data/lib/objects/exception/invalid_ssh_config.rb +8 -4
  56. data/lib/objects/exception/inventories_cannot_have_subviews.rb +8 -4
  57. data/lib/objects/exception/malformed_command_line_arguments.rb +8 -4
  58. data/lib/objects/exception/method_invocation_requires_parameter.rb +8 -4
  59. data/lib/objects/exception/method_name_conflict_in_registry.rb +8 -4
  60. data/lib/objects/exception/missing_argument_for_registry_command.rb +8 -4
  61. data/lib/objects/exception/missing_description_on_view.rb +8 -4
  62. data/lib/objects/exception/missing_execute_on_registry_object.rb +8 -4
  63. data/lib/objects/exception/missing_gcp_authentication_scheme.rb +11 -0
  64. data/lib/objects/exception/missing_gcp_service_scopes.rb +11 -0
  65. data/lib/objects/exception/missing_identifier_on_view.rb +8 -4
  66. data/lib/objects/exception/missing_inventory_contributors.rb +11 -0
  67. data/lib/objects/exception/missing_ip_address_on_server.rb +8 -4
  68. data/lib/objects/exception/missing_network_config.rb +8 -4
  69. data/lib/objects/exception/missing_or_invalid_client_secrets.rb +11 -0
  70. data/lib/objects/exception/missing_params_for_rsync.rb +8 -4
  71. data/lib/objects/exception/missing_params_for_scp.rb +8 -4
  72. data/lib/objects/exception/missing_subselection_key.rb +8 -4
  73. data/lib/objects/exception/missing_type_on_view.rb +8 -4
  74. data/lib/objects/exception/no_node_found_for_breadcrumb.rb +8 -4
  75. data/lib/objects/exception/no_node_named_by_identifier.rb +8 -4
  76. data/lib/objects/exception/node_identifiers_must_be_unique.rb +8 -4
  77. data/lib/objects/exception/orchestration_script_does_not_exist.rb +8 -4
  78. data/lib/objects/exception/proxy_host_node_does_not_have_public_ip_address.rb +8 -4
  79. data/lib/objects/exception/unknown_dynamic_server_type.rb +11 -0
  80. data/lib/objects/exception/unknown_method_for_namespace.rb +8 -4
  81. data/lib/objects/interactive/session.rb +4 -1
  82. data/lib/objects/interactive/session_item/base.rb +2 -0
  83. data/lib/objects/interactive/session_item/capture_input.rb +2 -0
  84. data/lib/objects/interactive/session_item/transparent_ssh.rb +29 -23
  85. data/lib/objects/loading_bar/handler.rb +80 -0
  86. data/lib/objects/loading_bar/indicator/base.rb +64 -0
  87. data/lib/objects/loading_bar/indicator/basic.rb +34 -0
  88. data/lib/objects/loading_bar/indicator/progress.rb +26 -0
  89. data/lib/objects/loading_bar/pid_bucket.rb +27 -0
  90. data/lib/objects/modules/context.rb +13 -9
  91. data/lib/objects/modules/registry_management.rb +16 -10
  92. data/lib/objects/modules/ui_output.rb +10 -6
  93. data/lib/objects/modules/workspace_commands.rb +159 -155
  94. data/lib/objects/modules/workspace_menu.rb +129 -124
  95. data/lib/objects/node/attributes.rb +13 -21
  96. data/lib/objects/node/base.rb +116 -67
  97. data/lib/objects/node/cache_handler.rb +2 -0
  98. data/lib/objects/node/collection.rb +10 -9
  99. data/lib/objects/node/factory.rb +35 -28
  100. data/lib/objects/node/inventory/base.rb +100 -100
  101. data/lib/objects/node/inventory/defined.rb +110 -89
  102. data/lib/objects/node/inventory/merge.rb +43 -0
  103. data/lib/objects/node/inventory/subselect.rb +64 -46
  104. data/lib/objects/node/kube/base.rb +51 -0
  105. data/lib/objects/node/kube/container.rb +9 -0
  106. data/lib/objects/node/kube/estate.rb +19 -0
  107. data/lib/objects/node/kube/namespace.rb +24 -0
  108. data/lib/objects/node/kube/pod.rb +24 -0
  109. data/lib/objects/node/kube_wrap.rb +26 -0
  110. data/lib/objects/node/meta/base.rb +8 -1
  111. data/lib/objects/node/meta/cloud.rb +2 -0
  112. data/lib/objects/node/meta/local.rb +2 -0
  113. data/lib/objects/node/meta_data_factory.rb +3 -1
  114. data/lib/objects/node/meta_data_loader.rb +29 -23
  115. data/lib/objects/node/resources/base.rb +5 -1
  116. data/lib/objects/node/resources/inventory.rb +7 -5
  117. data/lib/objects/node/resources/merged.rb +38 -0
  118. data/lib/objects/node/resources/sub_inventory.rb +7 -4
  119. data/lib/objects/node/server/base.rb +91 -65
  120. data/lib/objects/node/server/dynamic/base.rb +23 -0
  121. data/lib/objects/node/server/{dynamic.rb → dynamic/ec2.rb} +14 -13
  122. data/lib/objects/node/server/dynamic/gcp.rb +47 -0
  123. data/lib/objects/node/server/static.rb +13 -2
  124. data/lib/objects/orchestration/base.rb +10 -0
  125. data/lib/objects/orchestration/interactive_terraform.rb +62 -27
  126. data/lib/objects/orchestrator.rb +22 -0
  127. data/lib/objects/parser/bread_crumb.rb +3 -1
  128. data/lib/objects/registry/arguments/base.rb +3 -1
  129. data/lib/objects/registry/arguments/command_line.rb +6 -1
  130. data/lib/objects/registry/arguments/console.rb +4 -1
  131. data/lib/objects/registry/command/base.rb +3 -0
  132. data/lib/objects/registry/command/external.rb +4 -2
  133. data/lib/objects/registry/command/group.rb +6 -3
  134. data/lib/objects/registry/command/internal.rb +3 -1
  135. data/lib/objects/registry/command/shortcut.rb +17 -9
  136. data/lib/objects/registry/command_list.rb +2 -0
  137. data/lib/objects/registry/loader.rb +10 -10
  138. data/lib/objects/ssh/bootstrap.rb +3 -1
  139. data/lib/objects/ssh/command.rb +10 -5
  140. data/lib/objects/ssh/command_exec.rb +13 -9
  141. data/lib/objects/ssh/connection_wrangler.rb +105 -0
  142. data/lib/objects/ssh/connector.rb +100 -0
  143. data/lib/objects/ssh/driver.rb +27 -215
  144. data/lib/objects/ssh/driver_concerns/command_strings.rb +17 -0
  145. data/lib/objects/ssh/driver_concerns/connection.rb +78 -0
  146. data/lib/objects/ssh/driver_concerns/functions.rb +89 -0
  147. data/lib/objects/ssh/driver_concerns/user.rb +32 -0
  148. data/lib/objects/ssh/{proxy_data.rb → proxy_hop.rb} +52 -7
  149. data/lib/objects/ssh/script_exec.rb +4 -1
  150. data/lib/objects/ssh/tunnel/local_port_forward.rb +5 -6
  151. data/lib/objects/ssh/tunnel_keeper.rb +21 -0
  152. data/lib/objects/ssh/window.rb +31 -0
  153. data/lib/objects/startup.rb +52 -0
  154. data/lib/objects/system/local.rb +3 -0
  155. data/lib/objects/terraform/output.rb +41 -0
  156. data/lib/objects/workspace.rb +3 -14
  157. data/patches/irb.rb +29 -6
  158. data/patches/string-encrypt.rb +20 -23
  159. data/patches/string.rb +5 -1
  160. data/patches/string_stylesheet.rb +2 -0
  161. metadata +101 -23
  162. data/lib/objects/progress_bar.rb +0 -30
  163. data/lib/objects/ssh/connection_handler.rb +0 -101
  164. data/lib/objects/terraform/parser.rb +0 -23
  165. data/lib/objects/terraform/state.rb +0 -34
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Bcome::System
2
4
  class Local
3
5
  include Singleton
@@ -10,6 +12,7 @@ module Bcome::System
10
12
  # we fail fast if we're not in a console session
11
13
  raise Bcome::Exception::FailedToRunLocalCommand, "#{raw_command}. Error: " + local_command.stderr
12
14
  end
15
+
13
16
  local_command
14
17
  end
15
18
 
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bcome::Terraform
4
+ class Output
5
+ require 'json'
6
+
7
+ OUTPUT_COMMAND = 'terraform output -json'
8
+
9
+ def initialize(namespace)
10
+ @namespace = namespace
11
+ end
12
+
13
+ def output
14
+ @output ||= get_output
15
+ end
16
+
17
+ private
18
+
19
+ def terraform_installation_path
20
+ @terraform_installation_path ||= "terraform/environments/#{@namespace.gsub(':', '_')}"
21
+ end
22
+
23
+ def get_output
24
+ get_output_result = do_get_output
25
+
26
+ # Until this feature is officially featured, failure to get terraform data will fail silently
27
+ # One thing not decided upon yet is how to indicate that we wish to load terraform data or not.
28
+ return {} if get_output_result.failed?
29
+
30
+ JSON.parse(get_output_result.stdout)
31
+ end
32
+
33
+ def get_output_command
34
+ "cd #{terraform_installation_path} ; #{OUTPUT_COMMAND}"
35
+ end
36
+
37
+ def do_get_output
38
+ ::Bcome::Command::Local.run(get_output_command)
39
+ end
40
+ end
41
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ::Bcome::Workspace
2
4
  include ::Singleton
3
5
 
@@ -20,7 +22,6 @@ class ::Bcome::Workspace
20
22
 
21
23
  @context.irb_workspace = main_context.workspace if main_context
22
24
  @context.previous_irb_workspace = params[:current_context] if params[:current_context]
23
- set_irb_prompt
24
25
  spawn_into_console_for_context
25
26
  nil
26
27
  end
@@ -38,9 +39,7 @@ class ::Bcome::Workspace
38
39
  end
39
40
 
40
41
  def spawn_into_console_for_context
41
- require 'irb/ext/multi-irb'
42
- IRB.parse_opts_with_ignoring_script
43
- IRB.irb nil, @context
42
+ ::IRB.start_session(self, @context)
44
43
  end
45
44
 
46
45
  def has_context?
@@ -62,14 +61,4 @@ class ::Bcome::Workspace
62
61
  IRB.conf[:MAIN_CONTEXT] = IRB::Irb.new.context
63
62
  console_set!
64
63
  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
64
  end
@@ -1,25 +1,48 @@
1
- require 'irb'
1
+ # frozen_string_literal: true
2
2
 
3
+ require 'irb'
3
4
  module IRB
4
5
  class << self
5
6
  # with thanks: http://stackoverflow.com/questions/4749476/how-can-i-pass-arguments-to-irb-if-i-dont-specify-programfile
6
- def parse_opts_with_ignoring_script(*params)
7
+ def parse_opts_with_ignoring_script(*_params)
7
8
  arg = ARGV.first
8
9
  script = $PROGRAM_NAME
9
10
  parse_opts_without_ignoring_script
10
11
  @CONF[:SCRIPT] = nil
12
+
13
+ @CONF[:IGNORE_SIGINT] = true
14
+
11
15
  $0 = script
12
16
  ARGV.unshift arg
13
17
  end
14
-
15
18
  alias parse_opts_without_ignoring_script parse_opts
16
19
  alias parse_opts parse_opts_with_ignoring_script
20
+
21
+ def start_session(bc_workspace, binding)
22
+ workspace = WorkSpace.new(binding)
23
+
24
+ IRB.conf[:PROMPT][:CUSTOM] = {
25
+ PROMPT_N: "\e[1m:\e[m ",
26
+ PROMPT_I: "\e[1m#{bc_workspace.irb_prompt} >\e[m ",
27
+ PROMPT_C: "\e[1m#{bc_workspace.irb_prompt} >\e[m ",
28
+ RETURN: "%s \n"
29
+ }
30
+ IRB.conf[:PROMPT_MODE] = :CUSTOM
31
+
32
+ irb = Irb.new(workspace)
33
+
34
+ @CONF[:IRB_RC]&.call(irb.context)
35
+ @CONF[:MAIN_CONTEXT] = irb.context
36
+
37
+ catch(:IRB_EXIT) do
38
+ irb.eval_input
39
+ end
40
+ end
17
41
  end
18
42
 
19
43
  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))
44
+ def overriden_evaluate(*_params)
45
+ evaluate_without_overriden(*_params)
23
46
  rescue ::Bcome::Exception::Base => e
24
47
  puts e.pretty_display
25
48
  end
@@ -1,40 +1,37 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'openssl'
2
4
 
3
5
  # Adapted from https://stackoverflow.com/questions/39033577/opensslcipherciphererror-wrong-final-block-length
4
6
 
5
7
  class String
6
-
7
8
  ALGORITHM = 'AES-256-ECB'
8
9
 
9
10
  def encrypt(key)
10
- begin
11
- cipher = OpenSSL::Cipher.new(ALGORITHM)
12
- cipher.encrypt()
13
- cipher.key = key.as_256_bit_key
14
- crypt = cipher.update(self) + cipher.final()
15
- crypt_string = (Base64.encode64(crypt))
16
- return crypt_string
17
- rescue Exception => e
18
- puts "Failed to encrypt: #{e.message}"
19
- end
11
+ cipher = OpenSSL::Cipher.new(ALGORITHM)
12
+ cipher.encrypt
13
+ cipher.key = key.as_256_bit_key
14
+ crypt = cipher.update(self) + cipher.final
15
+ crypt_string = Base64.encode64(crypt)
16
+ crypt_string
17
+ rescue Exception => e
18
+ puts "Failed to encrypt: #{e.message}"
20
19
  end
21
20
 
22
21
  def decrypt(key)
23
- begin
24
- cipher = OpenSSL::Cipher.new(ALGORITHM)
25
- cipher.decrypt()
26
- cipher.key = key.as_256_bit_key
27
- tempkey = Base64.decode64(self)
28
- crypt = cipher.update(tempkey)
29
- crypt << cipher.final()
30
- return crypt
31
- rescue Exception => e
32
- raise ::Bcome::Exception::InvalidMetaDataEncryptionKey.new
33
- end
22
+ cipher = OpenSSL::Cipher.new(ALGORITHM)
23
+ cipher.decrypt
24
+ cipher.key = key.as_256_bit_key
25
+ tempkey = Base64.decode64(self)
26
+ crypt = cipher.update(tempkey)
27
+ crypt << cipher.final
28
+ crypt
29
+ rescue Exception
30
+ ::Bcome::Node::MetaDataLoader.instance.decryption_key = nil
31
+ raise ::Bcome::Exception::InvalidMetaDataEncryptionKey
34
32
  end
35
33
 
36
34
  def as_256_bit_key
37
35
  ::Digest::SHA256.digest self
38
36
  end
39
-
40
37
  end
@@ -1,3 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rainbow'
4
+
1
5
  class String
2
6
  include StringColourStylesheet
3
7
 
@@ -13,7 +17,7 @@ class String
13
17
  bc_cyan: '#2aa198',
14
18
  bc_green: '#859900',
15
19
  bc_white: '#ffffff',
16
- bc_grey: '#1c1c1c'
20
+ bc_grey: '#808080'
17
21
  }
18
22
  end
19
23
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module StringColourStylesheet
2
4
  def error
3
5
  bc_red.bold
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bcome
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.4.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: 2018-10-29 00:00:00.000000000 Z
11
+ date: 2020-03-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: '5.1'
19
+ version: 5.2.3
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: '5.1'
26
+ version: 5.2.3
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: awesome_print
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +52,34 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: 0.12.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: google-api-client
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 0.29.1
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 0.29.1
69
+ - !ruby/object:Gem::Dependency
70
+ name: launchy
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '='
74
+ - !ruby/object:Gem::Version
75
+ version: 2.4.3
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '='
81
+ - !ruby/object:Gem::Version
82
+ version: 2.4.3
55
83
  - !ruby/object:Gem::Dependency
56
84
  name: net-scp
57
85
  requirement: !ruby/object:Gem::Requirement
@@ -129,20 +157,34 @@ dependencies:
129
157
  - !ruby/object:Gem::Version
130
158
  version: 1.3.3
131
159
  - !ruby/object:Gem::Dependency
132
- name: rsync
160
+ name: tty-cursor
133
161
  requirement: !ruby/object:Gem::Requirement
134
162
  requirements:
135
- - - "~>"
163
+ - - '='
136
164
  - !ruby/object:Gem::Version
137
- version: '1.0'
165
+ version: 0.2.0
138
166
  type: :runtime
139
167
  prerelease: false
140
168
  version_requirements: !ruby/object:Gem::Requirement
141
169
  requirements:
142
- - - "~>"
170
+ - - '='
171
+ - !ruby/object:Gem::Version
172
+ version: 0.2.0
173
+ - !ruby/object:Gem::Dependency
174
+ name: pry
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - '='
178
+ - !ruby/object:Gem::Version
179
+ version: 0.12.2
180
+ type: :runtime
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - '='
143
185
  - !ruby/object:Gem::Version
144
- version: '1.0'
145
- description: An orchestration framework for AWS EC2
186
+ version: 0.12.2
187
+ description: Orchestration & Automation framework for the Cloud.
146
188
  email:
147
189
  - guillaume@webzakimbo.com
148
190
  executables:
@@ -159,12 +201,18 @@ files:
159
201
  - lib/objects/driver/base.rb
160
202
  - lib/objects/driver/bucket.rb
161
203
  - lib/objects/driver/ec2.rb
204
+ - lib/objects/driver/gcp.rb
205
+ - lib/objects/driver/gcp/authentication/api_key.rb
206
+ - lib/objects/driver/gcp/authentication/oauth.rb
207
+ - lib/objects/driver/gcp/authentication/service_account.rb
162
208
  - lib/objects/driver/static.rb
163
209
  - lib/objects/encryptor.rb
164
210
  - lib/objects/exception/argument_error_invoking_method_from_command_line.rb
165
211
  - lib/objects/exception/base.rb
166
212
  - lib/objects/exception/can_only_subselect_on_inventory.rb
213
+ - lib/objects/exception/cannot_authenticate_to_gcp.rb
167
214
  - lib/objects/exception/cannot_find_internal_registry_klass.rb
215
+ - lib/objects/exception/cannot_find_inventory.rb
168
216
  - lib/objects/exception/cannot_find_subselection_parent.rb
169
217
  - lib/objects/exception/cant_find_key_in_cloud_tags.rb
170
218
  - lib/objects/exception/cant_find_key_in_metadata.rb
@@ -172,14 +220,17 @@ files:
172
220
  - lib/objects/exception/cant_find_proxy_host_by_namespace.rb
173
221
  - lib/objects/exception/could_not_initiate_ssh_connection.rb
174
222
  - lib/objects/exception/could_not_initiate_ssh_connection_through_backend_proxy.rb
223
+ - lib/objects/exception/could_not_retrieve_terraform_output.rb
175
224
  - lib/objects/exception/deprecation_warning.rb
176
225
  - lib/objects/exception/duplicate_command_line_argument_key.rb
177
226
  - lib/objects/exception/ec2_driver_missing_provisioning_region.rb
178
227
  - lib/objects/exception/failed_to_run_local_command.rb
228
+ - lib/objects/exception/generic.rb
179
229
  - lib/objects/exception/interactive_session_halt.rb
180
230
  - lib/objects/exception/invalid_bcome_breadcrumb.rb
181
231
  - lib/objects/exception/invalid_breadcrumb.rb
182
232
  - lib/objects/exception/invalid_context_command.rb
233
+ - lib/objects/exception/invalid_gcp_authentication_scheme.rb
183
234
  - lib/objects/exception/invalid_identifier.rb
184
235
  - lib/objects/exception/invalid_machines_cache_config.rb
185
236
  - lib/objects/exception/invalid_matcher_query.rb
@@ -187,6 +238,7 @@ files:
187
238
  - lib/objects/exception/invalid_metadata_encryption_key.rb
188
239
  - lib/objects/exception/invalid_network_config.rb
189
240
  - lib/objects/exception/invalid_network_driver_type.rb
241
+ - lib/objects/exception/invalid_port_forward_request.rb
190
242
  - lib/objects/exception/invalid_proxy_config.rb
191
243
  - lib/objects/exception/invalid_regexp_matcher_in_registry.rb
192
244
  - lib/objects/exception/invalid_registry_arguments_type.rb
@@ -201,9 +253,13 @@ files:
201
253
  - lib/objects/exception/missing_argument_for_registry_command.rb
202
254
  - lib/objects/exception/missing_description_on_view.rb
203
255
  - lib/objects/exception/missing_execute_on_registry_object.rb
256
+ - lib/objects/exception/missing_gcp_authentication_scheme.rb
257
+ - lib/objects/exception/missing_gcp_service_scopes.rb
204
258
  - lib/objects/exception/missing_identifier_on_view.rb
259
+ - lib/objects/exception/missing_inventory_contributors.rb
205
260
  - lib/objects/exception/missing_ip_address_on_server.rb
206
261
  - lib/objects/exception/missing_network_config.rb
262
+ - lib/objects/exception/missing_or_invalid_client_secrets.rb
207
263
  - lib/objects/exception/missing_params_for_rsync.rb
208
264
  - lib/objects/exception/missing_params_for_scp.rb
209
265
  - lib/objects/exception/missing_subselection_key.rb
@@ -213,11 +269,17 @@ files:
213
269
  - lib/objects/exception/node_identifiers_must_be_unique.rb
214
270
  - lib/objects/exception/orchestration_script_does_not_exist.rb
215
271
  - lib/objects/exception/proxy_host_node_does_not_have_public_ip_address.rb
272
+ - lib/objects/exception/unknown_dynamic_server_type.rb
216
273
  - lib/objects/exception/unknown_method_for_namespace.rb
217
274
  - lib/objects/interactive/session.rb
218
275
  - lib/objects/interactive/session_item/base.rb
219
276
  - lib/objects/interactive/session_item/capture_input.rb
220
277
  - lib/objects/interactive/session_item/transparent_ssh.rb
278
+ - lib/objects/loading_bar/handler.rb
279
+ - lib/objects/loading_bar/indicator/base.rb
280
+ - lib/objects/loading_bar/indicator/basic.rb
281
+ - lib/objects/loading_bar/indicator/progress.rb
282
+ - lib/objects/loading_bar/pid_bucket.rb
221
283
  - lib/objects/modules/context.rb
222
284
  - lib/objects/modules/registry_management.rb
223
285
  - lib/objects/modules/ui_output.rb
@@ -230,7 +292,14 @@ files:
230
292
  - lib/objects/node/factory.rb
231
293
  - lib/objects/node/inventory/base.rb
232
294
  - lib/objects/node/inventory/defined.rb
295
+ - lib/objects/node/inventory/merge.rb
233
296
  - lib/objects/node/inventory/subselect.rb
297
+ - lib/objects/node/kube/base.rb
298
+ - lib/objects/node/kube/container.rb
299
+ - lib/objects/node/kube/estate.rb
300
+ - lib/objects/node/kube/namespace.rb
301
+ - lib/objects/node/kube/pod.rb
302
+ - lib/objects/node/kube_wrap.rb
234
303
  - lib/objects/node/meta/base.rb
235
304
  - lib/objects/node/meta/cloud.rb
236
305
  - lib/objects/node/meta/local.rb
@@ -238,15 +307,17 @@ files:
238
307
  - lib/objects/node/meta_data_loader.rb
239
308
  - lib/objects/node/resources/base.rb
240
309
  - lib/objects/node/resources/inventory.rb
310
+ - lib/objects/node/resources/merged.rb
241
311
  - lib/objects/node/resources/sub_inventory.rb
242
312
  - lib/objects/node/server/base.rb
243
- - lib/objects/node/server/dynamic.rb
313
+ - lib/objects/node/server/dynamic/base.rb
314
+ - lib/objects/node/server/dynamic/ec2.rb
315
+ - lib/objects/node/server/dynamic/gcp.rb
244
316
  - lib/objects/node/server/static.rb
245
317
  - lib/objects/orchestration/base.rb
246
318
  - lib/objects/orchestration/interactive_terraform.rb
247
319
  - lib/objects/orchestrator.rb
248
320
  - lib/objects/parser/bread_crumb.rb
249
- - lib/objects/progress_bar.rb
250
321
  - lib/objects/registry/arguments/base.rb
251
322
  - lib/objects/registry/arguments/command_line.rb
252
323
  - lib/objects/registry/arguments/console.rb
@@ -260,24 +331,33 @@ files:
260
331
  - lib/objects/ssh/bootstrap.rb
261
332
  - lib/objects/ssh/command.rb
262
333
  - lib/objects/ssh/command_exec.rb
263
- - lib/objects/ssh/connection_handler.rb
334
+ - lib/objects/ssh/connection_wrangler.rb
335
+ - lib/objects/ssh/connector.rb
264
336
  - lib/objects/ssh/driver.rb
265
- - lib/objects/ssh/proxy_data.rb
337
+ - lib/objects/ssh/driver_concerns/command_strings.rb
338
+ - lib/objects/ssh/driver_concerns/connection.rb
339
+ - lib/objects/ssh/driver_concerns/functions.rb
340
+ - lib/objects/ssh/driver_concerns/user.rb
341
+ - lib/objects/ssh/proxy_hop.rb
266
342
  - lib/objects/ssh/script_exec.rb
267
343
  - lib/objects/ssh/tunnel/local_port_forward.rb
344
+ - lib/objects/ssh/tunnel_keeper.rb
345
+ - lib/objects/ssh/window.rb
346
+ - lib/objects/startup.rb
268
347
  - lib/objects/system/local.rb
269
- - lib/objects/terraform/parser.rb
270
- - lib/objects/terraform/state.rb
348
+ - lib/objects/terraform/output.rb
271
349
  - lib/objects/workspace.rb
272
350
  - patches/irb.rb
273
351
  - patches/string-encrypt.rb
274
352
  - patches/string.rb
275
353
  - patches/string_stylesheet.rb
276
- homepage: https://bcome-kontrol.readthedocs.io/en/latest/
354
+ homepage: https://github.com/webzakimbo/bcome-kontrol
277
355
  licenses:
278
356
  - GPL-3.0
279
- metadata: {}
280
- post_install_message:
357
+ metadata:
358
+ documentation_uri: https://bcome-kontrol.readthedocs.io/en/latest/
359
+ post_install_message: "\nWe'd love your feedback about this tool: \nHow can we improve?
360
+ \ Email guillaume@webzakimbo.com"
281
361
  rdoc_options: []
282
362
  require_paths:
283
363
  - lib
@@ -292,10 +372,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
292
372
  - !ruby/object:Gem::Version
293
373
  version: '0'
294
374
  requirements: []
295
- rubyforge_project:
296
- rubygems_version: 2.6.8
375
+ rubygems_version: 3.0.3
297
376
  signing_key:
298
377
  specification_version: 4
299
- summary: Organise your world, then integrate absolutely whatever you want in pure
300
- Ruby.
378
+ summary: A DevOps Application development framework
301
379
  test_files: []