rake_terraform 0.35.0 → 1.0.0.pre.pre.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.
- checksums.yaml +4 -4
 - data/Gemfile.lock +17 -16
 - data/lib/rake_terraform/task_sets/all.rb +77 -0
 - data/lib/rake_terraform/task_sets.rb +1 -0
 - data/lib/rake_terraform/tasks/destroy.rb +34 -71
 - data/lib/rake_terraform/tasks/output.rb +26 -57
 - data/lib/rake_terraform/tasks/plan.rb +28 -61
 - data/lib/rake_terraform/tasks/provision.rb +29 -64
 - data/lib/rake_terraform/tasks/validate.rb +26 -59
 - data/lib/rake_terraform/tasks.rb +0 -1
 - data/lib/rake_terraform/version.rb +1 -1
 - data/lib/rake_terraform.rb +2 -2
 - data/rake_terraform.gemspec +3 -2
 - metadata +26 -13
 - data/lib/rake_terraform/exceptions.rb +0 -4
 - data/lib/rake_terraform/tasklib.rb +0 -98
 - data/lib/rake_terraform/tasks/all.rb +0 -151
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: fd20b77a664a79fab0d81ba66cd46ebddaf2a09ea5cd01c72425b54438586281
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: f2f27f6c4314a992232c1897a3b85c2b1bbd0c7d1a550fbf1093a3a0e8bee3bf
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 6c39779c8e16c06cae0e4d8908672c1d2d29e8cd5b139e9709bb047e677458f8fca134ac8456eca4e71af63e7aa26ede63b56a72e3277a2758c3df810d77777b
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 5e293d0e96e7a47971ce548cdc30cbacfe52b550610c0c7718a4204042a730cb0094c4560cb5a275c6114becc5dda9fe831a4ee4778ff72ff3b831f98676d3e8
         
     | 
    
        data/Gemfile.lock
    CHANGED
    
    | 
         @@ -1,15 +1,16 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            PATH
         
     | 
| 
       2 
2 
     | 
    
         
             
              remote: .
         
     | 
| 
       3 
3 
     | 
    
         
             
              specs:
         
     | 
| 
       4 
     | 
    
         
            -
                rake_terraform (0. 
     | 
| 
      
 4 
     | 
    
         
            +
                rake_terraform (1.0.0.pre.pre.1)
         
     | 
| 
       5 
5 
     | 
    
         
             
                  colored2 (~> 3.1)
         
     | 
| 
       6 
     | 
    
         
            -
                  rake_dependencies ( 
     | 
| 
       7 
     | 
    
         
            -
                   
     | 
| 
      
 6 
     | 
    
         
            +
                  rake_dependencies (>= 1.8)
         
     | 
| 
      
 7 
     | 
    
         
            +
                  rake_factory (>= 0.15)
         
     | 
| 
      
 8 
     | 
    
         
            +
                  ruby-terraform (~> 0.48)
         
     | 
| 
       8 
9 
     | 
    
         | 
| 
       9 
10 
     | 
    
         
             
            GEM
         
     | 
| 
       10 
11 
     | 
    
         
             
              remote: https://rubygems.org/
         
     | 
| 
       11 
12 
     | 
    
         
             
              specs:
         
     | 
| 
       12 
     | 
    
         
            -
                activesupport (5.2. 
     | 
| 
      
 13 
     | 
    
         
            +
                activesupport (5.2.4.1)
         
     | 
| 
       13 
14 
     | 
    
         
             
                  concurrent-ruby (~> 1.0, >= 1.0.2)
         
     | 
| 
       14 
15 
     | 
    
         
             
                  i18n (>= 0.7, < 2)
         
     | 
| 
       15 
16 
     | 
    
         
             
                  minitest (~> 5.1)
         
     | 
| 
         @@ -18,44 +19,44 @@ GEM 
     | 
|
| 
       18 
19 
     | 
    
         
             
                concurrent-ruby (1.1.5)
         
     | 
| 
       19 
20 
     | 
    
         
             
                diff-lcs (1.3)
         
     | 
| 
       20 
21 
     | 
    
         
             
                fakefs (0.20.1)
         
     | 
| 
       21 
     | 
    
         
            -
                gem-release (2. 
     | 
| 
      
 22 
     | 
    
         
            +
                gem-release (2.1.1)
         
     | 
| 
       22 
23 
     | 
    
         
             
                hamster (3.0.0)
         
     | 
| 
       23 
24 
     | 
    
         
             
                  concurrent-ruby (~> 1.0)
         
     | 
| 
       24 
     | 
    
         
            -
                i18n (1. 
     | 
| 
      
 25 
     | 
    
         
            +
                i18n (1.8.2)
         
     | 
| 
       25 
26 
     | 
    
         
             
                  concurrent-ruby (~> 1.0)
         
     | 
| 
       26 
27 
     | 
    
         
             
                lino (1.1.0)
         
     | 
| 
       27 
28 
     | 
    
         
             
                  hamster (~> 3.0)
         
     | 
| 
       28 
29 
     | 
    
         
             
                  open4 (~> 1.3)
         
     | 
| 
       29 
30 
     | 
    
         
             
                minitar (0.9)
         
     | 
| 
       30 
     | 
    
         
            -
                minitest (5. 
     | 
| 
      
 31 
     | 
    
         
            +
                minitest (5.14.0)
         
     | 
| 
       31 
32 
     | 
    
         
             
                open4 (1.3.4)
         
     | 
| 
       32 
     | 
    
         
            -
                rake (13.0. 
     | 
| 
       33 
     | 
    
         
            -
                rake_dependencies (1. 
     | 
| 
      
 33 
     | 
    
         
            +
                rake (13.0.1)
         
     | 
| 
      
 34 
     | 
    
         
            +
                rake_dependencies (1.10.0)
         
     | 
| 
       34 
35 
     | 
    
         
             
                  hamster (~> 3.0)
         
     | 
| 
       35 
36 
     | 
    
         
             
                  minitar (~> 0.9)
         
     | 
| 
       36 
     | 
    
         
            -
                  rake_factory ( 
     | 
| 
      
 37 
     | 
    
         
            +
                  rake_factory (>= 0.11)
         
     | 
| 
       37 
38 
     | 
    
         
             
                  rubyzip (~> 2.0)
         
     | 
| 
       38 
     | 
    
         
            -
                rake_factory (0. 
     | 
| 
      
 39 
     | 
    
         
            +
                rake_factory (0.15.0)
         
     | 
| 
       39 
40 
     | 
    
         
             
                  activesupport (~> 5.2)
         
     | 
| 
       40 
41 
     | 
    
         
             
                  rake (~> 13.0)
         
     | 
| 
       41 
42 
     | 
    
         
             
                rspec (3.9.0)
         
     | 
| 
       42 
43 
     | 
    
         
             
                  rspec-core (~> 3.9.0)
         
     | 
| 
       43 
44 
     | 
    
         
             
                  rspec-expectations (~> 3.9.0)
         
     | 
| 
       44 
45 
     | 
    
         
             
                  rspec-mocks (~> 3.9.0)
         
     | 
| 
       45 
     | 
    
         
            -
                rspec-core (3.9. 
     | 
| 
       46 
     | 
    
         
            -
                  rspec-support (~> 3.9. 
     | 
| 
      
 46 
     | 
    
         
            +
                rspec-core (3.9.1)
         
     | 
| 
      
 47 
     | 
    
         
            +
                  rspec-support (~> 3.9.1)
         
     | 
| 
       47 
48 
     | 
    
         
             
                rspec-expectations (3.9.0)
         
     | 
| 
       48 
49 
     | 
    
         
             
                  diff-lcs (>= 1.2.0, < 2.0)
         
     | 
| 
       49 
50 
     | 
    
         
             
                  rspec-support (~> 3.9.0)
         
     | 
| 
       50 
     | 
    
         
            -
                rspec-mocks (3.9. 
     | 
| 
      
 51 
     | 
    
         
            +
                rspec-mocks (3.9.1)
         
     | 
| 
       51 
52 
     | 
    
         
             
                  diff-lcs (>= 1.2.0, < 2.0)
         
     | 
| 
       52 
53 
     | 
    
         
             
                  rspec-support (~> 3.9.0)
         
     | 
| 
       53 
     | 
    
         
            -
                rspec-support (3.9. 
     | 
| 
      
 54 
     | 
    
         
            +
                rspec-support (3.9.2)
         
     | 
| 
       54 
55 
     | 
    
         
             
                ruby-terraform (0.48.0)
         
     | 
| 
       55 
56 
     | 
    
         
             
                  lino (~> 1.1)
         
     | 
| 
       56 
57 
     | 
    
         
             
                rubyzip (2.0.0)
         
     | 
| 
       57 
58 
     | 
    
         
             
                thread_safe (0.3.6)
         
     | 
| 
       58 
     | 
    
         
            -
                tzinfo (1.2. 
     | 
| 
      
 59 
     | 
    
         
            +
                tzinfo (1.2.6)
         
     | 
| 
       59 
60 
     | 
    
         
             
                  thread_safe (~> 0.1)
         
     | 
| 
       60 
61 
     | 
    
         | 
| 
       61 
62 
     | 
    
         
             
            PLATFORMS
         
     | 
| 
         @@ -0,0 +1,77 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'rake_factory'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require_relative '../tasks'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            module RakeTerraform
         
     | 
| 
      
 6 
     | 
    
         
            +
              module TaskSets
         
     | 
| 
      
 7 
     | 
    
         
            +
                class All < RakeFactory::TaskSet
         
     | 
| 
      
 8 
     | 
    
         
            +
                  parameter :configuration_name, :required => true
         
     | 
| 
      
 9 
     | 
    
         
            +
                  parameter :source_directory, :required => true
         
     | 
| 
      
 10 
     | 
    
         
            +
                  parameter :work_directory, :required => true
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                  parameter :backend_config
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                  parameter :vars
         
     | 
| 
      
 15 
     | 
    
         
            +
                  parameter :var_file
         
     | 
| 
      
 16 
     | 
    
         
            +
                  parameter :state_file
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                  parameter :debug, :default => false
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                  parameter :no_color, :default => false
         
     | 
| 
      
 21 
     | 
    
         
            +
                  parameter :no_backup, :default => false
         
     | 
| 
      
 22 
     | 
    
         
            +
                  parameter :no_print_output, :default => false
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                  parameter :backup_file
         
     | 
| 
      
 25 
     | 
    
         
            +
                  parameter :plan_file
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                  parameter :argument_names
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                  parameter :ensure_task_name, :default => :'terraform:ensure'
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                  parameter :validate_task_name, :default => :validate
         
     | 
| 
      
 32 
     | 
    
         
            +
                  parameter :validate_argument_names
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                  parameter :plan_task_name, :default => :plan
         
     | 
| 
      
 35 
     | 
    
         
            +
                  parameter :plan_argument_names
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                  parameter :provision_task_name, :default => :provision
         
     | 
| 
      
 38 
     | 
    
         
            +
                  parameter :provision_argument_names
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                  parameter :destroy_task_name, :default => :destroy
         
     | 
| 
      
 41 
     | 
    
         
            +
                  parameter :destroy_argument_names
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                  parameter :output_task_name, :default => :output
         
     | 
| 
      
 44 
     | 
    
         
            +
                  parameter :output_argument_names
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                  task Tasks::Validate,
         
     | 
| 
      
 47 
     | 
    
         
            +
                      name: ->(ts) { ts.validate_task_name },
         
     | 
| 
      
 48 
     | 
    
         
            +
                      argument_names: ->(ts) {
         
     | 
| 
      
 49 
     | 
    
         
            +
                        ts.validate_argument_names || ts.argument_names || []
         
     | 
| 
      
 50 
     | 
    
         
            +
                      }
         
     | 
| 
      
 51 
     | 
    
         
            +
                  task Tasks::Plan, {
         
     | 
| 
      
 52 
     | 
    
         
            +
                      name: ->(ts) { ts.plan_task_name },
         
     | 
| 
      
 53 
     | 
    
         
            +
                      argument_names: ->(ts) {
         
     | 
| 
      
 54 
     | 
    
         
            +
                        ts.plan_argument_names || ts.argument_names || []
         
     | 
| 
      
 55 
     | 
    
         
            +
                      }
         
     | 
| 
      
 56 
     | 
    
         
            +
                  }
         
     | 
| 
      
 57 
     | 
    
         
            +
                  task Tasks::Provision, {
         
     | 
| 
      
 58 
     | 
    
         
            +
                      name: ->(ts) { ts.provision_task_name },
         
     | 
| 
      
 59 
     | 
    
         
            +
                      argument_names: ->(ts) {
         
     | 
| 
      
 60 
     | 
    
         
            +
                        ts.provision_argument_names || ts.argument_names || []
         
     | 
| 
      
 61 
     | 
    
         
            +
                      }
         
     | 
| 
      
 62 
     | 
    
         
            +
                  }
         
     | 
| 
      
 63 
     | 
    
         
            +
                  task Tasks::Destroy, {
         
     | 
| 
      
 64 
     | 
    
         
            +
                      name: ->(ts) { ts.destroy_task_name },
         
     | 
| 
      
 65 
     | 
    
         
            +
                      argument_names: ->(ts) {
         
     | 
| 
      
 66 
     | 
    
         
            +
                        ts.destroy_argument_names || ts.argument_names || []
         
     | 
| 
      
 67 
     | 
    
         
            +
                      }
         
     | 
| 
      
 68 
     | 
    
         
            +
                  }
         
     | 
| 
      
 69 
     | 
    
         
            +
                  task Tasks::Output, {
         
     | 
| 
      
 70 
     | 
    
         
            +
                      name: ->(ts) { ts.output_task_name },
         
     | 
| 
      
 71 
     | 
    
         
            +
                      argument_names: ->(ts) {
         
     | 
| 
      
 72 
     | 
    
         
            +
                        ts.output_argument_names || ts.argument_names || []
         
     | 
| 
      
 73 
     | 
    
         
            +
                      }
         
     | 
| 
      
 74 
     | 
    
         
            +
                  }
         
     | 
| 
      
 75 
     | 
    
         
            +
                end
         
     | 
| 
      
 76 
     | 
    
         
            +
              end
         
     | 
| 
      
 77 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require_relative 'task_sets/all'
         
     | 
| 
         @@ -1,14 +1,16 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'rake_factory'
         
     | 
| 
       1 
2 
     | 
    
         
             
            require 'ruby_terraform'
         
     | 
| 
       2 
3 
     | 
    
         
             
            require 'ostruct'
         
     | 
| 
       3 
4 
     | 
    
         
             
            require 'colored2'
         
     | 
| 
       4 
     | 
    
         
            -
            require_relative '../tasklib'
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            module RakeTerraform
         
     | 
| 
       7 
7 
     | 
    
         
             
              module Tasks
         
     | 
| 
       8 
     | 
    
         
            -
                class Destroy <  
     | 
| 
       9 
     | 
    
         
            -
                   
     | 
| 
       10 
     | 
    
         
            -
                   
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
      
 8 
     | 
    
         
            +
                class Destroy < RakeFactory::Task
         
     | 
| 
      
 9 
     | 
    
         
            +
                  default_name :destroy
         
     | 
| 
      
 10 
     | 
    
         
            +
                  default_prerequisites ->(t) { [t.ensure_task_name] }
         
     | 
| 
      
 11 
     | 
    
         
            +
                  default_description ->(t) {
         
     | 
| 
      
 12 
     | 
    
         
            +
                    "Destroy #{t.configuration_name} using terraform"
         
     | 
| 
      
 13 
     | 
    
         
            +
                  }
         
     | 
| 
       12 
14 
     | 
    
         
             
                  parameter :configuration_name, :required => true
         
     | 
| 
       13 
15 
     | 
    
         
             
                  parameter :source_directory, :required => true
         
     | 
| 
       14 
16 
     | 
    
         
             
                  parameter :work_directory, :required => true
         
     | 
| 
         @@ -25,72 +27,33 @@ module RakeTerraform 
     | 
|
| 
       25 
27 
     | 
    
         | 
| 
       26 
28 
     | 
    
         
             
                  parameter :backup_file
         
     | 
| 
       27 
29 
     | 
    
         | 
| 
       28 
     | 
    
         
            -
                  parameter : 
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
                   
     | 
| 
       31 
     | 
    
         
            -
                     
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
                     
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
                          backend_config: backend_config,
         
     | 
| 
       46 
     | 
    
         
            -
                           
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
                           
     | 
| 
       49 
     | 
    
         
            -
                          no_color: no_color,
         
     | 
| 
       50 
     | 
    
         
            -
                          no_backup: no_backup,
         
     | 
| 
       51 
     | 
    
         
            -
                           
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
                         source_directory.call(
         
     | 
| 
       56 
     | 
    
         
            -
                             *[args, params].slice(0, source_directory.arity)) :
         
     | 
| 
       57 
     | 
    
         
            -
                         source_directory
         
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
     | 
    
         
            -
                      configuration_directory = File.join(work_directory, derived_source_directory)
         
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
       61 
     | 
    
         
            -
                      RubyTerraform.clean(
         
     | 
| 
       62 
     | 
    
         
            -
                          directory: configuration_directory)
         
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
                      mkdir_p File.dirname(configuration_directory)
         
     | 
| 
       65 
     | 
    
         
            -
                      cp_r derived_source_directory, configuration_directory
         
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
       67 
     | 
    
         
            -
                      params.configuration_directory = configuration_directory
         
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
       69 
     | 
    
         
            -
                      derived_backend_config = backend_config.respond_to?(:call) ?
         
     | 
| 
       70 
     | 
    
         
            -
                          backend_config.call(
         
     | 
| 
       71 
     | 
    
         
            -
                              *[args, params].slice(0, backend_config.arity)) :
         
     | 
| 
       72 
     | 
    
         
            -
                          backend_config
         
     | 
| 
       73 
     | 
    
         
            -
                      derived_vars = vars.respond_to?(:call) ?
         
     | 
| 
       74 
     | 
    
         
            -
                          vars.call(*[args, params].slice(0, vars.arity)) :
         
     | 
| 
       75 
     | 
    
         
            -
                          vars
         
     | 
| 
       76 
     | 
    
         
            -
                      derived_state_file = state_file.respond_to?(:call) ?
         
     | 
| 
       77 
     | 
    
         
            -
                          state_file.call(
         
     | 
| 
       78 
     | 
    
         
            -
                              *[args, params].slice(0, state_file.arity)) :
         
     | 
| 
       79 
     | 
    
         
            -
                          state_file
         
     | 
| 
       80 
     | 
    
         
            -
             
     | 
| 
       81 
     | 
    
         
            -
                      Dir.chdir(configuration_directory) do
         
     | 
| 
       82 
     | 
    
         
            -
                        RubyTerraform.init(
         
     | 
| 
       83 
     | 
    
         
            -
                            backend_config: derived_backend_config,
         
     | 
| 
       84 
     | 
    
         
            -
                            no_color: no_color)
         
     | 
| 
       85 
     | 
    
         
            -
                        RubyTerraform.destroy(
         
     | 
| 
       86 
     | 
    
         
            -
                            force: true,
         
     | 
| 
       87 
     | 
    
         
            -
                            no_color: no_color,
         
     | 
| 
       88 
     | 
    
         
            -
                            no_backup: no_backup,
         
     | 
| 
       89 
     | 
    
         
            -
                            backup: backup_file,
         
     | 
| 
       90 
     | 
    
         
            -
                            state: derived_state_file,
         
     | 
| 
       91 
     | 
    
         
            -
                            vars: derived_vars,
         
     | 
| 
       92 
     | 
    
         
            -
                            var_file: var_file)
         
     | 
| 
       93 
     | 
    
         
            -
                      end
         
     | 
| 
      
 30 
     | 
    
         
            +
                  parameter :ensure_task_name, :default => :'terraform:ensure'
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                  action do |t|
         
     | 
| 
      
 33 
     | 
    
         
            +
                    Colored2.disable! if t.no_color
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                    configuration_directory =
         
     | 
| 
      
 36 
     | 
    
         
            +
                        File.join(t.work_directory, t.source_directory)
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                    puts "Destroying #{t.configuration_name}".cyan
         
     | 
| 
      
 39 
     | 
    
         
            +
                    RubyTerraform.clean(
         
     | 
| 
      
 40 
     | 
    
         
            +
                        directory: configuration_directory)
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                    mkdir_p File.dirname(configuration_directory)
         
     | 
| 
      
 43 
     | 
    
         
            +
                    cp_r t.source_directory, configuration_directory
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
                    Dir.chdir(configuration_directory) do
         
     | 
| 
      
 46 
     | 
    
         
            +
                      RubyTerraform.init(
         
     | 
| 
      
 47 
     | 
    
         
            +
                          backend_config: t.backend_config,
         
     | 
| 
      
 48 
     | 
    
         
            +
                          no_color: t.no_color)
         
     | 
| 
      
 49 
     | 
    
         
            +
                      RubyTerraform.destroy(
         
     | 
| 
      
 50 
     | 
    
         
            +
                          force: true,
         
     | 
| 
      
 51 
     | 
    
         
            +
                          no_color: t.no_color,
         
     | 
| 
      
 52 
     | 
    
         
            +
                          no_backup: t.no_backup,
         
     | 
| 
      
 53 
     | 
    
         
            +
                          backup: t.backup_file,
         
     | 
| 
      
 54 
     | 
    
         
            +
                          state: t.state_file,
         
     | 
| 
      
 55 
     | 
    
         
            +
                          vars: t.vars,
         
     | 
| 
      
 56 
     | 
    
         
            +
                          var_file: t.var_file)
         
     | 
| 
       94 
57 
     | 
    
         
             
                    end
         
     | 
| 
       95 
58 
     | 
    
         
             
                  end
         
     | 
| 
       96 
59 
     | 
    
         
             
                end
         
     | 
| 
         @@ -1,13 +1,16 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'rake_factory'
         
     | 
| 
       1 
2 
     | 
    
         
             
            require 'ruby_terraform'
         
     | 
| 
       2 
3 
     | 
    
         
             
            require 'ostruct'
         
     | 
| 
       3 
4 
     | 
    
         
             
            require 'colored2'
         
     | 
| 
       4 
     | 
    
         
            -
            require_relative '../tasklib'
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            module RakeTerraform
         
     | 
| 
       7 
7 
     | 
    
         
             
              module Tasks
         
     | 
| 
       8 
     | 
    
         
            -
                class Output <  
     | 
| 
       9 
     | 
    
         
            -
                   
     | 
| 
       10 
     | 
    
         
            -
                   
     | 
| 
      
 8 
     | 
    
         
            +
                class Output < RakeFactory::Task
         
     | 
| 
      
 9 
     | 
    
         
            +
                  default_name :output
         
     | 
| 
      
 10 
     | 
    
         
            +
                  default_prerequisites ->(t) { [t.ensure_task_name] }
         
     | 
| 
      
 11 
     | 
    
         
            +
                  default_description ->(t) {
         
     | 
| 
      
 12 
     | 
    
         
            +
                    "Output #{t.configuration_name} using terraform"
         
     | 
| 
      
 13 
     | 
    
         
            +
                  }
         
     | 
| 
       11 
14 
     | 
    
         | 
| 
       12 
15 
     | 
    
         
             
                  parameter :configuration_name, :required => true
         
     | 
| 
       13 
16 
     | 
    
         
             
                  parameter :source_directory, :required => true
         
     | 
| 
         @@ -21,67 +24,33 @@ module RakeTerraform 
     | 
|
| 
       21 
24 
     | 
    
         
             
                  parameter :no_color, :default => false
         
     | 
| 
       22 
25 
     | 
    
         
             
                  parameter :no_print_output, :default => false
         
     | 
| 
       23 
26 
     | 
    
         | 
| 
       24 
     | 
    
         
            -
                  parameter : 
     | 
| 
      
 27 
     | 
    
         
            +
                  parameter :ensure_task_name, :default => :'terraform:ensure'
         
     | 
| 
       25 
28 
     | 
    
         | 
| 
       26 
     | 
    
         
            -
                   
     | 
| 
       27 
     | 
    
         
            -
                     
     | 
| 
       28 
     | 
    
         
            -
                  end
         
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
                  def define
         
     | 
| 
       31 
     | 
    
         
            -
                    desc "Output #{configuration_name} using terraform"
         
     | 
| 
       32 
     | 
    
         
            -
                    task name, argument_names => [ensure_task] do |_, args|
         
     | 
| 
       33 
     | 
    
         
            -
                      Colored2.disable! if no_color
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
                      puts "Output of #{configuration_name}".cyan
         
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
                      params = OpenStruct.new({
         
     | 
| 
       38 
     | 
    
         
            -
                        configuration_name: configuration_name,
         
     | 
| 
       39 
     | 
    
         
            -
                        source_directory: source_directory,
         
     | 
| 
       40 
     | 
    
         
            -
                        work_directory: work_directory,
         
     | 
| 
       41 
     | 
    
         
            -
                        backend_config: backend_config,
         
     | 
| 
       42 
     | 
    
         
            -
                        state_file: state_file,
         
     | 
| 
       43 
     | 
    
         
            -
                        debug: debug,
         
     | 
| 
       44 
     | 
    
         
            -
                        no_color: no_color,
         
     | 
| 
       45 
     | 
    
         
            -
                        no_print_output: no_print_output,
         
     | 
| 
       46 
     | 
    
         
            -
                      })
         
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
                      derived_source_directory = source_directory.respond_to?(:call) ?
         
     | 
| 
       49 
     | 
    
         
            -
                         source_directory.call(
         
     | 
| 
       50 
     | 
    
         
            -
                             *[args, params].slice(0, source_directory.arity)) :
         
     | 
| 
       51 
     | 
    
         
            -
                         source_directory
         
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
                      configuration_directory = File.join(work_directory, derived_source_directory)
         
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
                      RubyTerraform.clean(
         
     | 
| 
       56 
     | 
    
         
            -
                          directory: configuration_directory)
         
     | 
| 
      
 29 
     | 
    
         
            +
                  action do |t|
         
     | 
| 
      
 30 
     | 
    
         
            +
                    Colored2.disable! if t.no_color
         
     | 
| 
       57 
31 
     | 
    
         | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
      
 32 
     | 
    
         
            +
                    configuration_directory =
         
     | 
| 
      
 33 
     | 
    
         
            +
                        File.join(t.work_directory, t.source_directory)
         
     | 
| 
       60 
34 
     | 
    
         | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
      
 35 
     | 
    
         
            +
                    puts "Output of #{t.configuration_name}".cyan
         
     | 
| 
      
 36 
     | 
    
         
            +
                    RubyTerraform.clean(
         
     | 
| 
      
 37 
     | 
    
         
            +
                        directory: configuration_directory)
         
     | 
| 
       62 
38 
     | 
    
         | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
                              *[args, params].slice(0, backend_config.arity)) :
         
     | 
| 
       66 
     | 
    
         
            -
                          backend_config
         
     | 
| 
       67 
     | 
    
         
            -
                      derived_state_file = state_file.respond_to?(:call) ?
         
     | 
| 
       68 
     | 
    
         
            -
                          state_file.call(
         
     | 
| 
       69 
     | 
    
         
            -
                              *[args, params].slice(0, state_file.arity)) :
         
     | 
| 
       70 
     | 
    
         
            -
                          state_file
         
     | 
| 
      
 39 
     | 
    
         
            +
                    mkdir_p File.dirname(configuration_directory)
         
     | 
| 
      
 40 
     | 
    
         
            +
                    cp_r t.source_directory, configuration_directory
         
     | 
| 
       71 
41 
     | 
    
         | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
       73 
     | 
    
         
            -
             
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
      
 42 
     | 
    
         
            +
                    Dir.chdir(configuration_directory) do
         
     | 
| 
      
 43 
     | 
    
         
            +
                      RubyTerraform.init(
         
     | 
| 
      
 44 
     | 
    
         
            +
                          backend_config: t.backend_config,
         
     | 
| 
      
 45 
     | 
    
         
            +
                          no_color: t.no_color)
         
     | 
| 
       76 
46 
     | 
    
         | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
      
 47 
     | 
    
         
            +
                      output = RubyTerraform.output(
         
     | 
| 
      
 48 
     | 
    
         
            +
                          no_color: t.no_color,
         
     | 
| 
      
 49 
     | 
    
         
            +
                          state: t.state_file)
         
     | 
| 
       80 
50 
     | 
    
         | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
      
 51 
     | 
    
         
            +
                      puts output unless t.no_print_output
         
     | 
| 
       82 
52 
     | 
    
         | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
       84 
     | 
    
         
            -
                      end
         
     | 
| 
      
 53 
     | 
    
         
            +
                      output
         
     | 
| 
       85 
54 
     | 
    
         
             
                    end
         
     | 
| 
       86 
55 
     | 
    
         
             
                  end
         
     | 
| 
       87 
56 
     | 
    
         
             
                end
         
     | 
| 
         @@ -1,13 +1,16 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'rake_factory'
         
     | 
| 
       1 
2 
     | 
    
         
             
            require 'ruby_terraform'
         
     | 
| 
       2 
3 
     | 
    
         
             
            require 'ostruct'
         
     | 
| 
       3 
4 
     | 
    
         
             
            require 'colored2'
         
     | 
| 
       4 
     | 
    
         
            -
            require_relative '../tasklib'
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            module RakeTerraform
         
     | 
| 
       7 
7 
     | 
    
         
             
              module Tasks
         
     | 
| 
       8 
     | 
    
         
            -
                class Plan <  
     | 
| 
       9 
     | 
    
         
            -
                   
     | 
| 
       10 
     | 
    
         
            -
                   
     | 
| 
      
 8 
     | 
    
         
            +
                class Plan < RakeFactory::Task
         
     | 
| 
      
 9 
     | 
    
         
            +
                  default_name :plan
         
     | 
| 
      
 10 
     | 
    
         
            +
                  default_prerequisites ->(t) { [t.ensure_task_name] }
         
     | 
| 
      
 11 
     | 
    
         
            +
                  default_description ->(t) {
         
     | 
| 
      
 12 
     | 
    
         
            +
                    "Plan #{t.configuration_name} using terraform"
         
     | 
| 
      
 13 
     | 
    
         
            +
                  }
         
     | 
| 
       11 
14 
     | 
    
         | 
| 
       12 
15 
     | 
    
         
             
                  parameter :configuration_name, :required => true
         
     | 
| 
       13 
16 
     | 
    
         
             
                  parameter :source_directory, :required => true
         
     | 
| 
         @@ -25,68 +28,32 @@ module RakeTerraform 
     | 
|
| 
       25 
28 
     | 
    
         
             
                  parameter :plan_file
         
     | 
| 
       26 
29 
     | 
    
         
             
                  parameter :destroy, :default => false
         
     | 
| 
       27 
30 
     | 
    
         | 
| 
       28 
     | 
    
         
            -
                  parameter : 
     | 
| 
      
 31 
     | 
    
         
            +
                  parameter :ensure_task_name, :default => :'terraform:ensure'
         
     | 
| 
       29 
32 
     | 
    
         | 
| 
       30 
     | 
    
         
            -
                   
     | 
| 
       31 
     | 
    
         
            -
                     
     | 
| 
       32 
     | 
    
         
            -
                  end
         
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
                  def define
         
     | 
| 
       35 
     | 
    
         
            -
                    desc "Plan #{configuration_name} using terraform"
         
     | 
| 
       36 
     | 
    
         
            -
                    task name, argument_names => [ensure_task] do |_, args|
         
     | 
| 
       37 
     | 
    
         
            -
                      Colored2.disable! if no_color
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
                      puts "Planning #{configuration_name}".cyan
         
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
                      params = OpenStruct.new({
         
     | 
| 
       42 
     | 
    
         
            -
                        configuration_name: configuration_name,
         
     | 
| 
       43 
     | 
    
         
            -
                        source_directory: source_directory,
         
     | 
| 
       44 
     | 
    
         
            -
                        work_directory: work_directory,
         
     | 
| 
       45 
     | 
    
         
            -
                        backend_config: backend_config,
         
     | 
| 
       46 
     | 
    
         
            -
                        state_file: state_file,
         
     | 
| 
       47 
     | 
    
         
            -
                        debug: debug,
         
     | 
| 
       48 
     | 
    
         
            -
                        no_color: no_color,
         
     | 
| 
       49 
     | 
    
         
            -
                      })
         
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
                      derived_source_directory = source_directory.respond_to?(:call) ?
         
     | 
| 
       52 
     | 
    
         
            -
                         source_directory.call(
         
     | 
| 
       53 
     | 
    
         
            -
                             *[args, params].slice(0, source_directory.arity)) :
         
     | 
| 
       54 
     | 
    
         
            -
                         source_directory
         
     | 
| 
       55 
     | 
    
         
            -
             
     | 
| 
       56 
     | 
    
         
            -
                      configuration_directory = File.join(work_directory, derived_source_directory)
         
     | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
       58 
     | 
    
         
            -
                      RubyTerraform.clean(
         
     | 
| 
       59 
     | 
    
         
            -
                          directory: configuration_directory)
         
     | 
| 
      
 33 
     | 
    
         
            +
                  action do |t|
         
     | 
| 
      
 34 
     | 
    
         
            +
                    Colored2.disable! if t.no_color
         
     | 
| 
       60 
35 
     | 
    
         | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
      
 36 
     | 
    
         
            +
                    configuration_directory =
         
     | 
| 
      
 37 
     | 
    
         
            +
                        File.join(t.work_directory, t.source_directory)
         
     | 
| 
       63 
38 
     | 
    
         | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
      
 39 
     | 
    
         
            +
                    puts "Planning #{configuration_name}".cyan
         
     | 
| 
      
 40 
     | 
    
         
            +
                    RubyTerraform.clean(
         
     | 
| 
      
 41 
     | 
    
         
            +
                        directory: configuration_directory)
         
     | 
| 
       65 
42 
     | 
    
         | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
     | 
    
         
            -
                              *[args, params].slice(0, backend_config.arity)) :
         
     | 
| 
       69 
     | 
    
         
            -
                          backend_config
         
     | 
| 
       70 
     | 
    
         
            -
                      derived_vars = vars.respond_to?(:call) ?
         
     | 
| 
       71 
     | 
    
         
            -
                          vars.call(*[args, params].slice(0, vars.arity)) :
         
     | 
| 
       72 
     | 
    
         
            -
                          vars
         
     | 
| 
       73 
     | 
    
         
            -
                      derived_state_file = state_file.respond_to?(:call) ?
         
     | 
| 
       74 
     | 
    
         
            -
                          state_file.call(
         
     | 
| 
       75 
     | 
    
         
            -
                              *[args, params].slice(0, state_file.arity)) :
         
     | 
| 
       76 
     | 
    
         
            -
                          state_file
         
     | 
| 
      
 43 
     | 
    
         
            +
                    mkdir_p File.dirname(configuration_directory)
         
     | 
| 
      
 44 
     | 
    
         
            +
                    cp_r t.source_directory, configuration_directory
         
     | 
| 
       77 
45 
     | 
    
         | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
             
     | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
       85 
     | 
    
         
            -
             
     | 
| 
       86 
     | 
    
         
            -
             
     | 
| 
       87 
     | 
    
         
            -
             
     | 
| 
       88 
     | 
    
         
            -
             
     | 
| 
       89 
     | 
    
         
            -
                      end
         
     | 
| 
      
 46 
     | 
    
         
            +
                    Dir.chdir(configuration_directory) do
         
     | 
| 
      
 47 
     | 
    
         
            +
                      RubyTerraform.init(
         
     | 
| 
      
 48 
     | 
    
         
            +
                          backend_config: t.backend_config,
         
     | 
| 
      
 49 
     | 
    
         
            +
                          no_color: t.no_color)
         
     | 
| 
      
 50 
     | 
    
         
            +
                      RubyTerraform.plan(
         
     | 
| 
      
 51 
     | 
    
         
            +
                          no_color: t.no_color,
         
     | 
| 
      
 52 
     | 
    
         
            +
                          destroy: t.destroy,
         
     | 
| 
      
 53 
     | 
    
         
            +
                          state: t.state_file,
         
     | 
| 
      
 54 
     | 
    
         
            +
                          plan: t.plan_file,
         
     | 
| 
      
 55 
     | 
    
         
            +
                          vars: t.vars,
         
     | 
| 
      
 56 
     | 
    
         
            +
                          var_file: t.var_file)
         
     | 
| 
       90 
57 
     | 
    
         
             
                    end
         
     | 
| 
       91 
58 
     | 
    
         
             
                  end
         
     | 
| 
       92 
59 
     | 
    
         
             
                end
         
     | 
| 
         @@ -1,13 +1,16 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'rake_factory'
         
     | 
| 
       1 
2 
     | 
    
         
             
            require 'ruby_terraform'
         
     | 
| 
       2 
3 
     | 
    
         
             
            require 'ostruct'
         
     | 
| 
       3 
4 
     | 
    
         
             
            require 'colored2'
         
     | 
| 
       4 
     | 
    
         
            -
            require_relative '../tasklib'
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            module RakeTerraform
         
     | 
| 
       7 
7 
     | 
    
         
             
              module Tasks
         
     | 
| 
       8 
     | 
    
         
            -
                class Provision <  
     | 
| 
       9 
     | 
    
         
            -
                   
     | 
| 
       10 
     | 
    
         
            -
                   
     | 
| 
      
 8 
     | 
    
         
            +
                class Provision < RakeFactory::Task
         
     | 
| 
      
 9 
     | 
    
         
            +
                  default_name :provision
         
     | 
| 
      
 10 
     | 
    
         
            +
                  default_prerequisites ->(t) { [t.ensure_task_name] }
         
     | 
| 
      
 11 
     | 
    
         
            +
                  default_description ->(t) {
         
     | 
| 
      
 12 
     | 
    
         
            +
                    "Provision #{t.configuration_name} using terraform"
         
     | 
| 
      
 13 
     | 
    
         
            +
                  }
         
     | 
| 
       11 
14 
     | 
    
         | 
| 
       12 
15 
     | 
    
         
             
                  parameter :configuration_name, :required => true
         
     | 
| 
       13 
16 
     | 
    
         
             
                  parameter :source_directory, :required => true
         
     | 
| 
         @@ -25,72 +28,34 @@ module RakeTerraform 
     | 
|
| 
       25 
28 
     | 
    
         | 
| 
       26 
29 
     | 
    
         
             
                  parameter :backup_file
         
     | 
| 
       27 
30 
     | 
    
         | 
| 
       28 
     | 
    
         
            -
                  parameter : 
     | 
| 
      
 31 
     | 
    
         
            +
                  parameter :ensure_task_name, :default => :'terraform:ensure'
         
     | 
| 
       29 
32 
     | 
    
         | 
| 
       30 
     | 
    
         
            -
                   
     | 
| 
       31 
     | 
    
         
            -
                     
     | 
| 
       32 
     | 
    
         
            -
                  end
         
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
                  def define
         
     | 
| 
       35 
     | 
    
         
            -
                    desc "Provision #{configuration_name} using terraform"
         
     | 
| 
       36 
     | 
    
         
            -
                    task name, argument_names => [ensure_task] do |_, args|
         
     | 
| 
       37 
     | 
    
         
            -
                      Colored2.disable! if no_color
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
                      puts "Provisioning #{configuration_name}".cyan
         
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
                      params = OpenStruct.new({
         
     | 
| 
       42 
     | 
    
         
            -
                        configuration_name: configuration_name,
         
     | 
| 
       43 
     | 
    
         
            -
                        source_directory: source_directory,
         
     | 
| 
       44 
     | 
    
         
            -
                        work_directory: work_directory,
         
     | 
| 
       45 
     | 
    
         
            -
                        backend_config: backend_config,
         
     | 
| 
       46 
     | 
    
         
            -
                        var_file: var_file,
         
     | 
| 
       47 
     | 
    
         
            -
                        state_file: state_file,
         
     | 
| 
       48 
     | 
    
         
            -
                        debug: debug,
         
     | 
| 
       49 
     | 
    
         
            -
                        no_color: no_color,
         
     | 
| 
       50 
     | 
    
         
            -
                        no_backup: no_backup,
         
     | 
| 
       51 
     | 
    
         
            -
                        backup_file: backup_file,
         
     | 
| 
       52 
     | 
    
         
            -
                      })
         
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
                      derived_source_directory = source_directory.respond_to?(:call) ?
         
     | 
| 
       55 
     | 
    
         
            -
                         source_directory.call(
         
     | 
| 
       56 
     | 
    
         
            -
                             *[args, params].slice(0, source_directory.arity)) :
         
     | 
| 
       57 
     | 
    
         
            -
                         source_directory
         
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
     | 
    
         
            -
                      configuration_directory = File.join(work_directory, derived_source_directory)
         
     | 
| 
      
 33 
     | 
    
         
            +
                  action do |t|
         
     | 
| 
      
 34 
     | 
    
         
            +
                    Colored2.disable! if t.no_color
         
     | 
| 
       60 
35 
     | 
    
         | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
      
 36 
     | 
    
         
            +
                    configuration_directory =
         
     | 
| 
      
 37 
     | 
    
         
            +
                        File.join(t.work_directory, t.source_directory)
         
     | 
| 
       63 
38 
     | 
    
         | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
             
     | 
| 
      
 39 
     | 
    
         
            +
                    puts "Provisioning #{t.configuration_name}".cyan
         
     | 
| 
      
 40 
     | 
    
         
            +
                    RubyTerraform.clean(
         
     | 
| 
      
 41 
     | 
    
         
            +
                        directory: configuration_directory)
         
     | 
| 
       66 
42 
     | 
    
         | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
      
 43 
     | 
    
         
            +
                    mkdir_p File.dirname(configuration_directory)
         
     | 
| 
      
 44 
     | 
    
         
            +
                    cp_r t.source_directory, configuration_directory
         
     | 
| 
       68 
45 
     | 
    
         | 
| 
       69 
     | 
    
         
            -
                      derived_backend_config = backend_config.respond_to?(:call) ?
         
     | 
| 
       70 
     | 
    
         
            -
                          backend_config.call(
         
     | 
| 
       71 
     | 
    
         
            -
                              *[args, params].slice(0, backend_config.arity)) :
         
     | 
| 
       72 
     | 
    
         
            -
                          backend_config
         
     | 
| 
       73 
     | 
    
         
            -
                      derived_vars = vars.respond_to?(:call) ?
         
     | 
| 
       74 
     | 
    
         
            -
                          vars.call(*[args, params].slice(0, vars.arity)) :
         
     | 
| 
       75 
     | 
    
         
            -
                          vars
         
     | 
| 
       76 
     | 
    
         
            -
                      derived_state_file = state_file.respond_to?(:call) ?
         
     | 
| 
       77 
     | 
    
         
            -
                          state_file.call(
         
     | 
| 
       78 
     | 
    
         
            -
                              *[args, params].slice(0, state_file.arity)) :
         
     | 
| 
       79 
     | 
    
         
            -
                          state_file
         
     | 
| 
       80 
46 
     | 
    
         | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
       85 
     | 
    
         
            -
             
     | 
| 
       86 
     | 
    
         
            -
             
     | 
| 
       87 
     | 
    
         
            -
             
     | 
| 
       88 
     | 
    
         
            -
             
     | 
| 
       89 
     | 
    
         
            -
             
     | 
| 
       90 
     | 
    
         
            -
             
     | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
       92 
     | 
    
         
            -
             
     | 
| 
       93 
     | 
    
         
            -
                      end
         
     | 
| 
      
 47 
     | 
    
         
            +
                    Dir.chdir(configuration_directory) do
         
     | 
| 
      
 48 
     | 
    
         
            +
                      RubyTerraform.init(
         
     | 
| 
      
 49 
     | 
    
         
            +
                          backend_config: t.backend_config,
         
     | 
| 
      
 50 
     | 
    
         
            +
                          no_color: t.no_color)
         
     | 
| 
      
 51 
     | 
    
         
            +
                      RubyTerraform.apply(
         
     | 
| 
      
 52 
     | 
    
         
            +
                          auto_approve: true,
         
     | 
| 
      
 53 
     | 
    
         
            +
                          no_color: t.no_color,
         
     | 
| 
      
 54 
     | 
    
         
            +
                          no_backup: t.no_backup,
         
     | 
| 
      
 55 
     | 
    
         
            +
                          backup: t.backup_file,
         
     | 
| 
      
 56 
     | 
    
         
            +
                          state: t.state_file,
         
     | 
| 
      
 57 
     | 
    
         
            +
                          vars: t.vars,
         
     | 
| 
      
 58 
     | 
    
         
            +
                          var_file: t.var_file)
         
     | 
| 
       94 
59 
     | 
    
         
             
                    end
         
     | 
| 
       95 
60 
     | 
    
         
             
                  end
         
     | 
| 
       96 
61 
     | 
    
         
             
                end
         
     | 
| 
         @@ -1,13 +1,16 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'rake_factory'
         
     | 
| 
       1 
2 
     | 
    
         
             
            require 'ruby_terraform'
         
     | 
| 
       2 
3 
     | 
    
         
             
            require 'ostruct'
         
     | 
| 
       3 
4 
     | 
    
         
             
            require 'colored2'
         
     | 
| 
       4 
     | 
    
         
            -
            require_relative '../tasklib'
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            module RakeTerraform
         
     | 
| 
       7 
7 
     | 
    
         
             
              module Tasks
         
     | 
| 
       8 
     | 
    
         
            -
                class Validate <  
     | 
| 
       9 
     | 
    
         
            -
                   
     | 
| 
       10 
     | 
    
         
            -
                   
     | 
| 
      
 8 
     | 
    
         
            +
                class Validate < RakeFactory::Task
         
     | 
| 
      
 9 
     | 
    
         
            +
                  default_name :validate
         
     | 
| 
      
 10 
     | 
    
         
            +
                  default_prerequisites ->(t) { [t.ensure_task_name] }
         
     | 
| 
      
 11 
     | 
    
         
            +
                  default_description ->(t) {
         
     | 
| 
      
 12 
     | 
    
         
            +
                    "Validate #{t.configuration_name} using terraform"
         
     | 
| 
      
 13 
     | 
    
         
            +
                  }
         
     | 
| 
       11 
14 
     | 
    
         | 
| 
       12 
15 
     | 
    
         
             
                  parameter :configuration_name, :required => true
         
     | 
| 
       13 
16 
     | 
    
         
             
                  parameter :source_directory, :required => true
         
     | 
| 
         @@ -22,66 +25,30 @@ module RakeTerraform 
     | 
|
| 
       22 
25 
     | 
    
         
             
                  parameter :debug, :default => false
         
     | 
| 
       23 
26 
     | 
    
         
             
                  parameter :no_color, :default => false
         
     | 
| 
       24 
27 
     | 
    
         | 
| 
       25 
     | 
    
         
            -
                  parameter : 
     | 
| 
      
 28 
     | 
    
         
            +
                  parameter :ensure_task_name, :default => :'terraform:ensure'
         
     | 
| 
       26 
29 
     | 
    
         | 
| 
       27 
     | 
    
         
            -
                   
     | 
| 
       28 
     | 
    
         
            -
                     
     | 
| 
       29 
     | 
    
         
            -
                  end
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
                  def define
         
     | 
| 
       32 
     | 
    
         
            -
                    desc "Validate #{configuration_name} using terraform"
         
     | 
| 
       33 
     | 
    
         
            -
                    task name, argument_names => [ensure_task] do |_, args|
         
     | 
| 
       34 
     | 
    
         
            -
                      Colored2.disable! if no_color
         
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
                      puts "Validating #{configuration_name}".cyan
         
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
                      params = OpenStruct.new({
         
     | 
| 
       39 
     | 
    
         
            -
                        configuration_name: configuration_name,
         
     | 
| 
       40 
     | 
    
         
            -
                        source_directory: source_directory,
         
     | 
| 
       41 
     | 
    
         
            -
                        work_directory: work_directory,
         
     | 
| 
       42 
     | 
    
         
            -
                        backend_config: backend_config,
         
     | 
| 
       43 
     | 
    
         
            -
                        state_file: state_file,
         
     | 
| 
       44 
     | 
    
         
            -
                        debug: debug,
         
     | 
| 
       45 
     | 
    
         
            -
                        no_color: no_color,
         
     | 
| 
       46 
     | 
    
         
            -
                      })
         
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
                      derived_source_directory = source_directory.respond_to?(:call) ?
         
     | 
| 
       49 
     | 
    
         
            -
                         source_directory.call(
         
     | 
| 
       50 
     | 
    
         
            -
                             *[args, params].slice(0, source_directory.arity)) :
         
     | 
| 
       51 
     | 
    
         
            -
                         source_directory
         
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
                      configuration_directory = File.join(work_directory, derived_source_directory)
         
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
                      RubyTerraform.clean(
         
     | 
| 
       56 
     | 
    
         
            -
                          directory: configuration_directory)
         
     | 
| 
      
 30 
     | 
    
         
            +
                  action do |t|
         
     | 
| 
      
 31 
     | 
    
         
            +
                    Colored2.disable! if t.no_color
         
     | 
| 
       57 
32 
     | 
    
         | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
      
 33 
     | 
    
         
            +
                    configuration_directory =
         
     | 
| 
      
 34 
     | 
    
         
            +
                        File.join(t.work_directory, t.source_directory)
         
     | 
| 
       60 
35 
     | 
    
         | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
      
 36 
     | 
    
         
            +
                    puts "Validating #{t.configuration_name}".cyan
         
     | 
| 
      
 37 
     | 
    
         
            +
                    RubyTerraform.clean(
         
     | 
| 
      
 38 
     | 
    
         
            +
                        directory: configuration_directory)
         
     | 
| 
       62 
39 
     | 
    
         | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
                              *[args, params].slice(0, backend_config.arity)) :
         
     | 
| 
       66 
     | 
    
         
            -
                          backend_config
         
     | 
| 
       67 
     | 
    
         
            -
                      derived_vars = vars.respond_to?(:call) ?
         
     | 
| 
       68 
     | 
    
         
            -
                          vars.call(*[args, params].slice(0, vars.arity)) :
         
     | 
| 
       69 
     | 
    
         
            -
                          vars
         
     | 
| 
       70 
     | 
    
         
            -
                      derived_state_file = state_file.respond_to?(:call) ?
         
     | 
| 
       71 
     | 
    
         
            -
                          state_file.call(
         
     | 
| 
       72 
     | 
    
         
            -
                              *[args, params].slice(0, state_file.arity)) :
         
     | 
| 
       73 
     | 
    
         
            -
                          state_file
         
     | 
| 
      
 40 
     | 
    
         
            +
                    mkdir_p File.dirname(configuration_directory)
         
     | 
| 
      
 41 
     | 
    
         
            +
                    cp_r t.source_directory, configuration_directory
         
     | 
| 
       74 
42 
     | 
    
         | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
             
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
             
     | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
       84 
     | 
    
         
            -
                      end
         
     | 
| 
      
 43 
     | 
    
         
            +
                    Dir.chdir(configuration_directory) do
         
     | 
| 
      
 44 
     | 
    
         
            +
                      RubyTerraform.init(
         
     | 
| 
      
 45 
     | 
    
         
            +
                          backend_config: t.backend_config,
         
     | 
| 
      
 46 
     | 
    
         
            +
                          no_color: t.no_color)
         
     | 
| 
      
 47 
     | 
    
         
            +
                      RubyTerraform.validate(
         
     | 
| 
      
 48 
     | 
    
         
            +
                          no_color: t.no_color,
         
     | 
| 
      
 49 
     | 
    
         
            +
                          state: t.state_file,
         
     | 
| 
      
 50 
     | 
    
         
            +
                          vars: t.vars,
         
     | 
| 
      
 51 
     | 
    
         
            +
                          var_file: t.var_file)
         
     | 
| 
       85 
52 
     | 
    
         
             
                    end
         
     | 
| 
       86 
53 
     | 
    
         
             
                  end
         
     | 
| 
       87 
54 
     | 
    
         
             
                end
         
     | 
    
        data/lib/rake_terraform/tasks.rb
    CHANGED
    
    
    
        data/lib/rake_terraform.rb
    CHANGED
    
    | 
         @@ -2,14 +2,14 @@ require 'logger' 
     | 
|
| 
       2 
2 
     | 
    
         
             
            require 'rake_dependencies'
         
     | 
| 
       3 
3 
     | 
    
         
             
            require 'ruby_terraform'
         
     | 
| 
       4 
4 
     | 
    
         
             
            require 'rake_terraform/version'
         
     | 
| 
       5 
     | 
    
         
            -
            require 'rake_terraform/tasklib'
         
     | 
| 
       6 
5 
     | 
    
         
             
            require 'rake_terraform/tasks'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require 'rake_terraform/task_sets'
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
            module RakeTerraform
         
     | 
| 
       9 
9 
     | 
    
         
             
              include RubyTerraform
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
              def self.define_command_tasks(&block)
         
     | 
| 
       12 
     | 
    
         
            -
                RakeTerraform:: 
     | 
| 
      
 12 
     | 
    
         
            +
                RakeTerraform::TaskSets::All.define(&block)
         
     | 
| 
       13 
13 
     | 
    
         
             
              end
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
              def self.define_installation_tasks(opts = {})
         
     | 
    
        data/rake_terraform.gemspec
    CHANGED
    
    | 
         @@ -23,8 +23,9 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       23 
23 
     | 
    
         | 
| 
       24 
24 
     | 
    
         
             
              spec.required_ruby_version = '>= 2.6'
         
     | 
| 
       25 
25 
     | 
    
         | 
| 
       26 
     | 
    
         
            -
              spec.add_dependency 'rake_dependencies', ' 
     | 
| 
       27 
     | 
    
         
            -
              spec.add_dependency ' 
     | 
| 
      
 26 
     | 
    
         
            +
              spec.add_dependency 'rake_dependencies', '>= 1.8'
         
     | 
| 
      
 27 
     | 
    
         
            +
              spec.add_dependency 'rake_factory', '>= 0.15'
         
     | 
| 
      
 28 
     | 
    
         
            +
              spec.add_dependency 'ruby-terraform', '~> 0.48'
         
     | 
| 
       28 
29 
     | 
    
         
             
              spec.add_dependency 'colored2', '~> 3.1'
         
     | 
| 
       29 
30 
     | 
    
         | 
| 
       30 
31 
     | 
    
         
             
              spec.add_development_dependency 'bundler', '~> 2.0'
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,43 +1,57 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: rake_terraform
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.0.0.pre.pre.1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Toby Clemson
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: exe
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2020-01- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2020-01-21 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: rake_dependencies
         
     | 
| 
       15 
15 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       16 
16 
     | 
    
         
             
                requirements:
         
     | 
| 
       17 
     | 
    
         
            -
                - - " 
     | 
| 
      
 17 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       18 
18 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       19 
     | 
    
         
            -
                    version: '1. 
     | 
| 
      
 19 
     | 
    
         
            +
                    version: '1.8'
         
     | 
| 
       20 
20 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       21 
21 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       22 
22 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       23 
23 
     | 
    
         
             
                requirements:
         
     | 
| 
       24 
     | 
    
         
            -
                - - " 
     | 
| 
      
 24 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 25 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 26 
     | 
    
         
            +
                    version: '1.8'
         
     | 
| 
      
 27 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 28 
     | 
    
         
            +
              name: rake_factory
         
     | 
| 
      
 29 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 30 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 31 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       25 
32 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       26 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 33 
     | 
    
         
            +
                    version: '0.15'
         
     | 
| 
      
 34 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 35 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 36 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 37 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 38 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 39 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 40 
     | 
    
         
            +
                    version: '0.15'
         
     | 
| 
       27 
41 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       28 
42 
     | 
    
         
             
              name: ruby-terraform
         
     | 
| 
       29 
43 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       30 
44 
     | 
    
         
             
                requirements:
         
     | 
| 
       31 
45 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       32 
46 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       33 
     | 
    
         
            -
                    version: '0. 
     | 
| 
      
 47 
     | 
    
         
            +
                    version: '0.48'
         
     | 
| 
       34 
48 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       35 
49 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       36 
50 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       37 
51 
     | 
    
         
             
                requirements:
         
     | 
| 
       38 
52 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       39 
53 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       40 
     | 
    
         
            -
                    version: '0. 
     | 
| 
      
 54 
     | 
    
         
            +
                    version: '0.48'
         
     | 
| 
       41 
55 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       42 
56 
     | 
    
         
             
              name: colored2
         
     | 
| 
       43 
57 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -172,10 +186,9 @@ files: 
     | 
|
| 
       172 
186 
     | 
    
         
             
            - config/secrets/rubygems/credentials
         
     | 
| 
       173 
187 
     | 
    
         
             
            - go
         
     | 
| 
       174 
188 
     | 
    
         
             
            - lib/rake_terraform.rb
         
     | 
| 
       175 
     | 
    
         
            -
            - lib/rake_terraform/ 
     | 
| 
       176 
     | 
    
         
            -
            - lib/rake_terraform/ 
     | 
| 
      
 189 
     | 
    
         
            +
            - lib/rake_terraform/task_sets.rb
         
     | 
| 
      
 190 
     | 
    
         
            +
            - lib/rake_terraform/task_sets/all.rb
         
     | 
| 
       177 
191 
     | 
    
         
             
            - lib/rake_terraform/tasks.rb
         
     | 
| 
       178 
     | 
    
         
            -
            - lib/rake_terraform/tasks/all.rb
         
     | 
| 
       179 
192 
     | 
    
         
             
            - lib/rake_terraform/tasks/destroy.rb
         
     | 
| 
       180 
193 
     | 
    
         
             
            - lib/rake_terraform/tasks/output.rb
         
     | 
| 
       181 
194 
     | 
    
         
             
            - lib/rake_terraform/tasks/plan.rb
         
     | 
| 
         @@ -205,9 +218,9 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       205 
218 
     | 
    
         
             
                  version: '2.6'
         
     | 
| 
       206 
219 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       207 
220 
     | 
    
         
             
              requirements:
         
     | 
| 
       208 
     | 
    
         
            -
              - - " 
     | 
| 
      
 221 
     | 
    
         
            +
              - - ">"
         
     | 
| 
       209 
222 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       210 
     | 
    
         
            -
                  version:  
     | 
| 
      
 223 
     | 
    
         
            +
                  version: 1.3.1
         
     | 
| 
       211 
224 
     | 
    
         
             
            requirements: []
         
     | 
| 
       212 
225 
     | 
    
         
             
            rubygems_version: 3.0.1
         
     | 
| 
       213 
226 
     | 
    
         
             
            signing_key: 
         
     | 
| 
         @@ -1,98 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'rake/tasklib'
         
     | 
| 
       2 
     | 
    
         
            -
            require_relative 'exceptions'
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
            module RakeTerraform
         
     | 
| 
       5 
     | 
    
         
            -
              class TaskLib < ::Rake::TaskLib
         
     | 
| 
       6 
     | 
    
         
            -
                class << self
         
     | 
| 
       7 
     | 
    
         
            -
                  def parameter_definitions
         
     | 
| 
       8 
     | 
    
         
            -
                    @parameter_definitions ||= {}
         
     | 
| 
       9 
     | 
    
         
            -
                  end
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
                  def parameter(name, options = {})
         
     | 
| 
       12 
     | 
    
         
            -
                    parameter_definition = ParameterDefinition.new(
         
     | 
| 
       13 
     | 
    
         
            -
                        name, options[:default], options[:required])
         
     | 
| 
       14 
     | 
    
         
            -
                    name = parameter_definition.name
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
                    attr_accessor(name)
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
                    parameter_definitions[name] = parameter_definition
         
     | 
| 
       19 
     | 
    
         
            -
                  end
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
                  def setup_defaults_for(instance)
         
     | 
| 
       22 
     | 
    
         
            -
                    parameter_definitions.values.each do |parameter_definition|
         
     | 
| 
       23 
     | 
    
         
            -
                      parameter_definition.apply_default_to(instance)
         
     | 
| 
       24 
     | 
    
         
            -
                    end
         
     | 
| 
       25 
     | 
    
         
            -
                  end
         
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
                  def check_required_for(instance)
         
     | 
| 
       28 
     | 
    
         
            -
                    dissatisfied = parameter_definitions.values.reject do |definition|
         
     | 
| 
       29 
     | 
    
         
            -
                      definition.satisfied_by?(instance)
         
     | 
| 
       30 
     | 
    
         
            -
                    end
         
     | 
| 
       31 
     | 
    
         
            -
                    unless dissatisfied.empty?
         
     | 
| 
       32 
     | 
    
         
            -
                      names = dissatisfied.map(&:name)
         
     | 
| 
       33 
     | 
    
         
            -
                      raise RequiredParameterUnset,
         
     | 
| 
       34 
     | 
    
         
            -
                            "Required parameter#{names.length > 1 ? 's' : ''} #{names.join(',')} unset."
         
     | 
| 
       35 
     | 
    
         
            -
                    end
         
     | 
| 
       36 
     | 
    
         
            -
                  end
         
     | 
| 
       37 
     | 
    
         
            -
                end
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
                def initialize(*args, &block)
         
     | 
| 
       40 
     | 
    
         
            -
                  setup_defaults
         
     | 
| 
       41 
     | 
    
         
            -
                  process_arguments(args)
         
     | 
| 
       42 
     | 
    
         
            -
                  process_block(block)
         
     | 
| 
       43 
     | 
    
         
            -
                  check_required
         
     | 
| 
       44 
     | 
    
         
            -
                  define
         
     | 
| 
       45 
     | 
    
         
            -
                end
         
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
                def setup_defaults
         
     | 
| 
       48 
     | 
    
         
            -
                  self.class.setup_defaults_for(self)
         
     | 
| 
       49 
     | 
    
         
            -
                end
         
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
                def process_arguments(_)
         
     | 
| 
       52 
     | 
    
         
            -
                end
         
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
                def process_block(block)
         
     | 
| 
       55 
     | 
    
         
            -
                  block.call(self) if block
         
     | 
| 
       56 
     | 
    
         
            -
                end
         
     | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
       58 
     | 
    
         
            -
                def check_required
         
     | 
| 
       59 
     | 
    
         
            -
                  self.class.check_required_for(self)
         
     | 
| 
       60 
     | 
    
         
            -
                end
         
     | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
       62 
     | 
    
         
            -
                def define
         
     | 
| 
       63 
     | 
    
         
            -
                end
         
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
                private
         
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
       67 
     | 
    
         
            -
                class ParameterDefinition
         
     | 
| 
       68 
     | 
    
         
            -
                  attr_reader :name
         
     | 
| 
       69 
     | 
    
         
            -
             
     | 
| 
       70 
     | 
    
         
            -
                  def initialize(name, default = nil, required = false)
         
     | 
| 
       71 
     | 
    
         
            -
                    @name = name.to_sym
         
     | 
| 
       72 
     | 
    
         
            -
                    @default = default
         
     | 
| 
       73 
     | 
    
         
            -
                    @required = required
         
     | 
| 
       74 
     | 
    
         
            -
                  end
         
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
                  def writer_method
         
     | 
| 
       77 
     | 
    
         
            -
                    "#{name}="
         
     | 
| 
       78 
     | 
    
         
            -
                  end
         
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
                  def reader_method
         
     | 
| 
       81 
     | 
    
         
            -
                    name
         
     | 
| 
       82 
     | 
    
         
            -
                  end
         
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
       84 
     | 
    
         
            -
                  def apply_default_to(instance)
         
     | 
| 
       85 
     | 
    
         
            -
                    instance.__send__(writer_method, @default) unless @default.nil?
         
     | 
| 
       86 
     | 
    
         
            -
                  end
         
     | 
| 
       87 
     | 
    
         
            -
             
     | 
| 
       88 
     | 
    
         
            -
                  def dissatisfied_by?(instance)
         
     | 
| 
       89 
     | 
    
         
            -
                    value = instance.__send__(reader_method)
         
     | 
| 
       90 
     | 
    
         
            -
                    @required && value.nil?
         
     | 
| 
       91 
     | 
    
         
            -
                  end
         
     | 
| 
       92 
     | 
    
         
            -
             
     | 
| 
       93 
     | 
    
         
            -
                  def satisfied_by?(instance)
         
     | 
| 
       94 
     | 
    
         
            -
                    !dissatisfied_by?(instance)
         
     | 
| 
       95 
     | 
    
         
            -
                  end
         
     | 
| 
       96 
     | 
    
         
            -
                end
         
     | 
| 
       97 
     | 
    
         
            -
              end
         
     | 
| 
       98 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,151 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            module RakeTerraform
         
     | 
| 
       2 
     | 
    
         
            -
              module Tasks
         
     | 
| 
       3 
     | 
    
         
            -
                class All < TaskLib
         
     | 
| 
       4 
     | 
    
         
            -
                  parameter :configuration_name, :required => true
         
     | 
| 
       5 
     | 
    
         
            -
                  parameter :source_directory, :required => true
         
     | 
| 
       6 
     | 
    
         
            -
                  parameter :work_directory, :required => true
         
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
                  parameter :backend_config
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
                  parameter :vars
         
     | 
| 
       11 
     | 
    
         
            -
                  parameter :var_file
         
     | 
| 
       12 
     | 
    
         
            -
                  parameter :state_file
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
                  # Emit additional information for debugging purposes
         
     | 
| 
       15 
     | 
    
         
            -
                  # Useful to check this value in lambdas passed to backend_config, vars and state_file
         
     | 
| 
       16 
     | 
    
         
            -
                  parameter :debug, :default => false
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
                  parameter :no_color, :default => false
         
     | 
| 
       19 
     | 
    
         
            -
                  parameter :no_backup, :default => false
         
     | 
| 
       20 
     | 
    
         
            -
                  parameter :no_print_output, :default => false
         
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
                  parameter :backup_file
         
     | 
| 
       23 
     | 
    
         
            -
                  parameter :plan_file
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
                  # Allows specifying rake task arguments, for example bucket:provision[my_deployment_id]
         
     | 
| 
       26 
     | 
    
         
            -
                  parameter :argument_names
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
                  parameter :ensure_task, :default => :'terraform:ensure'
         
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
                  parameter :validate_task_name, :default => :validate
         
     | 
| 
       31 
     | 
    
         
            -
                  parameter :validate_argument_names
         
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
                  parameter :plan_task_name, :default => :plan
         
     | 
| 
       34 
     | 
    
         
            -
                  parameter :plan_argument_names
         
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
                  parameter :provision_task_name, :default => :provision
         
     | 
| 
       37 
     | 
    
         
            -
                  parameter :provision_argument_names
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
                  parameter :destroy_task_name, :default => :destroy
         
     | 
| 
       40 
     | 
    
         
            -
                  parameter :destroy_argument_names
         
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
                  parameter :output_task_name, :default => :output
         
     | 
| 
       43 
     | 
    
         
            -
                  parameter :output_argument_names
         
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
                  def define
         
     | 
| 
       46 
     | 
    
         
            -
                    Validate.new do |t|
         
     | 
| 
       47 
     | 
    
         
            -
                      t.name = validate_task_name
         
     | 
| 
       48 
     | 
    
         
            -
                      t.argument_names = validate_argument_names || argument_names || []
         
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
     | 
    
         
            -
                      t.configuration_name = configuration_name
         
     | 
| 
       51 
     | 
    
         
            -
                      t.source_directory = source_directory
         
     | 
| 
       52 
     | 
    
         
            -
                      t.work_directory = work_directory
         
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
                      t.backend_config = backend_config
         
     | 
| 
       55 
     | 
    
         
            -
             
     | 
| 
       56 
     | 
    
         
            -
                      t.vars = vars
         
     | 
| 
       57 
     | 
    
         
            -
                      t.var_file = var_file
         
     | 
| 
       58 
     | 
    
         
            -
                      t.state_file = state_file
         
     | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
       60 
     | 
    
         
            -
                      t.debug = debug
         
     | 
| 
       61 
     | 
    
         
            -
                      t.no_color = no_color
         
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
       63 
     | 
    
         
            -
                      t.ensure_task = ensure_task
         
     | 
| 
       64 
     | 
    
         
            -
                    end
         
     | 
| 
       65 
     | 
    
         
            -
                    Plan.new do |t|
         
     | 
| 
       66 
     | 
    
         
            -
                      t.name = plan_task_name
         
     | 
| 
       67 
     | 
    
         
            -
                      t.argument_names = plan_argument_names || argument_names || []
         
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
       69 
     | 
    
         
            -
                      t.configuration_name = configuration_name
         
     | 
| 
       70 
     | 
    
         
            -
                      t.source_directory = source_directory
         
     | 
| 
       71 
     | 
    
         
            -
                      t.work_directory = work_directory
         
     | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
       73 
     | 
    
         
            -
                      t.backend_config = backend_config
         
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
                      t.vars = vars
         
     | 
| 
       76 
     | 
    
         
            -
                      t.var_file = var_file
         
     | 
| 
       77 
     | 
    
         
            -
                      t.state_file = state_file
         
     | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
       79 
     | 
    
         
            -
                      t.debug = debug
         
     | 
| 
       80 
     | 
    
         
            -
                      t.no_color = no_color
         
     | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
       82 
     | 
    
         
            -
                      t.plan_file = plan_file
         
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
       84 
     | 
    
         
            -
                      t.ensure_task = ensure_task
         
     | 
| 
       85 
     | 
    
         
            -
                    end
         
     | 
| 
       86 
     | 
    
         
            -
                    Provision.new do |t|
         
     | 
| 
       87 
     | 
    
         
            -
                      t.name = provision_task_name
         
     | 
| 
       88 
     | 
    
         
            -
                      t.argument_names = provision_argument_names || argument_names || []
         
     | 
| 
       89 
     | 
    
         
            -
             
     | 
| 
       90 
     | 
    
         
            -
                      t.configuration_name = configuration_name
         
     | 
| 
       91 
     | 
    
         
            -
                      t.source_directory = source_directory
         
     | 
| 
       92 
     | 
    
         
            -
                      t.work_directory = work_directory
         
     | 
| 
       93 
     | 
    
         
            -
             
     | 
| 
       94 
     | 
    
         
            -
                      t.backend_config = backend_config
         
     | 
| 
       95 
     | 
    
         
            -
             
     | 
| 
       96 
     | 
    
         
            -
                      t.vars = vars
         
     | 
| 
       97 
     | 
    
         
            -
                      t.var_file = var_file
         
     | 
| 
       98 
     | 
    
         
            -
                      t.state_file = state_file
         
     | 
| 
       99 
     | 
    
         
            -
             
     | 
| 
       100 
     | 
    
         
            -
                      t.debug = debug
         
     | 
| 
       101 
     | 
    
         
            -
                      t.no_color = no_color
         
     | 
| 
       102 
     | 
    
         
            -
                      t.no_backup = no_backup
         
     | 
| 
       103 
     | 
    
         
            -
             
     | 
| 
       104 
     | 
    
         
            -
                      t.backup_file = backup_file
         
     | 
| 
       105 
     | 
    
         
            -
             
     | 
| 
       106 
     | 
    
         
            -
                      t.ensure_task = ensure_task
         
     | 
| 
       107 
     | 
    
         
            -
                    end
         
     | 
| 
       108 
     | 
    
         
            -
                    Destroy.new do |t|
         
     | 
| 
       109 
     | 
    
         
            -
                      t.name = destroy_task_name
         
     | 
| 
       110 
     | 
    
         
            -
                      t.argument_names = destroy_argument_names || argument_names || []
         
     | 
| 
       111 
     | 
    
         
            -
             
     | 
| 
       112 
     | 
    
         
            -
                      t.configuration_name = configuration_name
         
     | 
| 
       113 
     | 
    
         
            -
                      t.source_directory = source_directory
         
     | 
| 
       114 
     | 
    
         
            -
                      t.work_directory = work_directory
         
     | 
| 
       115 
     | 
    
         
            -
             
     | 
| 
       116 
     | 
    
         
            -
                      t.backend_config = backend_config
         
     | 
| 
       117 
     | 
    
         
            -
             
     | 
| 
       118 
     | 
    
         
            -
                      t.vars = vars
         
     | 
| 
       119 
     | 
    
         
            -
                      t.var_file = var_file
         
     | 
| 
       120 
     | 
    
         
            -
                      t.state_file = state_file
         
     | 
| 
       121 
     | 
    
         
            -
             
     | 
| 
       122 
     | 
    
         
            -
                      t.debug = debug
         
     | 
| 
       123 
     | 
    
         
            -
                      t.no_color = no_color
         
     | 
| 
       124 
     | 
    
         
            -
                      t.no_backup = no_backup
         
     | 
| 
       125 
     | 
    
         
            -
             
     | 
| 
       126 
     | 
    
         
            -
                      t.backup_file = backup_file
         
     | 
| 
       127 
     | 
    
         
            -
             
     | 
| 
       128 
     | 
    
         
            -
                      t.ensure_task = ensure_task
         
     | 
| 
       129 
     | 
    
         
            -
                    end
         
     | 
| 
       130 
     | 
    
         
            -
                    Output.new do |t|
         
     | 
| 
       131 
     | 
    
         
            -
                      t.name = output_task_name
         
     | 
| 
       132 
     | 
    
         
            -
                      t.argument_names = output_argument_names || argument_names || []
         
     | 
| 
       133 
     | 
    
         
            -
             
     | 
| 
       134 
     | 
    
         
            -
                      t.configuration_name = configuration_name
         
     | 
| 
       135 
     | 
    
         
            -
                      t.source_directory = source_directory
         
     | 
| 
       136 
     | 
    
         
            -
                      t.work_directory = work_directory
         
     | 
| 
       137 
     | 
    
         
            -
             
     | 
| 
       138 
     | 
    
         
            -
                      t.backend_config = backend_config
         
     | 
| 
       139 
     | 
    
         
            -
             
     | 
| 
       140 
     | 
    
         
            -
                      t.state_file = state_file
         
     | 
| 
       141 
     | 
    
         
            -
             
     | 
| 
       142 
     | 
    
         
            -
                      t.debug = debug
         
     | 
| 
       143 
     | 
    
         
            -
                      t.no_color = no_color
         
     | 
| 
       144 
     | 
    
         
            -
                      t.no_print_output = no_print_output
         
     | 
| 
       145 
     | 
    
         
            -
             
     | 
| 
       146 
     | 
    
         
            -
                      t.ensure_task = ensure_task
         
     | 
| 
       147 
     | 
    
         
            -
                    end
         
     | 
| 
       148 
     | 
    
         
            -
                  end
         
     | 
| 
       149 
     | 
    
         
            -
                end
         
     | 
| 
       150 
     | 
    
         
            -
              end
         
     | 
| 
       151 
     | 
    
         
            -
            end
         
     |