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
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bcome::Driver::Gcp::Authentication
4
+ class ServiceAccount
5
+ def initialize(service, scopes, node, path_to_secrets); end
6
+ end
7
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Bcome::Driver
2
4
  class Static < Bcome::Driver::Base
3
5
  end
@@ -1,8 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Bcome
2
4
  class Encryptor
3
-
4
- UNENC_SIGNIFIER = "".freeze
5
- ENC_SIGNIFIER = "enc".freeze
5
+ UNENC_SIGNIFIER = ''
6
+ ENC_SIGNIFIER = 'enc'
6
7
 
7
8
  include Singleton
8
9
 
@@ -19,11 +20,12 @@ module Bcome
19
20
  else
20
21
  puts "\nNo unencrypted files to encrypt.\n".warning
21
22
  end
22
- return
23
+ nil
23
24
  end
24
25
 
25
26
  def prompt_for_key
26
- print "Please enter an encryption key (and if your data is already encrypted, you must provide the same key): ".informational
27
+ puts "\n"
28
+ print 'Please enter an encryption key (and if your data is already encrypted, you must provide the same key): '.informational
27
29
  @key = STDIN.noecho(&:gets).chomp
28
30
  puts "\n"
29
31
  end
@@ -46,25 +48,26 @@ module Bcome
46
48
 
47
49
  def unpack
48
50
  prompt_for_key
49
- toggle_packed_files(all_encrypted_filenames,:decrypt)
50
- return
51
+ toggle_packed_files(all_encrypted_filenames, :decrypt)
52
+ nil
51
53
  end
52
54
 
53
55
  def toggle_packed_files(filenames, packer_method)
54
- raise "Missing encryption key. Please set an encryption key" unless @key
56
+ raise 'Missing encryption key. Please set an encryption key' unless @key
57
+
55
58
  filenames.each do |filename|
56
59
  # Get raw
57
60
  raw_contents = File.read(filename)
58
-
61
+
59
62
  if packer_method == :decrypt
60
- filename =~ /#{path_to_metadata}\/(.+)\.enc/
61
- opposing_filename = $1
62
- action = "Unpacking"
63
+ filename =~ %r{#{path_to_metadata}/(.+)\.enc}
64
+ opposing_filename = Regexp.last_match(1)
65
+ action = 'Unpacking'
63
66
  else
64
- filename =~ /#{path_to_metadata}\/(.*)/
65
- opposing_filename = "#{$1}.enc"
66
- action = "Packing"
67
- end
67
+ filename =~ %r{#{path_to_metadata}/(.*)}
68
+ opposing_filename = "#{Regexp.last_match(1)}.enc"
69
+ action = 'Packing'
70
+ end
68
71
 
69
72
  # Write encrypted/decryption action
70
73
  enc_decrypt_result = raw_contents.send(packer_method, @key)
@@ -72,19 +75,19 @@ module Bcome
72
75
  write_file(opposing_filename, enc_decrypt_result)
73
76
  end
74
77
  puts "\ndone".informational
75
- end
76
-
78
+ end
79
+
77
80
  def path_to_metadata
78
- "bcome/metadata"
81
+ 'bcome/metadata'
79
82
  end
80
83
 
81
84
  def write_file(filename, contents)
82
85
  filepath = "#{path_to_metadata}/#{filename}"
83
- File.open("#{filepath}", 'w') { |f| f.write(contents) }
86
+ File.open(filepath.to_s, 'w') { |f| f.write(contents) }
84
87
  end
85
-
88
+
86
89
  def all_unencrypted_filenames
87
- Dir["#{metadata_path}/*"].reject {|f| f =~ /\.enc/}
90
+ Dir["#{metadata_path}/*"].reject { |f| f =~ /\.enc/ }
88
91
  end
89
92
 
90
93
  def all_encrypted_filenames
@@ -92,8 +95,7 @@ module Bcome
92
95
  end
93
96
 
94
97
  def metadata_path
95
- "bcome/metadata"
98
+ 'bcome/metadata'
96
99
  end
97
-
98
100
  end
99
101
  end
@@ -1,7 +1,11 @@
1
- module ::Bcome::Exception
2
- class ArgumentErrorInvokingMethodFromCommmandLine < ::Bcome::Exception::Base
3
- def message_prefix
4
- 'Argument error invoking method. Please refer to documentation for invoking this command from the command line: '
1
+ # frozen_string_literal: true
2
+
3
+ module Bcome
4
+ module Exception
5
+ class ArgumentErrorInvokingMethodFromCommmandLine < ::Bcome::Exception::Base
6
+ def message_prefix
7
+ 'Argument error invoking method. Please refer to documentation for invoking this command from the command line: '
8
+ end
5
9
  end
6
10
  end
7
11
  end
@@ -1,15 +1,19 @@
1
- module Bcome::Exception
2
- class Base < RuntimeError
3
- def initialize(message_suffix = nil)
4
- @message_suffix = message_suffix
5
- end
1
+ # frozen_string_literal: true
6
2
 
7
- def message
8
- "#{message_prefix}#{@message_suffix ? ": #{@message_suffix}" : ''}"
9
- end
3
+ module Bcome
4
+ module Exception
5
+ class Base < RuntimeError
6
+ def initialize(message_suffix = nil)
7
+ @message_suffix = message_suffix
8
+ end
9
+
10
+ def message
11
+ "#{message_prefix}#{@message_suffix ? + (!message_prefix.empty? ? ':' : '').to_s + " #{@message_suffix}" : ''}"
12
+ end
10
13
 
11
- def pretty_display
12
- puts "\n#{message}\n".error
14
+ def pretty_display
15
+ puts "\n\n#{message}\n".error
16
+ end
13
17
  end
14
18
  end
15
19
  end
@@ -1,7 +1,11 @@
1
- module ::Bcome::Exception
2
- class CanOnlySubselectOnInventory < ::Bcome::Exception::Base
3
- def message_prefix
4
- 'Invalid subselect - can only subselect on another inventory'
1
+ # frozen_string_literal: true
2
+
3
+ module Bcome
4
+ module Exception
5
+ class CanOnlySubselectOnInventory < ::Bcome::Exception::Base
6
+ def message_prefix
7
+ 'Invalid subselect - can only subselect on another inventory'
8
+ end
5
9
  end
6
10
  end
7
11
  end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bcome
4
+ module Exception
5
+ class CannotAuthenticateToGcp < ::Bcome::Exception::Base
6
+ def message_prefix
7
+ 'Could not authenticate with GCP'
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,7 +1,11 @@
1
- module ::Bcome::Exception
2
- class CannotFindInternalRegistryKlass < ::Bcome::Exception::Base
3
- def message_prefix
4
- 'Could not initialize orchestration method '
1
+ # frozen_string_literal: true
2
+
3
+ module Bcome
4
+ module Exception
5
+ class CannotFindInternalRegistryKlass < ::Bcome::Exception::Base
6
+ def message_prefix
7
+ 'Could not initialize orchestration method '
8
+ end
5
9
  end
6
10
  end
7
11
  end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bcome
4
+ module Exception
5
+ class CannotFindInventory < ::Bcome::Exception::Base
6
+ def message_prefix
7
+ 'Cannot find inventory'
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,7 +1,11 @@
1
- module ::Bcome::Exception
2
- class CannotFindSubselectionParent < ::Bcome::Exception::Base
3
- def message_prefix
4
- 'Cannot find subselection parent'
1
+ # frozen_string_literal: true
2
+
3
+ module Bcome
4
+ module Exception
5
+ class CannotFindSubselectionParent < ::Bcome::Exception::Base
6
+ def message_prefix
7
+ 'Cannot find subselection parent'
8
+ end
5
9
  end
6
10
  end
7
11
  end
@@ -1,7 +1,11 @@
1
- module ::Bcome::Exception
2
- class CantFindKeyInCloudTags < ::Bcome::Exception::Base
3
- def message_prefix
4
- 'Cannot find key in cloud tags '
1
+ # frozen_string_literal: true
2
+
3
+ module Bcome
4
+ module Exception
5
+ class CantFindKeyInCloudTags < ::Bcome::Exception::Base
6
+ def message_prefix
7
+ 'Cannot find key in cloud tags '
8
+ end
5
9
  end
6
10
  end
7
11
  end
@@ -1,7 +1,11 @@
1
- module ::Bcome::Exception
2
- class CantFindKeyInMetadata < ::Bcome::Exception::Base
3
- def message_prefix
4
- 'Cannot find key in bcome metadata '
1
+ # frozen_string_literal: true
2
+
3
+ module Bcome
4
+ module Exception
5
+ class CantFindKeyInMetadata < ::Bcome::Exception::Base
6
+ def message_prefix
7
+ 'Cannot find key in bcome metadata '
8
+ end
5
9
  end
6
10
  end
7
11
  end
@@ -1,7 +1,11 @@
1
- module ::Bcome::Exception
2
- class CantFindProxyHostByIdentifier < ::Bcome::Exception::Base
3
- def message_prefix
4
- 'Can\'t find proxy host by identifier'
1
+ # frozen_string_literal: true
2
+
3
+ module Bcome
4
+ module Exception
5
+ class CantFindProxyHostByIdentifier < ::Bcome::Exception::Base
6
+ def message_prefix
7
+ 'Can\'t find proxy host by identifier'
8
+ end
5
9
  end
6
10
  end
7
11
  end
@@ -1,7 +1,11 @@
1
- module ::Bcome::Exception
2
- class CantFindProxyHostByNamespace < ::Bcome::Exception::Base
3
- def message_prefix
4
- 'Can\'t find proxy host by namespace'
1
+ # frozen_string_literal: true
2
+
3
+ module Bcome
4
+ module Exception
5
+ class CantFindProxyHostByNamespace < ::Bcome::Exception::Base
6
+ def message_prefix
7
+ 'Can\'t find proxy host by namespace'
8
+ end
5
9
  end
6
10
  end
7
11
  end
@@ -1,7 +1,11 @@
1
- module ::Bcome::Exception
2
- class CouldNotInitiateSshConnection < ::Bcome::Exception::Base
3
- def message_prefix
4
- 'Could not initiate SSH connection. Check your SSH config settings for namespace'
1
+ # frozen_string_literal: true
2
+
3
+ module Bcome
4
+ module Exception
5
+ class CouldNotInitiateSshConnection < ::Bcome::Exception::Base
6
+ def message_prefix
7
+ 'Could not initiate SSH connection. Check your SSH config settings for namespace'
8
+ end
5
9
  end
6
10
  end
7
11
  end
@@ -1,7 +1,11 @@
1
- module ::Bcome::Exception
2
- class CouldNotInitiateSshConnectionThroughBackendProxy < ::Bcome::Exception::Base
3
- def message_prefix
4
- 'Could not initiate SSH connection. Check your SSH config settings for namespace'
1
+ # frozen_string_literal: true
2
+
3
+ module Bcome
4
+ module Exception
5
+ class CouldNotInitiateSshConnectionThroughBackendProxy < ::Bcome::Exception::Base
6
+ def message_prefix
7
+ 'Could not initiate SSH connection. Check your SSH config settings for namespace'
8
+ end
5
9
  end
6
10
  end
7
11
  end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bcome
4
+ module Exception
5
+ class CouldNotRetrieveTerraformOutput < ::Bcome::Exception::Base
6
+ def message_prefix
7
+ 'Could not retrieve terraform output'
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,11 +1,13 @@
1
- module Bcome::Exception
2
- class DeprecationWarning < ::Bcome::Exception::Base
1
+ # frozen_string_literal: true
3
2
 
4
- def message_prefix
5
- msg = "Your configuration relies on a deprecated version of Bcome, with which version #{::Bcome::VERSION} is not compatible.\n\n"
6
- msg += "Pin your bcome gem to version 0.7.0, or see our new documentation at https://github.com/webzakimbo/bcome-kontrol for changes"
7
- msg
3
+ module Bcome
4
+ module Exception
5
+ class DeprecationWarning < ::Bcome::Exception::Base
6
+ def message_prefix
7
+ msg = "Your configuration relies on a deprecated version of Bcome, with which version #{::Bcome::VERSION} is not compatible.\n\n"
8
+ msg += 'Pin your bcome gem to version 0.7.0, or see our new documentation at https://github.com/webzakimbo/bcome-kontrol for changes'
9
+ msg
10
+ end
8
11
  end
9
-
10
12
  end
11
13
  end
@@ -1,7 +1,11 @@
1
- module ::Bcome::Exception
2
- class DuplicateCommandLineArgumentKey < ::Bcome::Exception::Base
3
- def message_prefix
4
- 'Duplicate command line argument key'
1
+ # frozen_string_literal: true
2
+
3
+ module Bcome
4
+ module Exception
5
+ class DuplicateCommandLineArgumentKey < ::Bcome::Exception::Base
6
+ def message_prefix
7
+ 'Duplicate command line argument key'
8
+ end
5
9
  end
6
10
  end
7
11
  end
@@ -1,7 +1,11 @@
1
- module ::Bcome::Exception
2
- class Ec2DriverMissingProvisioningRegion < ::Bcome::Exception::Base
3
- def message_prefix
4
- 'Missing provisioning region for network data: '
1
+ # frozen_string_literal: true
2
+
3
+ module Bcome
4
+ module Exception
5
+ class Ec2DriverMissingProvisioningRegion < ::Bcome::Exception::Base
6
+ def message_prefix
7
+ 'Missing provisioning region for network data: '
8
+ end
5
9
  end
6
10
  end
7
11
  end
@@ -1,7 +1,11 @@
1
- module Bcome::Exception
2
- class FailedToRunLocalCommand < ::Bcome::Exception::Base
3
- def message_prefix
4
- 'Failed to run local command: '
1
+ # frozen_string_literal: true
2
+
3
+ module Bcome
4
+ module Exception
5
+ class FailedToRunLocalCommand < ::Bcome::Exception::Base
6
+ def message_prefix
7
+ 'Failed to run local command: '
8
+ end
5
9
  end
6
10
  end
7
11
  end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bcome
4
+ module Exception
5
+ class Generic < ::Bcome::Exception::Base
6
+ def message_prefix
7
+ ''
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,4 +1,8 @@
1
- module Bcome::Exception
2
- class InteractiveSessionHalt < RuntimeError
1
+ # frozen_string_literal: true
2
+
3
+ module Bcome
4
+ module Exception
5
+ class InteractiveSessionHalt < RuntimeError
6
+ end
3
7
  end
4
8
  end