yle_tf 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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