bcome 1.3.4 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/bin/bcome +13 -8
- data/lib/bcome.rb +14 -11
- data/lib/objects/bcome/version.rb +19 -1
- data/lib/objects/bootup.rb +16 -7
- data/lib/objects/command/local.rb +2 -0
- data/lib/objects/config_factory.rb +3 -0
- data/lib/objects/driver/base.rb +52 -6
- data/lib/objects/driver/bucket.rb +6 -4
- data/lib/objects/driver/ec2.rb +45 -5
- data/lib/objects/driver/gcp.rb +168 -0
- data/lib/objects/driver/gcp/authentication/api_key.rb +6 -0
- data/lib/objects/driver/gcp/authentication/base.rb +36 -0
- data/lib/objects/driver/gcp/authentication/oauth.rb +96 -0
- data/lib/objects/driver/gcp/authentication/oauth_client_config.rb +22 -0
- data/lib/objects/driver/gcp/authentication/oauth_session_store.rb +22 -0
- data/lib/objects/driver/gcp/authentication/service_account.rb +62 -0
- data/lib/objects/driver/gcp/authentication/signet/service_account.rb +27 -0
- data/lib/objects/driver/gcp/authentication/utilities.rb +42 -0
- data/lib/objects/encryptor.rb +109 -24
- data/lib/objects/exception/argument_error_invoking_method_from_command_line.rb +8 -4
- data/lib/objects/exception/base.rb +21 -10
- data/lib/objects/exception/can_only_subselect_on_inventory.rb +8 -4
- data/lib/objects/exception/cannot_authenticate_to_gcp.rb +11 -0
- data/lib/objects/exception/cannot_find_internal_registry_klass.rb +8 -4
- data/lib/objects/exception/cannot_find_inventory.rb +11 -0
- data/lib/objects/exception/cannot_find_subselection_parent.rb +8 -4
- data/lib/objects/exception/cant_find_key_in_cloud_tags.rb +8 -4
- data/lib/objects/exception/cant_find_key_in_metadata.rb +8 -4
- data/lib/objects/exception/cant_find_proxy_host_by_identifier.rb +8 -4
- data/lib/objects/exception/cant_find_proxy_host_by_namespace.rb +8 -4
- data/lib/objects/exception/could_not_initiate_ssh_connection.rb +8 -4
- data/lib/objects/exception/could_not_initiate_ssh_connection_through_backend_proxy.rb +8 -4
- data/lib/objects/exception/could_not_retrieve_terraform_output.rb +11 -0
- data/lib/objects/exception/deprecation_warning.rb +9 -7
- data/lib/objects/exception/duplicate_command_line_argument_key.rb +8 -4
- data/lib/objects/exception/ec2_driver_missing_authorization_keys.rb +11 -0
- data/lib/objects/exception/ec2_driver_missing_provisioning_region.rb +8 -4
- data/lib/objects/exception/empty_namespace_tree.rb +11 -0
- data/lib/objects/exception/failed_to_run_local_command.rb +8 -4
- data/lib/objects/exception/gcp_auth_service_account_missing_credentials.rb +11 -0
- data/lib/objects/exception/generic.rb +11 -0
- data/lib/objects/exception/interactive_session_halt.rb +6 -2
- data/lib/objects/exception/invalid_bcome_breadcrumb.rb +8 -4
- data/lib/objects/exception/invalid_breadcrumb.rb +8 -4
- data/lib/objects/exception/invalid_context_command.rb +8 -4
- data/lib/objects/exception/invalid_gcp_authentication_scheme.rb +11 -0
- data/lib/objects/exception/invalid_identifier.rb +8 -4
- data/lib/objects/exception/invalid_machines_cache_config.rb +8 -4
- data/lib/objects/exception/invalid_matcher_query.rb +8 -4
- data/lib/objects/exception/invalid_meta_data_config.rb +8 -4
- data/lib/objects/exception/invalid_metadata_encryption_key.rb +8 -4
- data/lib/objects/exception/invalid_network_config.rb +8 -4
- data/lib/objects/exception/invalid_network_driver_type.rb +8 -4
- data/lib/objects/exception/invalid_port_forward_request.rb +11 -0
- data/lib/objects/exception/invalid_proxy_config.rb +8 -4
- data/lib/objects/exception/invalid_regexp_matcher_in_registry.rb +8 -4
- data/lib/objects/exception/invalid_registry_arguments_type.rb +8 -4
- data/lib/objects/exception/invalid_registry_command_name_length.rb +8 -4
- data/lib/objects/exception/invalid_registry_data_config.rb +8 -4
- data/lib/objects/exception/invalid_restriction_key_in_registry.rb +8 -4
- data/lib/objects/exception/invalid_ssh_config.rb +8 -4
- data/lib/objects/exception/inventories_cannot_have_subviews.rb +8 -4
- data/lib/objects/exception/malformed_command_line_arguments.rb +8 -4
- data/lib/objects/exception/method_invocation_requires_parameter.rb +8 -4
- data/lib/objects/exception/method_name_conflict_in_registry.rb +8 -4
- data/lib/objects/exception/missing_argument_for_registry_command.rb +8 -4
- data/lib/objects/exception/missing_description_on_view.rb +8 -4
- data/lib/objects/exception/missing_execute_on_registry_object.rb +8 -4
- data/lib/objects/exception/missing_gcp_authentication_scheme.rb +11 -0
- data/lib/objects/exception/missing_gcp_service_account_credentials_filename.rb +11 -0
- data/lib/objects/exception/missing_gcp_service_scopes.rb +11 -0
- data/lib/objects/exception/missing_identifier_on_view.rb +8 -4
- data/lib/objects/exception/missing_inventory_contributors.rb +11 -0
- data/lib/objects/exception/missing_ip_address_on_server.rb +8 -4
- data/lib/objects/exception/missing_network_config.rb +8 -4
- data/lib/objects/exception/missing_or_invalid_client_secrets.rb +11 -0
- data/lib/objects/exception/missing_params_for_rsync.rb +8 -4
- data/lib/objects/exception/missing_params_for_scp.rb +8 -4
- data/lib/objects/exception/missing_subselection_key.rb +8 -4
- data/lib/objects/exception/missing_type_on_view.rb +8 -4
- data/lib/objects/exception/no_node_found_for_breadcrumb.rb +8 -4
- data/lib/objects/exception/no_node_named_by_identifier.rb +8 -4
- data/lib/objects/exception/node_identifiers_must_be_unique.rb +8 -4
- data/lib/objects/exception/orchestration_script_does_not_exist.rb +8 -4
- data/lib/objects/exception/proxy_host_node_does_not_have_public_ip_address.rb +8 -4
- data/lib/objects/exception/unknown_dynamic_server_type.rb +11 -0
- data/lib/objects/exception/unknown_method_for_namespace.rb +8 -4
- data/lib/objects/exception/user_orchestration_error.rb +11 -0
- data/lib/objects/initialization/factory.rb +36 -0
- data/lib/objects/initialization/structure.rb +18 -0
- data/lib/objects/initialization/utils.rb +20 -0
- data/lib/objects/interactive/session.rb +4 -1
- data/lib/objects/interactive/session_item/base.rb +2 -0
- data/lib/objects/interactive/session_item/capture_input.rb +2 -0
- data/lib/objects/interactive/session_item/transparent_ssh.rb +29 -23
- data/lib/objects/loading_bar/handler.rb +80 -0
- data/lib/objects/loading_bar/indicator/base.rb +65 -0
- data/lib/objects/loading_bar/indicator/basic.rb +34 -0
- data/lib/objects/loading_bar/indicator/progress.rb +26 -0
- data/lib/objects/loading_bar/pid_bucket.rb +27 -0
- data/lib/objects/modules/context.rb +13 -9
- data/lib/objects/modules/draw.rb +49 -0
- data/lib/objects/modules/registry_management.rb +16 -10
- data/lib/objects/modules/tree.rb +157 -0
- data/lib/objects/modules/ui_output.rb +10 -6
- data/lib/objects/modules/workspace_commands.rb +131 -157
- data/lib/objects/modules/workspace_menu.rb +193 -129
- data/lib/objects/node/attributes.rb +17 -19
- data/lib/objects/node/base.rb +136 -74
- data/lib/objects/node/cache_handler.rb +3 -1
- data/lib/objects/node/collection.rb +10 -9
- data/lib/objects/node/factory.rb +47 -36
- data/lib/objects/node/inventory/base.rb +106 -100
- data/lib/objects/node/inventory/defined.rb +113 -89
- data/lib/objects/node/inventory/merge.rb +51 -0
- data/lib/objects/node/inventory/subselect.rb +66 -46
- data/lib/objects/node/kube/base.rb +51 -0
- data/lib/objects/node/kube/container.rb +9 -0
- data/lib/objects/node/kube/estate.rb +19 -0
- data/lib/objects/node/kube/namespace.rb +24 -0
- data/lib/objects/node/kube/pod.rb +24 -0
- data/lib/objects/node/kube_wrap.rb +26 -0
- data/lib/objects/node/meta/base.rb +8 -1
- data/lib/objects/node/meta/cloud.rb +2 -0
- data/lib/objects/node/meta/local.rb +2 -0
- data/lib/objects/node/meta_data_factory.rb +4 -2
- data/lib/objects/node/meta_data_loader.rb +28 -29
- data/lib/objects/node/resources/base.rb +5 -1
- data/lib/objects/node/resources/inventory.rb +26 -5
- data/lib/objects/node/resources/merged.rb +47 -0
- data/lib/objects/node/resources/sub_inventory.rb +12 -8
- data/lib/objects/node/server/base.rb +105 -70
- data/lib/objects/node/server/dynamic/base.rb +23 -0
- data/lib/objects/node/server/{dynamic.rb → dynamic/ec2.rb} +13 -13
- data/lib/objects/node/server/dynamic/gcp.rb +46 -0
- data/lib/objects/node/server/static.rb +34 -10
- data/lib/objects/orchestration/base.rb +17 -1
- data/lib/objects/orchestration/interactive_terraform.rb +59 -30
- data/lib/objects/orchestrator.rb +22 -0
- data/lib/objects/parser/bread_crumb.rb +3 -1
- data/lib/objects/registry/arguments/base.rb +3 -1
- data/lib/objects/registry/arguments/command_line.rb +6 -1
- data/lib/objects/registry/arguments/console.rb +4 -1
- data/lib/objects/registry/command/base.rb +3 -0
- data/lib/objects/registry/command/external.rb +9 -3
- data/lib/objects/registry/command/group.rb +11 -4
- data/lib/objects/registry/command/internal.rb +3 -1
- data/lib/objects/registry/command/shortcut.rb +17 -9
- data/lib/objects/registry/command_list.rb +2 -0
- data/lib/objects/registry/loader.rb +13 -10
- data/lib/objects/ssh/bootstrap.rb +3 -1
- data/lib/objects/ssh/command.rb +9 -8
- data/lib/objects/ssh/command_exec.rb +16 -10
- data/lib/objects/ssh/connection_wrangler.rb +124 -0
- data/lib/objects/ssh/connector.rb +108 -0
- data/lib/objects/ssh/driver.rb +28 -242
- data/lib/objects/ssh/driver_concerns/command_strings.rb +17 -0
- data/lib/objects/ssh/driver_concerns/connection.rb +75 -0
- data/lib/objects/ssh/driver_concerns/functions.rb +89 -0
- data/lib/objects/ssh/driver_concerns/user.rb +32 -0
- data/lib/objects/ssh/proxy_chain.rb +19 -0
- data/lib/objects/ssh/proxy_chain_link.rb +26 -0
- data/lib/objects/ssh/proxy_hop.rb +130 -0
- data/lib/objects/ssh/script_exec.rb +12 -11
- data/lib/objects/ssh/tunnel/local_port_forward.rb +5 -6
- data/lib/objects/ssh/tunnel_keeper.rb +21 -0
- data/lib/objects/ssh/window.rb +31 -0
- data/lib/objects/startup.rb +58 -0
- data/lib/objects/system/local.rb +3 -0
- data/lib/objects/terraform/output.rb +45 -0
- data/lib/objects/workspace.rb +13 -14
- data/patches/irb.rb +63 -6
- data/patches/string-encrypt.rb +20 -23
- data/patches/string.rb +18 -1
- data/patches/string_stylesheet.rb +2 -0
- metadata +157 -33
- data/lib/objects/driver/static.rb +0 -4
- data/lib/objects/progress_bar.rb +0 -30
- data/lib/objects/ssh/connection_handler.rb +0 -101
- data/lib/objects/ssh/proxy_data.rb +0 -56
- data/lib/objects/terraform/parser.rb +0 -23
- data/lib/objects/terraform/state.rb +0 -40
data/lib/objects/workspace.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
class ::Bcome::Workspace
|
2
4
|
include ::Singleton
|
3
5
|
|
@@ -20,11 +22,20 @@ 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
|
-
|
25
|
+
|
26
|
+
show_welcome if params[:show_welcome]
|
27
|
+
|
24
28
|
spawn_into_console_for_context
|
25
29
|
nil
|
26
30
|
end
|
27
31
|
|
32
|
+
def show_welcome
|
33
|
+
puts "\n\n"
|
34
|
+
puts "Welcome to bcome v#{::Bcome::Version.release}".bc_yellow
|
35
|
+
puts "\nType\s" + 'menu'.underline + "\sfor a command list, or\s" + 'registry'.underline + "\sfor your custom tasks."
|
36
|
+
puts "\n\n"
|
37
|
+
end
|
38
|
+
|
28
39
|
def console_set!
|
29
40
|
@console_set = true
|
30
41
|
end
|
@@ -38,9 +49,7 @@ class ::Bcome::Workspace
|
|
38
49
|
end
|
39
50
|
|
40
51
|
def spawn_into_console_for_context
|
41
|
-
|
42
|
-
IRB.parse_opts_with_ignoring_script
|
43
|
-
IRB.irb nil, @context
|
52
|
+
::IRB.start_session(self, @context)
|
44
53
|
end
|
45
54
|
|
46
55
|
def has_context?
|
@@ -62,14 +71,4 @@ class ::Bcome::Workspace
|
|
62
71
|
IRB.conf[:MAIN_CONTEXT] = IRB::Irb.new.context
|
63
72
|
console_set!
|
64
73
|
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
74
|
end
|
data/patches/irb.rb
CHANGED
@@ -1,25 +1,82 @@
|
|
1
|
-
|
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(*
|
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
|
41
|
+
end
|
42
|
+
|
43
|
+
module ExtendCommandBundle
|
44
|
+
class << self
|
45
|
+
# Allow us to redefine 'quit' by preventing it getting aliased in the first place.
|
46
|
+
def overriden_extend_object(*params)
|
47
|
+
# Remove 'quit', as we want to write our own
|
48
|
+
@ALIASES.delete([:quit, :irb_exit, 1])
|
49
|
+
|
50
|
+
original_extend_object(*params)
|
51
|
+
end
|
52
|
+
alias original_extend_object extend_object
|
53
|
+
alias extend_object overriden_extend_object
|
54
|
+
end
|
55
|
+
|
56
|
+
def quit(*_params)
|
57
|
+
::Bcome::Bootup.instance.close_ssh_connections
|
58
|
+
::Bcome::Ssh::TunnelKeeper.instance.close_tunnels
|
59
|
+
::Bcome::LoadingBar::PidBucket.instance.stop_all
|
60
|
+
exit!
|
61
|
+
end
|
62
|
+
|
63
|
+
def back
|
64
|
+
# Allow navigation back up a namespace tree, or 'exit' if at the highest level, or at the point of entry
|
65
|
+
irb_exit(0)
|
66
|
+
end
|
17
67
|
end
|
18
68
|
|
19
69
|
class Context
|
20
|
-
def overriden_evaluate(
|
21
|
-
|
22
|
-
|
70
|
+
def overriden_evaluate(*_params)
|
71
|
+
if _params.last.is_a?(Hash)
|
72
|
+
# Ruby 2.7.0 compatibility: "Using the last argument as keyword parameters is deprecated" ; hence splat the last argument
|
73
|
+
last = _params.pop
|
74
|
+
without_last = _params - [last]
|
75
|
+
evaluate_without_overriden(*without_last, **last)
|
76
|
+
else
|
77
|
+
# previous rubies...
|
78
|
+
evaluate_without_overriden(*_params)
|
79
|
+
end
|
23
80
|
rescue ::Bcome::Exception::Base => e
|
24
81
|
puts e.pretty_display
|
25
82
|
end
|
data/patches/string-encrypt.rb
CHANGED
@@ -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
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
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
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
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
|
data/patches/string.rb
CHANGED
@@ -1,6 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'rainbow'
|
4
|
+
require 'fileutils'
|
5
|
+
|
1
6
|
class String
|
2
7
|
include StringColourStylesheet
|
3
8
|
|
9
|
+
def ansi?
|
10
|
+
Strings::ANSI.ansi?(self)
|
11
|
+
end
|
12
|
+
|
13
|
+
def sanitize
|
14
|
+
ansi? ? Strings::ANSI.sanitize(self) : self
|
15
|
+
end
|
16
|
+
|
17
|
+
def is_file_or_directory?
|
18
|
+
File.directory?(self) || File.exist?(self)
|
19
|
+
end
|
20
|
+
|
4
21
|
# with thanks to http://simianuprising.com/wp-content/uploads/2012/08/solarized-reference-horizontal.png
|
5
22
|
def colour_codes
|
6
23
|
{
|
@@ -13,7 +30,7 @@ class String
|
|
13
30
|
bc_cyan: '#2aa198',
|
14
31
|
bc_green: '#859900',
|
15
32
|
bc_white: '#ffffff',
|
16
|
-
bc_grey: '#
|
33
|
+
bc_grey: '#808080'
|
17
34
|
}
|
18
35
|
end
|
19
36
|
|
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:
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
8
|
-
autorequire:
|
7
|
+
- Webzakimbo
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-12-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 5.2.4.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:
|
26
|
+
version: 5.2.4.3
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: diffy
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.
|
33
|
+
version: 3.1.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: 1.
|
40
|
+
version: 3.1.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: fog-aws
|
43
43
|
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
|
@@ -100,6 +128,20 @@ dependencies:
|
|
100
128
|
- - '='
|
101
129
|
- !ruby/object:Gem::Version
|
102
130
|
version: 1.1.1
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: pry
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - '='
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: 0.12.2
|
138
|
+
type: :runtime
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - '='
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: 0.12.2
|
103
145
|
- !ruby/object:Gem::Dependency
|
104
146
|
name: rainbow
|
105
147
|
requirement: !ruby/object:Gem::Requirement
|
@@ -129,22 +171,39 @@ dependencies:
|
|
129
171
|
- !ruby/object:Gem::Version
|
130
172
|
version: 1.3.3
|
131
173
|
- !ruby/object:Gem::Dependency
|
132
|
-
name:
|
174
|
+
name: strings-ansi
|
133
175
|
requirement: !ruby/object:Gem::Requirement
|
134
176
|
requirements:
|
135
|
-
- -
|
177
|
+
- - '='
|
136
178
|
- !ruby/object:Gem::Version
|
137
|
-
version:
|
179
|
+
version: 0.2.0
|
138
180
|
type: :runtime
|
139
181
|
prerelease: false
|
140
182
|
version_requirements: !ruby/object:Gem::Requirement
|
141
183
|
requirements:
|
142
|
-
- -
|
184
|
+
- - '='
|
143
185
|
- !ruby/object:Gem::Version
|
144
|
-
version:
|
145
|
-
|
186
|
+
version: 0.2.0
|
187
|
+
- !ruby/object:Gem::Dependency
|
188
|
+
name: tty-cursor
|
189
|
+
requirement: !ruby/object:Gem::Requirement
|
190
|
+
requirements:
|
191
|
+
- - '='
|
192
|
+
- !ruby/object:Gem::Version
|
193
|
+
version: 0.2.0
|
194
|
+
type: :runtime
|
195
|
+
prerelease: false
|
196
|
+
version_requirements: !ruby/object:Gem::Requirement
|
197
|
+
requirements:
|
198
|
+
- - '='
|
199
|
+
- !ruby/object:Gem::Version
|
200
|
+
version: 0.2.0
|
201
|
+
description: Generate custom management interfaces from simple configuration and Ruby
|
202
|
+
code. On-premise, cloud, hybrid & multi-cloud. Amazon AWS (EC2) & Google Cloud (GCP)
|
203
|
+
integration with more cloud providers coming. Fully extensible. Free for commercial
|
204
|
+
and non-commercial use.
|
146
205
|
email:
|
147
|
-
-
|
206
|
+
- info@webzakimbo.com
|
148
207
|
executables:
|
149
208
|
- bcome
|
150
209
|
extensions: []
|
@@ -159,12 +218,22 @@ files:
|
|
159
218
|
- lib/objects/driver/base.rb
|
160
219
|
- lib/objects/driver/bucket.rb
|
161
220
|
- lib/objects/driver/ec2.rb
|
162
|
-
- lib/objects/driver/
|
221
|
+
- lib/objects/driver/gcp.rb
|
222
|
+
- lib/objects/driver/gcp/authentication/api_key.rb
|
223
|
+
- lib/objects/driver/gcp/authentication/base.rb
|
224
|
+
- lib/objects/driver/gcp/authentication/oauth.rb
|
225
|
+
- lib/objects/driver/gcp/authentication/oauth_client_config.rb
|
226
|
+
- lib/objects/driver/gcp/authentication/oauth_session_store.rb
|
227
|
+
- lib/objects/driver/gcp/authentication/service_account.rb
|
228
|
+
- lib/objects/driver/gcp/authentication/signet/service_account.rb
|
229
|
+
- lib/objects/driver/gcp/authentication/utilities.rb
|
163
230
|
- lib/objects/encryptor.rb
|
164
231
|
- lib/objects/exception/argument_error_invoking_method_from_command_line.rb
|
165
232
|
- lib/objects/exception/base.rb
|
166
233
|
- lib/objects/exception/can_only_subselect_on_inventory.rb
|
234
|
+
- lib/objects/exception/cannot_authenticate_to_gcp.rb
|
167
235
|
- lib/objects/exception/cannot_find_internal_registry_klass.rb
|
236
|
+
- lib/objects/exception/cannot_find_inventory.rb
|
168
237
|
- lib/objects/exception/cannot_find_subselection_parent.rb
|
169
238
|
- lib/objects/exception/cant_find_key_in_cloud_tags.rb
|
170
239
|
- lib/objects/exception/cant_find_key_in_metadata.rb
|
@@ -172,14 +241,20 @@ files:
|
|
172
241
|
- lib/objects/exception/cant_find_proxy_host_by_namespace.rb
|
173
242
|
- lib/objects/exception/could_not_initiate_ssh_connection.rb
|
174
243
|
- lib/objects/exception/could_not_initiate_ssh_connection_through_backend_proxy.rb
|
244
|
+
- lib/objects/exception/could_not_retrieve_terraform_output.rb
|
175
245
|
- lib/objects/exception/deprecation_warning.rb
|
176
246
|
- lib/objects/exception/duplicate_command_line_argument_key.rb
|
247
|
+
- lib/objects/exception/ec2_driver_missing_authorization_keys.rb
|
177
248
|
- lib/objects/exception/ec2_driver_missing_provisioning_region.rb
|
249
|
+
- lib/objects/exception/empty_namespace_tree.rb
|
178
250
|
- lib/objects/exception/failed_to_run_local_command.rb
|
251
|
+
- lib/objects/exception/gcp_auth_service_account_missing_credentials.rb
|
252
|
+
- lib/objects/exception/generic.rb
|
179
253
|
- lib/objects/exception/interactive_session_halt.rb
|
180
254
|
- lib/objects/exception/invalid_bcome_breadcrumb.rb
|
181
255
|
- lib/objects/exception/invalid_breadcrumb.rb
|
182
256
|
- lib/objects/exception/invalid_context_command.rb
|
257
|
+
- lib/objects/exception/invalid_gcp_authentication_scheme.rb
|
183
258
|
- lib/objects/exception/invalid_identifier.rb
|
184
259
|
- lib/objects/exception/invalid_machines_cache_config.rb
|
185
260
|
- lib/objects/exception/invalid_matcher_query.rb
|
@@ -187,6 +262,7 @@ files:
|
|
187
262
|
- lib/objects/exception/invalid_metadata_encryption_key.rb
|
188
263
|
- lib/objects/exception/invalid_network_config.rb
|
189
264
|
- lib/objects/exception/invalid_network_driver_type.rb
|
265
|
+
- lib/objects/exception/invalid_port_forward_request.rb
|
190
266
|
- lib/objects/exception/invalid_proxy_config.rb
|
191
267
|
- lib/objects/exception/invalid_regexp_matcher_in_registry.rb
|
192
268
|
- lib/objects/exception/invalid_registry_arguments_type.rb
|
@@ -201,9 +277,14 @@ files:
|
|
201
277
|
- lib/objects/exception/missing_argument_for_registry_command.rb
|
202
278
|
- lib/objects/exception/missing_description_on_view.rb
|
203
279
|
- lib/objects/exception/missing_execute_on_registry_object.rb
|
280
|
+
- lib/objects/exception/missing_gcp_authentication_scheme.rb
|
281
|
+
- lib/objects/exception/missing_gcp_service_account_credentials_filename.rb
|
282
|
+
- lib/objects/exception/missing_gcp_service_scopes.rb
|
204
283
|
- lib/objects/exception/missing_identifier_on_view.rb
|
284
|
+
- lib/objects/exception/missing_inventory_contributors.rb
|
205
285
|
- lib/objects/exception/missing_ip_address_on_server.rb
|
206
286
|
- lib/objects/exception/missing_network_config.rb
|
287
|
+
- lib/objects/exception/missing_or_invalid_client_secrets.rb
|
207
288
|
- lib/objects/exception/missing_params_for_rsync.rb
|
208
289
|
- lib/objects/exception/missing_params_for_scp.rb
|
209
290
|
- lib/objects/exception/missing_subselection_key.rb
|
@@ -213,13 +294,25 @@ files:
|
|
213
294
|
- lib/objects/exception/node_identifiers_must_be_unique.rb
|
214
295
|
- lib/objects/exception/orchestration_script_does_not_exist.rb
|
215
296
|
- lib/objects/exception/proxy_host_node_does_not_have_public_ip_address.rb
|
297
|
+
- lib/objects/exception/unknown_dynamic_server_type.rb
|
216
298
|
- lib/objects/exception/unknown_method_for_namespace.rb
|
299
|
+
- lib/objects/exception/user_orchestration_error.rb
|
300
|
+
- lib/objects/initialization/factory.rb
|
301
|
+
- lib/objects/initialization/structure.rb
|
302
|
+
- lib/objects/initialization/utils.rb
|
217
303
|
- lib/objects/interactive/session.rb
|
218
304
|
- lib/objects/interactive/session_item/base.rb
|
219
305
|
- lib/objects/interactive/session_item/capture_input.rb
|
220
306
|
- lib/objects/interactive/session_item/transparent_ssh.rb
|
307
|
+
- lib/objects/loading_bar/handler.rb
|
308
|
+
- lib/objects/loading_bar/indicator/base.rb
|
309
|
+
- lib/objects/loading_bar/indicator/basic.rb
|
310
|
+
- lib/objects/loading_bar/indicator/progress.rb
|
311
|
+
- lib/objects/loading_bar/pid_bucket.rb
|
221
312
|
- lib/objects/modules/context.rb
|
313
|
+
- lib/objects/modules/draw.rb
|
222
314
|
- lib/objects/modules/registry_management.rb
|
315
|
+
- lib/objects/modules/tree.rb
|
223
316
|
- lib/objects/modules/ui_output.rb
|
224
317
|
- lib/objects/modules/workspace_commands.rb
|
225
318
|
- lib/objects/modules/workspace_menu.rb
|
@@ -230,7 +323,14 @@ files:
|
|
230
323
|
- lib/objects/node/factory.rb
|
231
324
|
- lib/objects/node/inventory/base.rb
|
232
325
|
- lib/objects/node/inventory/defined.rb
|
326
|
+
- lib/objects/node/inventory/merge.rb
|
233
327
|
- lib/objects/node/inventory/subselect.rb
|
328
|
+
- lib/objects/node/kube/base.rb
|
329
|
+
- lib/objects/node/kube/container.rb
|
330
|
+
- lib/objects/node/kube/estate.rb
|
331
|
+
- lib/objects/node/kube/namespace.rb
|
332
|
+
- lib/objects/node/kube/pod.rb
|
333
|
+
- lib/objects/node/kube_wrap.rb
|
234
334
|
- lib/objects/node/meta/base.rb
|
235
335
|
- lib/objects/node/meta/cloud.rb
|
236
336
|
- lib/objects/node/meta/local.rb
|
@@ -238,15 +338,17 @@ files:
|
|
238
338
|
- lib/objects/node/meta_data_loader.rb
|
239
339
|
- lib/objects/node/resources/base.rb
|
240
340
|
- lib/objects/node/resources/inventory.rb
|
341
|
+
- lib/objects/node/resources/merged.rb
|
241
342
|
- lib/objects/node/resources/sub_inventory.rb
|
242
343
|
- lib/objects/node/server/base.rb
|
243
|
-
- lib/objects/node/server/dynamic.rb
|
344
|
+
- lib/objects/node/server/dynamic/base.rb
|
345
|
+
- lib/objects/node/server/dynamic/ec2.rb
|
346
|
+
- lib/objects/node/server/dynamic/gcp.rb
|
244
347
|
- lib/objects/node/server/static.rb
|
245
348
|
- lib/objects/orchestration/base.rb
|
246
349
|
- lib/objects/orchestration/interactive_terraform.rb
|
247
350
|
- lib/objects/orchestrator.rb
|
248
351
|
- lib/objects/parser/bread_crumb.rb
|
249
|
-
- lib/objects/progress_bar.rb
|
250
352
|
- lib/objects/registry/arguments/base.rb
|
251
353
|
- lib/objects/registry/arguments/command_line.rb
|
252
354
|
- lib/objects/registry/arguments/console.rb
|
@@ -260,24 +362,47 @@ files:
|
|
260
362
|
- lib/objects/ssh/bootstrap.rb
|
261
363
|
- lib/objects/ssh/command.rb
|
262
364
|
- lib/objects/ssh/command_exec.rb
|
263
|
-
- lib/objects/ssh/
|
365
|
+
- lib/objects/ssh/connection_wrangler.rb
|
366
|
+
- lib/objects/ssh/connector.rb
|
264
367
|
- lib/objects/ssh/driver.rb
|
265
|
-
- lib/objects/ssh/
|
368
|
+
- lib/objects/ssh/driver_concerns/command_strings.rb
|
369
|
+
- lib/objects/ssh/driver_concerns/connection.rb
|
370
|
+
- lib/objects/ssh/driver_concerns/functions.rb
|
371
|
+
- lib/objects/ssh/driver_concerns/user.rb
|
372
|
+
- lib/objects/ssh/proxy_chain.rb
|
373
|
+
- lib/objects/ssh/proxy_chain_link.rb
|
374
|
+
- lib/objects/ssh/proxy_hop.rb
|
266
375
|
- lib/objects/ssh/script_exec.rb
|
267
376
|
- lib/objects/ssh/tunnel/local_port_forward.rb
|
377
|
+
- lib/objects/ssh/tunnel_keeper.rb
|
378
|
+
- lib/objects/ssh/window.rb
|
379
|
+
- lib/objects/startup.rb
|
268
380
|
- lib/objects/system/local.rb
|
269
|
-
- lib/objects/terraform/
|
270
|
-
- lib/objects/terraform/state.rb
|
381
|
+
- lib/objects/terraform/output.rb
|
271
382
|
- lib/objects/workspace.rb
|
272
383
|
- patches/irb.rb
|
273
384
|
- patches/string-encrypt.rb
|
274
385
|
- patches/string.rb
|
275
386
|
- patches/string_stylesheet.rb
|
276
|
-
homepage: https://bcome
|
387
|
+
homepage: https://bcome.com
|
277
388
|
licenses:
|
278
|
-
-
|
279
|
-
metadata:
|
280
|
-
|
389
|
+
- Nonstandard
|
390
|
+
metadata:
|
391
|
+
documentation_uri: https://docs.bcome.com/en/2.0.0
|
392
|
+
homepage_uri: https://bcome.com
|
393
|
+
source_code_uri: https://github.com/webzakimbo/bcome
|
394
|
+
post_install_message: |2+
|
395
|
+
|
396
|
+
Welcome to Bcome, the DevOps Control Panel Framework
|
397
|
+
|
398
|
+
2.0.0 introduces a wealth of new features (including GCP integration), and some breaking changes.
|
399
|
+
|
400
|
+
Visit our new documentation site here: https://docs.bcome.com/en/2.0.0
|
401
|
+
|
402
|
+
See implementation demos at our guides site: https://guides.bcome.com/en/2.0.0
|
403
|
+
|
404
|
+
For full release notes see: https://github.com/webzakimbo/bcome/releases/tag/2.0.0
|
405
|
+
|
281
406
|
rdoc_options: []
|
282
407
|
require_paths:
|
283
408
|
- lib
|
@@ -285,17 +410,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
285
410
|
requirements:
|
286
411
|
- - ">="
|
287
412
|
- !ruby/object:Gem::Version
|
288
|
-
version:
|
413
|
+
version: 2.5.0
|
289
414
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
290
415
|
requirements:
|
291
416
|
- - ">="
|
292
417
|
- !ruby/object:Gem::Version
|
293
418
|
version: '0'
|
294
419
|
requirements: []
|
295
|
-
|
296
|
-
|
297
|
-
signing_key:
|
420
|
+
rubygems_version: 3.0.8
|
421
|
+
signing_key:
|
298
422
|
specification_version: 4
|
299
|
-
summary:
|
300
|
-
Ruby.
|
423
|
+
summary: The DevOps Control Panel Framework
|
301
424
|
test_files: []
|
425
|
+
...
|