yle_tf 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eb4e7fc05d7f0f0d5c7f2a268d8fc35e89b9b188ad791bb0b40073ced1c99bd3
4
- data.tar.gz: b04514a89cbf3b88da4d36c2bc1a896c2801e2bdd0c68e87df6a43a967ba1e86
3
+ metadata.gz: a8818ef98a06e9ccd0e7890e54284f0b3640a0ca7a1e5000f951c4f82bb99011
4
+ data.tar.gz: 3a4ec6e95da88cdea69c5d02d93829a9a777303f46dcd571469ec5866c932d64
5
5
  SHA512:
6
- metadata.gz: 1cb5d2a5c7cf0dc68ff19ff89f925542a251439d9a9c99458e003c867ba7421cfb0ec94e59c3ea027ac2a8f981a86d6cb60aca9ec754f6b7e9a9d0278efd4747
7
- data.tar.gz: 3f8289688e55497d80ab25e16cbefd13ad830f378d17c829af8cb28188d34096f25a296f91ea219ff8f84dba3828f295e87d4811758821e40f0d44110553ef4f
6
+ metadata.gz: 1dba1594a58ceff3dc5519f938b9096fd0269e935c0e1443c12be20f16733ff2bb4cc4fc2c0956ba4629e75e579c00ac81638204eea0490520968e97321c2752
7
+ data.tar.gz: 0655f4e7d53d0cc57008afd7787c8b18ab47986a36d24d36e77fc602feef1e921e9fcdb504a0945e334337478c045891336db0a94c88bfe9942d16c78c089a7a
data/lib/yle_tf/action.rb CHANGED
@@ -12,11 +12,13 @@ class YleTf
12
12
  autoload :TmpDir, 'yle_tf/action/tmpdir'
13
13
  autoload :VerifyTerraformVersion, 'yle_tf/action/verify_terraform_version'
14
14
  autoload :VerifyTfEnv, 'yle_tf/action/verify_tf_env'
15
+ autoload :VerifyYleTfVersion, 'yle_tf/action/verify_yle_tf_version'
15
16
  autoload :WriteTerraformrcDefaults, 'yle_tf/action/write_terraformrc_defaults'
16
17
 
17
18
  def self.default_action_stack(command_class = nil)
18
19
  Builder.new do
19
20
  use LoadConfig
21
+ use VerifyYleTfVersion
20
22
  use VerifyTfEnv
21
23
  use TmpDir
22
24
  use WriteTerraformrcDefaults
@@ -3,9 +3,6 @@
3
3
  require 'yle_tf/logger'
4
4
  require 'yle_tf/tf_hook/runner'
5
5
 
6
- require 'yle_tf/logger'
7
- require 'yle_tf/tf_hook/runner'
8
-
9
6
  class YleTf
10
7
  module Action
11
8
  class TfHooks
@@ -23,7 +20,7 @@ class YleTf
23
20
 
24
21
  def hook_runner
25
22
  if run_hooks?
26
- TfHook::Runner.new(@env[:config], hook_env)
23
+ TfHook::Runner.new(config, hook_env)
27
24
  else
28
25
  NoRunner
29
26
  end
@@ -31,11 +28,16 @@ class YleTf
31
28
 
32
29
  def hook_env
33
30
  {
34
- 'TF_COMMAND' => @env[:tf_command],
35
- 'TF_ENV' => @env[:tf_env],
31
+ 'TF_COMMAND' => @env[:tf_command],
32
+ 'TF_ENV' => @env[:tf_env],
33
+ 'TF_MODULE_DIR' => config.module_dir.to_s,
36
34
  }
37
35
  end
38
36
 
37
+ def config
38
+ @env[:config]
39
+ end
40
+
39
41
  def run_hooks?
40
42
  !@env[:tf_options][:no_hooks]
41
43
  end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'yle_tf/error'
4
+ require 'yle_tf/logger'
5
+ require 'yle_tf/version'
6
+ require 'yle_tf/version_requirement'
7
+
8
+ class YleTf
9
+ module Action
10
+ class VerifyYleTfVersion
11
+ def initialize(app)
12
+ @app = app
13
+ end
14
+
15
+ def call(env)
16
+ Logger.debug('Verifying YleTf version')
17
+
18
+ requirement = requirement(env[:config])
19
+ verify_version(requirement)
20
+
21
+ @app.call(env)
22
+ end
23
+
24
+ def requirement(config)
25
+ requirement = config.fetch('yle_tf', 'version_requirement') { nil }
26
+ VersionRequirement.new(requirement)
27
+ end
28
+
29
+ def verify_version(requirement)
30
+ return if requirement.satisfied_by?(YleTf::VERSION)
31
+
32
+ raise Error, "YleTf version '#{YleTf::VERSION}', '#{requirement}' required by config"
33
+ end
34
+ end
35
+ end
36
+ end
@@ -23,6 +23,9 @@ class YleTf
23
23
  },
24
24
  'terraform' => {
25
25
  'version_requirement' => nil
26
+ },
27
+ 'yle_tf' => {
28
+ 'version_requirement' => nil
26
29
  }
27
30
  }.freeze
28
31
 
@@ -49,7 +49,7 @@ class YleTf
49
49
  def deprecation_warning
50
50
  return nil if ENV['TF_OLD_CONFIG_WARNINGS'] == 'false'
51
51
 
52
- ->(new_config) do
52
+ lambda do |new_config|
53
53
  Logger.warn("Old configuration found in #{config_source}")
54
54
  Logger.warn("Please migrate to relevant parts of:\n" \
55
55
  "#{sanitize_config(new_config)}")
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class YleTf
4
- VERSION = '1.1.0'
4
+ VERSION = '1.2.0'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yle_tf
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yleisradio
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2019-01-04 00:00:00.000000000 Z
13
+ date: 2019-01-24 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -18,14 +18,14 @@ dependencies:
18
18
  requirements:
19
19
  - - "~>"
20
20
  - !ruby/object:Gem::Version
21
- version: '1.13'
21
+ version: '2.0'
22
22
  type: :development
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - "~>"
27
27
  - !ruby/object:Gem::Version
28
- version: '1.13'
28
+ version: '2.0'
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: guard-rspec
31
31
  requirement: !ruby/object:Gem::Requirement
@@ -105,6 +105,7 @@ files:
105
105
  - lib/yle_tf/action/tmpdir.rb
106
106
  - lib/yle_tf/action/verify_terraform_version.rb
107
107
  - lib/yle_tf/action/verify_tf_env.rb
108
+ - lib/yle_tf/action/verify_yle_tf_version.rb
108
109
  - lib/yle_tf/action/write_terraformrc_defaults.rb
109
110
  - lib/yle_tf/backend.rb
110
111
  - lib/yle_tf/cli.rb