yle_tf 1.2.0 → 1.3.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 +4 -4
- data/lib/yle_tf/action/terraform_init.rb +24 -4
- data/lib/yle_tf/action/write_terraformrc_defaults.rb +1 -1
- data/lib/yle_tf/cli.rb +1 -1
- data/lib/yle_tf/config.rb +1 -1
- data/lib/yle_tf/config/loader.rb +1 -1
- data/lib/yle_tf/logger.rb +0 -10
- data/lib/yle_tf/system.rb +2 -1
- data/lib/yle_tf/system/io_handlers.rb +1 -1
- data/lib/yle_tf/version.rb +1 -1
- metadata +22 -9
- data/vendor/logger_level_patch.rb +0 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7811f980206094727502839932ba9a800a4e37694ae26bc71d9c4935de38d3c3
|
4
|
+
data.tar.gz: 95e2c481a30b3caffb65c08407f9e222210fe01514f59ff88ca38a00915ea31b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 84010f77dfa1d2786f0c9b4a3783073ad15bbf6146bac16f4a49401b8b378e28f0747f82a6880eb01dda175fccbd1465f3e25391586e10c11d424e304fe8e74b
|
7
|
+
data.tar.gz: 95c19822da06edb58e250215fb0c5e2154da99e8881a2b8a8ce4fb9fe7c124772e81d7a2774595fdedb97cec3166e0b34e7c098ac20d8133ad97bfcb1196534e
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'pathname'
|
4
|
+
|
3
5
|
require 'yle_tf/logger'
|
4
6
|
require 'yle_tf/plugin'
|
5
7
|
require 'yle_tf/system'
|
@@ -14,13 +16,14 @@ class YleTf
|
|
14
16
|
stdout: :debug # Hide the output to the debug level
|
15
17
|
}.freeze
|
16
18
|
|
19
|
+
attr_reader :config
|
20
|
+
|
17
21
|
def initialize(app)
|
18
22
|
@app = app
|
19
23
|
end
|
20
24
|
|
21
25
|
def call(env)
|
22
|
-
config = env[:config]
|
23
|
-
backend = backend(config)
|
26
|
+
@config = env[:config]
|
24
27
|
|
25
28
|
Logger.info('Initializing Terraform')
|
26
29
|
Logger.debug("Backend configuration: #{backend}")
|
@@ -34,17 +37,34 @@ class YleTf
|
|
34
37
|
Logger.debug('Configuring the backend')
|
35
38
|
backend.configure
|
36
39
|
|
40
|
+
Logger.debug('Symlinking errored.tfstate')
|
41
|
+
symlink_errored_tfstate
|
42
|
+
|
37
43
|
Logger.debug('Initializing Terraform')
|
38
|
-
YleTf::System.cmd('terraform', 'init', *TF_CMD_ARGS, TF_CMD_OPTS)
|
44
|
+
YleTf::System.cmd('terraform', 'init', *TF_CMD_ARGS, **TF_CMD_OPTS)
|
45
|
+
end
|
46
|
+
|
47
|
+
def backend
|
48
|
+
@backend ||= find_backend
|
39
49
|
end
|
40
50
|
|
41
|
-
def
|
51
|
+
def find_backend
|
42
52
|
backend_type = config.fetch('backend', 'type').downcase
|
43
53
|
backend_proc = Plugin.manager.backends[backend_type]
|
44
54
|
|
45
55
|
klass = backend_proc.call
|
46
56
|
klass.new(config)
|
47
57
|
end
|
58
|
+
|
59
|
+
def symlink_errored_tfstate
|
60
|
+
local_path = Pathname.pwd.join('errored.tfstate')
|
61
|
+
remote_path = config.module_dir.join('errored.tfstate')
|
62
|
+
|
63
|
+
# Remove the possibly copied old file
|
64
|
+
local_path.unlink if local_path.exist?
|
65
|
+
|
66
|
+
local_path.make_symlink(remote_path)
|
67
|
+
end
|
48
68
|
end
|
49
69
|
end
|
50
70
|
end
|
data/lib/yle_tf/cli.rb
CHANGED
data/lib/yle_tf/config.rb
CHANGED
data/lib/yle_tf/config/loader.rb
CHANGED
data/lib/yle_tf/logger.rb
CHANGED
@@ -23,7 +23,6 @@ class YleTf
|
|
23
23
|
|
24
24
|
def self.logger
|
25
25
|
@logger ||= ::Logger.new(DEVICE).tap do |logger|
|
26
|
-
patch_for_old_ruby(logger)
|
27
26
|
logger.level = log_level
|
28
27
|
logger.formatter = log_formatter
|
29
28
|
end
|
@@ -65,14 +64,5 @@ class YleTf
|
|
65
64
|
:brown
|
66
65
|
end
|
67
66
|
end
|
68
|
-
|
69
|
-
# Patches the `::Logger` in older Ruby versions to
|
70
|
-
# accept log level as a `String`
|
71
|
-
def self.patch_for_old_ruby(logger)
|
72
|
-
if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.3')
|
73
|
-
require_relative '../../vendor/logger_level_patch'
|
74
|
-
logger.extend(LoggerLevelPatch)
|
75
|
-
end
|
76
|
-
end
|
77
67
|
end
|
78
68
|
end
|
data/lib/yle_tf/system.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
require 'English'
|
4
4
|
require 'open3'
|
5
5
|
require 'shellwords'
|
6
|
+
require 'stringio'
|
6
7
|
require 'thwait'
|
7
8
|
require 'yle_tf/error'
|
8
9
|
require 'yle_tf/logger'
|
@@ -46,7 +47,7 @@ class YleTf
|
|
46
47
|
|
47
48
|
def self.read_cmd(*args, **opts)
|
48
49
|
buffer = StringIO.new
|
49
|
-
cmd(*args, opts.merge(stdout: buffer))
|
50
|
+
cmd(*args, **opts.merge(stdout: buffer))
|
50
51
|
buffer.string
|
51
52
|
end
|
52
53
|
|
@@ -108,7 +108,7 @@ class YleTf
|
|
108
108
|
while (data = source.readpartial(BLOCK_SIZE))
|
109
109
|
target.write(data)
|
110
110
|
end
|
111
|
-
rescue EOFError # rubocop:disable Lint/
|
111
|
+
rescue EOFError # rubocop:disable Lint/SuppressedException
|
112
112
|
# All read
|
113
113
|
rescue IOError => e
|
114
114
|
YleTf::Logger.debug e.full_message
|
data/lib/yle_tf/version.rb
CHANGED
metadata
CHANGED
@@ -1,17 +1,31 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yle_tf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yleisradio
|
8
8
|
- Teemu Matilainen
|
9
9
|
- Antti Forsell
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2020-10-12 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: thwait
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - "~>"
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 0.2.0
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - "~>"
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: 0.2.0
|
15
29
|
- !ruby/object:Gem::Dependency
|
16
30
|
name: bundler
|
17
31
|
requirement: !ruby/object:Gem::Requirement
|
@@ -46,14 +60,14 @@ dependencies:
|
|
46
60
|
requirements:
|
47
61
|
- - "~>"
|
48
62
|
- !ruby/object:Gem::Version
|
49
|
-
version: '
|
63
|
+
version: '13.0'
|
50
64
|
type: :development
|
51
65
|
prerelease: false
|
52
66
|
version_requirements: !ruby/object:Gem::Requirement
|
53
67
|
requirements:
|
54
68
|
- - "~>"
|
55
69
|
- !ruby/object:Gem::Version
|
56
|
-
version: '
|
70
|
+
version: '13.0'
|
57
71
|
- !ruby/object:Gem::Dependency
|
58
72
|
name: rspec
|
59
73
|
requirement: !ruby/object:Gem::Requirement
|
@@ -146,7 +160,6 @@ files:
|
|
146
160
|
- lib/yle_tf_plugins/commands/version/command.rb
|
147
161
|
- lib/yle_tf_plugins/commands/version/plugin.rb
|
148
162
|
- vendor/hash_deep_merge.rb
|
149
|
-
- vendor/logger_level_patch.rb
|
150
163
|
- vendor/middleware/LICENSE
|
151
164
|
- vendor/middleware/builder.rb
|
152
165
|
- vendor/middleware/runner.rb
|
@@ -154,7 +167,7 @@ homepage: https://github.com/Yleisradio/yle_tf
|
|
154
167
|
licenses:
|
155
168
|
- MIT
|
156
169
|
metadata: {}
|
157
|
-
post_install_message:
|
170
|
+
post_install_message:
|
158
171
|
rdoc_options: []
|
159
172
|
require_paths:
|
160
173
|
- lib
|
@@ -169,8 +182,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
169
182
|
- !ruby/object:Gem::Version
|
170
183
|
version: '0'
|
171
184
|
requirements: []
|
172
|
-
rubygems_version: 3.
|
173
|
-
signing_key:
|
185
|
+
rubygems_version: 3.1.2
|
186
|
+
signing_key:
|
174
187
|
specification_version: 4
|
175
188
|
summary: Tooling for Terraform
|
176
189
|
test_files: []
|
@@ -1,29 +0,0 @@
|
|
1
|
-
require 'logger'
|
2
|
-
|
3
|
-
class YleTf
|
4
|
-
module LoggerLevelPatch
|
5
|
-
# Taken from Ruby 2.4.1
|
6
|
-
def level=(severity)
|
7
|
-
if severity.is_a?(Integer)
|
8
|
-
@level = severity
|
9
|
-
else
|
10
|
-
case severity.to_s.downcase
|
11
|
-
when 'debug'.freeze
|
12
|
-
@level = ::Logger::DEBUG
|
13
|
-
when 'info'.freeze
|
14
|
-
@level = ::Logger::INFO
|
15
|
-
when 'warn'.freeze
|
16
|
-
@level = ::Logger::WARN
|
17
|
-
when 'error'.freeze
|
18
|
-
@level = ::Logger::ERROR
|
19
|
-
when 'fatal'.freeze
|
20
|
-
@level = ::Logger::FATAL
|
21
|
-
when 'unknown'.freeze
|
22
|
-
@level = ::Logger::UNKNOWN
|
23
|
-
else
|
24
|
-
raise ArgumentError, "invalid log level: #{severity}"
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|