cfndk 0.1.0 → 0.1.1

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