cfndk 0.1.0 → 0.1.1

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 (41) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +23 -14
  3. data/.gitignore +0 -1
  4. data/.rspec_parallel +6 -0
  5. data/Gemfile +1 -0
  6. data/Gemfile.lock +811 -0
  7. data/README.md +122 -10
  8. data/cfndk.gemspec +1 -0
  9. data/lib/cfndk/change_set_command.rb +97 -0
  10. data/lib/cfndk/command.rb +15 -181
  11. data/lib/cfndk/config_file_loadable.rb +13 -0
  12. data/lib/cfndk/global_config.rb +15 -0
  13. data/lib/cfndk/key_pair.rb +7 -4
  14. data/lib/cfndk/key_pair_command.rb +53 -0
  15. data/lib/cfndk/key_pairs.rb +2 -1
  16. data/lib/cfndk/logger.rb +1 -1
  17. data/lib/cfndk/stack.rb +382 -103
  18. data/lib/cfndk/stack_command.rb +110 -0
  19. data/lib/cfndk/stacks.rb +40 -14
  20. data/lib/cfndk/subcommand_help_returnable.rb +16 -0
  21. data/lib/cfndk/version.rb +1 -1
  22. data/lib/cfndk.rb +6 -0
  23. data/skel/cfndk.yml +4 -0
  24. data/spec/cfndk_change_set_create_spec.rb +436 -0
  25. data/spec/cfndk_change_set_destroy_spec.rb +160 -0
  26. data/spec/cfndk_change_set_execute_spec.rb +179 -0
  27. data/spec/cfndk_change_set_report_spec.rb +107 -0
  28. data/spec/cfndk_change_set_spec.rb +37 -0
  29. data/spec/cfndk_create_spec.rb +56 -141
  30. data/spec/cfndk_destroy_spec.rb +4 -2
  31. data/spec/cfndk_keypiar_spec.rb +11 -9
  32. data/spec/cfndk_report_spec.rb +3 -1
  33. data/spec/cfndk_spec.rb +5 -3
  34. data/spec/cfndk_stack_create_spec.rb +454 -0
  35. data/spec/cfndk_stack_destroy_spec.rb +161 -0
  36. data/spec/cfndk_stack_report_spec.rb +181 -0
  37. data/spec/cfndk_stack_spec.rb +6 -1146
  38. data/spec/cfndk_stack_update_spec.rb +467 -0
  39. data/spec/spec_helper.rb +4 -1
  40. data/spec/support/aruba.rb +1 -0
  41. metadata +42 -2
@@ -0,0 +1,53 @@
1
+ module CFnDK
2
+ class KeyPairCommand < Thor
3
+ include SubcommandHelpReturnable
4
+ include ConfigFileLoadable
5
+ class_option :verbose, type: :boolean, aliases: 'v', desc: 'More verbose output.'
6
+ class_option :color, type: :boolean, default: true, desc: 'Use colored output'
7
+ class_option :config_path, type: :string, aliases: 'c', default: "#{Dir.getwd}/cfndk.yml", desc: 'The configuration file to use'
8
+ class_option :uuid, type: :string, aliases: 'u', default: ENV['CFNDK_UUID'] || nil, desc: 'Use UUID'
9
+ class_option :keypair_names, type: :array, desc: 'Target keypair names'
10
+
11
+ desc 'create', 'Create keypair'
12
+ option :properties, type: :hash, aliases: 'p', default: {}, desc: 'Set property'
13
+ def create
14
+ CFnDK.logger.info 'create...'.color(:green)
15
+ data = load_config_data(options)
16
+
17
+ credentials = CFnDK::CredentialProviderChain.new.resolve
18
+ keypairs = CFnDK::KeyPairs.new(data, options, credentials)
19
+ keypairs.create
20
+ return 0
21
+ rescue => e
22
+ CFnDK.logger.error "#{e.class}: #{e.message}".color(:red)
23
+ e.backtrace_locations.each do |line|
24
+ CFnDK.logger.debug line
25
+ end
26
+ return 1
27
+ end
28
+
29
+ desc 'destroy', 'Destroy keypair'
30
+ option :force, type: :boolean, aliases: 'f', default: false, desc: 'Say yes to all prompts for confirmation'
31
+ def destroy
32
+ CFnDK.logger.info 'destroy...'.color(:green)
33
+ data = load_config_data(options)
34
+
35
+ credentials = CFnDK::CredentialProviderChain.new.resolve
36
+ keypairs = CFnDK::KeyPairs.new(data, options, credentials)
37
+
38
+ if options[:force] || yes?('Are you sure you want to destroy? (y/n)', :yellow)
39
+ keypairs.destroy
40
+ return 0
41
+ else
42
+ CFnDK.logger.info 'destroy command was canceled'.color(:green)
43
+ return 2
44
+ end
45
+ rescue => e
46
+ CFnDK.logger.error "#{e.class}: #{e.message}".color(:red)
47
+ e.backtrace_locations.each do |line|
48
+ CFnDK.logger.debug line
49
+ end
50
+ return 1
51
+ end
52
+ end
53
+ end
@@ -3,6 +3,7 @@ module CFnDK
3
3
  def initialize(data, option, credentials)
4
4
  @option = option
5
5
  @credentials = credentials
6
+ @global_config = CFnDK::GlobalConfig.new(data, option)
6
7
  prepare_keypairs(data)
7
8
  end
8
9
 
@@ -26,7 +27,7 @@ module CFnDK
26
27
  @keypairs = {}
27
28
  return unless data['keypairs']
28
29
  data['keypairs'].each do |name, properties|
29
- @keypairs[name] = KeyPair.new(name, properties, @option, @credentials)
30
+ @keypairs[name] = KeyPair.new(name, properties, @option, @global_config, @credentials)
30
31
  end
31
32
  end
32
33
  end
data/lib/cfndk/logger.rb CHANGED
@@ -11,7 +11,7 @@ module CFnDK
11
11
  class CFnDKLogger < Logger
12
12
  def initialize(options)
13
13
  super(STDOUT)
14
- self.level = Logger::INFO unless options[:v]
14
+ self.level = Logger::INFO unless options[:verbose]
15
15
  self.formatter = proc { |severity, datetime, progname, message|
16
16
  message.to_s.split(/\n/).map do |line|
17
17
  "#{datetime} #{severity} #{line}\n"